2*74245+74374 =?

ciao!

ho un micro a 8 bit che deve dialogare con una perifarica che ha un bus a 16 bit la prima soluzione che mi viene in mente (posso dedicare solo 8 linee del micro al databus) è mettere un 74374 esterno per raddoppiare il bus e poi due 74245 in questo modo insomma:

[FIDOCAD ] RV 90 30 105 50 RV 90 60 105 80 LI 90 70 85 65 LI 85 65 85 75 LI 85 75 90 70 SA 120 40 LI 135 40 130 35 LI 130 35 130 45 LI 130 45 135 40 LI 130 70 130 65 LI 130 65 135 70 LI 135 70 130 75 LI 130 75 130 70 LI 105 40 130 40 RV 135 30 160 80 TY 140 50 5 3 0 0 0 * device TY 140 60 5 3 0 0 0 * 16-bit TY 125 60 5 3 0 0 0 * DBL TY 125 30 5 3 0 0 0 * DBH LI 110 70 130 70 LI 110 70 110 65 LI 110 65 105 70 LI 105 70 110 75 LI 110 75 110 70 LI 75 75 80 75 LI 80 75 75 70 LI 75 70 70 75 LI 70 75 75 75 TY 40 65 5 3 0 0 0 * micro TY 40 75 5 3 0 0 0 * 8-bit LI 65 65 65 75 LI 60 70 65 65 LI 65 75 60 70 LI 85 70 65 70 LI 75 70 75 40 LI 75 40 85 40 LI 85 40 85 35 LI 85 35 90 40 LI 90 40 85 45 LI 85 45 85 40 SA 75 70 MC 120 75 3 0 030 LI 120 65 120 40 LI 100 20 100 20 TY 90 60 5 3 0 0 0 * 74245 TY 90 30 5 3 0 0 0 * 74374 LI 40 5 100 5 LI 40 40 40 5 LI 100 5 100 30 LI 45 10 95 10 LI 45 40 45 10 LI 95 10 95 30 TY 90 25 5 3 90 0 0 * EN TY 100 25 5 3 90 0 0 * LE RV 90 105 105 125 LI 120 115 110 115 LI 110 115 110 110 LI 110 110 105 115 LI 105 115 110 120 LI 110 120 110 115 LI 90 115 75 115 LI 95 125 95 140 TY 90 135 5 3 90 0 0 * EN MC 100 155 0 0 045 LI 100 125 100 155 TY 95 155 5 3 90 0 0 * DIR TY 90 105 5 3 0 0 0 * 74245 LI 95 140 40 140 LI 75 115 75 75 LI 120 75 120 115 TY 95 90 5 3 90 0 0 * DIR RV 35 40 60 95 LI 100 80 100 100 LI 40 140 40 95 LI 45 100 45 95 LI 70 100 45 100 MC 70 100 0 0 030 LI 100 100 80 100 LI 95 80 95 90 MC 95 90 0 0 045 TY 90 90 5 3 90 0 0 * EN

sepete se esiste un chip che riunisce le funzioni dei 3 integrati in un solo ic? altre possibilità (oltre programmare un ulteriore micro per questa funzione specifica)?

grazie in anticipo!

-ice-

Reply to
ice
Loading thread data ...

il '646 e similari possono sostituire il '374 ed un '245 anche se nno so se conviene

il '374 e' utilmente sostituibile con il '574 cosi' e' piu' semplice lo sbroglio

curiosita' : che periferica e' ?

cerca in rete GIDE potrebbe interessarti

Reply to
mmm

per il costo dici?

si, in genere infatti uso il '574

un hd ide

cerco subito

grazie!

-ice-

Reply to
ice

costo, reperibilita', semplicita' di controllo

ci avrei scommesso :-)

e' una vita che ci vorrei mettere mano

se ti va puoi postare qualche dettaglio in piu' ( tipo di micro , presenza di un bus dal lato del micro ... ) e ne discutiamo, nel caso si puo' anche passare in privato

sono certo che gia' sai che il bus a 16 bit serve solo per trasferire i dati e che quindi, sacrificando meta' della capacita' del disco, puoi usare una interfaccia ad 8 bit.

Reply to
mmm

per ora ho studiato una soluzione con due 74245 (di cui 1 con direzione fissa) ed un 74574 aggiungendo un NOT e collegando le linee di controllo in modo opportuno dovrei essere in grado di gestire il tutto con solo 2 linee da parte del micro

l'ho già fatto tempo fa... usando 2 porte del micro in modo da avere i 16 bit direttamente interfacciarsi è facile... poi supportare fat16/32 o altro è tutto da vedere

come micro ho fatto prove con un pic16f877a ma ho abbandonato per via della poca ram a bordo che non permetteva di bufferizzare per cui le prestazioni erano pessime... poi ho provato un 18f458 e le cose sono migliorate (bufferizzavo un intero settore da 512bytes)... poi questo ha il moltiplicatore 8x8 on chip per cui è più veloce quando ragioni internamente con int16 al tempo ho fatto anche quache prova con un 18f4620 che ha il oscillatore RC interno e possibilità di collegare l'oscillatore interno con il pllx4 per cui riuscivo a girare a 32mhz (32/4=8) senza oscillatore esterno ora che riprendo il progetto ma mi sa che cambio micro...

lo so... ma siccome voglio supportare sia lba che chs non posso buttare via

1/2 disco in chs

-ice-

Reply to
ice

mmm a =E9crit :

Il discorso interessa moltissimo anche a me. Non posso fornire un aiuto concreto, dato che non ho mai sperimentato, ma avevo studiato un po' la questione qualche tempo fa. Se continuate qui sul NG, leggero' con piacere l'evolversi delle cose.

Reply to
Darwin

l'implementazione minima dell'IDE dal lato del micro dovrebbe essere:

8-bit per il bus piu' 3-bit d'indirizzo piu' i 2 chip select piu' read e write strobe

esistono alcune implementazioni della FAT in rete che possono essere buoni punti di partenza:

rigorosamente in ordine sparso e non in ordine di qualita'!!!!

formatting link
formatting link
dosfs....
formatting link
efsl.... Dave Dunfield ne ha un'altra sul suo sito ( non sono sicuro se e' disponibile in forma di sorgente ) di quest'ultima ne e' stata fatta una implementazione alternativa , ritirata per problemi di copyright di cui ne ho una copia :-)

tutte forniscono l'accesso di base ai file , creazione scrittura lettura cancellazione, non tutte gestiscono del directory, nessuna permette la formattazione purtroppo alcune hanno come target processori relativamente grandi ( ARM

- DSP )

tipicamente bisogna riscriversi il layer di accesso ai dati ( read_sector write_sector )

preferisco lavorare con gli 805x in modalita' microprocessore , cosi ho a disposizione 32K di RAM per i dati.

per implementare la gestione della FAT non si riesce a stare sotto 1.5K di ram

1 blocco per ogni file aperto piu' almeno un altro blocco per FAT directory

non mi riferivo a questo , ma al fatto che attaccando solo 8 bit di ogni settore sfrutti solo 256 byte invece di 512 prescindendo dall' indirizzamento del settore in chs o lba, questa soluzione in passato e' stata usata per sistemi ( ad 8 bit ) che non implemetavano FAT microsoft in quanto ovviamente si perde di compatibilita'.

Reply to
mmm

si... ma ti dico che mentre DIOR# e DIOW# sono indispensabili (ovviamente) CS0# e CS1# possono non essere fondamentali basta mettere CS0# a massa e CS1# a +VCC e riesci cmq a gestire quasi tutto (devi rinunciare a registri come alternate_status e device_control che non sono indispensabili per un'implementazione base) con questa configurazione minima, come credo tu sappia già, dialoghi solo in PIO mode e quindi devi rispettare la tempistica del PIO. In genere non è un problema ma ho notato che andando su in frequenza (il pic arriva a

40/4=10mhz interni) è stato necessario piazzare delle #asm NOP #endasm per allungare il tempo di setup del write-strobe in oltre ci va un pullup da 1k su IORDY ed un pulldown da 5k6 su DMARQ

grazie per i links... alcuni li conoscevo ti segnalo anche questo:

formatting link

nel caso mi servisse darci un'occhiata di contatto, ok? ;)

ci credo... ho studiato la fat32 e per quanto molto semplice rispetto ad un NTFS ha delle limitazioni enormi... tipo è possibile scorrerla solo i un senso per cui se non la bufferizzi (e con un PIC non la bufferizzi) ogni volta ti tocca rileggere tutto! poi non parliamo dei salti mortali che hanno fatto in casa MS per estendere la fat32 all'uso dei LFN

è fattibile... magari rinunci al controllo di errore per tenere tempistiche accettabili

ci sono dei pic che supportano questa modalità e possono indirizzare memoria esterna fino a 2MB... il pic18f8720/2 sono un esempio... sarebbero una buona soluzione anche perchè hanno 70 I/O!!! putroppo costano abbastanza e il tqfp-80 non è facile gestirlo... si fa ma non posso perdere 1 giorno ogni volta che progetto la board ;)

appunto! :) lo dicevo perchè in CHS in genere non si raggiungono grandi capacità... infatti (da ATA3 in poi mi pare) l'LBA è mandatory per cui se ne butti via metà tanto vale attaccarci una MMC

questa soluzione in passato e'

usi il disco come una memoria di massa in senso stretto... tipo se devi fare backup audio o archiviare dati da un sensore in modo continuo la fat32 non ti serve... ti organizzi come più ti piace ed aggiungi una funzione per leggere da disco e trasferire al pc (seriale, usb, ecc...)

-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.