problema latch e glitch

ciao!

credo di trovarmi di fronte ad un problema di alea dinamica

ho due CD74HC573 della texas che uso come latch per un bus dati a 16-bit e fin qui tutto ok... è lo schema classico per indirizzare memoria esterna al micro

il problema nasce quando sugli ingressi dei latch si passa da, esempio, 254 (11111110 in binario) ad 1 (00000001 in binario). In partica il passaggio degli ingressi da una combinazione con molti bit ad uno ad una combinazione con molti bit a zero... ecco questo passaggio è come se provocasse un glitch (0->1->0) sul pin LE (latch enable) dei 74573 e di conseguenza il dato in ingresso passa in uscita, cosa che non deve assolutamente succedere quando LE=0 (LE è pilotato da un pin del micro) Non potendo graficare con l'oscilloscopio, ho piazzato un condensatore a disco da 100n tra il pin LE e massa... il problema sparisce ma questo mi limita la velocità di lettura/scrittura dovendo inserire delle pause in attesa che la capacità si carichi/scarchi

avete esperienze in merito? grazie!

-ice-

Reply to
ice
Loading thread data ...

ice ha scritto:

Ne ho usati molti, di HC573, e non ho mai avuto problemi. Sei sicuro che il problema non dipenda dal micro, che si lascia influenzare dalla variazione di altri bit? Hai messo gli opportuni condensatori di bypass sulle alimentazioni del micro e del latch?

Ciao. Giuliano P.S. Hai provato a sostituire il 573?

--

questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news segnala gli abusi ad abuse@newsland.it
Reply to
JUL

anch'io ma questa volta non vuole saperne...

Sei sicuro che

no, il micro dovrebbe essere innocente! infatti il glitch avviene quando scrivo la porta usando output_D(data_H); sono sicuro di questo perchè eseguo step-by-step con un ICD

Hai messo gli opportuni condensatori di bypass

si, 100n per IC

no, perchè l'ho saldato direttamente sulla board e toglierlo significa rompere la metà dei pads ;)

l'idea che mi sono fatto è che o è guasto uno dei due 74hc573 oppure si crea un accoppiamento capacitivo tra la linea LE# dei latch e qualche altra linea della board, magari per via di un'imperfezione invisibile da qualche parte...

per ora ho risolto scrivendo una routine apposta che testa il banco di sram usando delay via via maggiori. In questo modo sono riuscito a calare la capacità che ho aggiunto tra LE# e massa. Infatti con c=200nf (100n+100n) dovevo inserire un delay_us(15) ogni volta che agivo su LE# ora ho piazzato c=20n (10n su ogni latch) e mi basta usare qualche NOP

così il problema è risolto ma non ho capito la sua provenienza cmq sto riscrivendo il firmware per un pic simile (18f4610) per vedere come si comporta se ci sono novità importanti aggiorno il post, giusto per completezza!

grazie per l'intervento ciao!

-ice-

Reply to
ice

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.