Autore Topic: CX65 - Alpha version  (Letto 2877 volte)

Offline ecalogiuri

  • Tech Guru
  • *****
  • Post: 235
  • Karma: +2/-0
    • Mostra profilo
CX65 - Alpha version
« il: 15 Gennaio 2014, 09:48:01 »
Ciao ragazzi,
in questi giorni ho lavorato sulla parte hardware del mio progetto hardware; realizzare un home computer basato sulla CPU 6502.

In allegato la board realizzata in eagle. Le caratteristiche hardware sono:

  • 32 kb di ram.
  • 16/20 mhz clock (devo scegliere ancora)
  • 38x25 caratteri in B/N
  • PS2 keyboard
  • Supporto SD/SDHC (fat16/fat32)
  • piezo sound
  • Porta seriale rs232 (solo due linee di trasmissione Tx/Rx) 57600 bps
  • Pulsante di reset
  • Porta ICSP

Cosa ne dite? Ancora non l'ho realizzato, ma ci proverò a giorni. Accetto suggerimenti.

Ciao,
Enzo.

P.s.
Il sistema è alimentato a 3.3v, tranne la tastiera che va a 5 e poi taglio i segnali di ritorno. La comunicazione seriale andrà anche a 3.3v, pensate che sia un problema? Cioè, un PC legge bene i dati seriali se sono a 3.3v in entrata?

Offline Z80Fan

  • Administrator
  • Guru
  • *****
  • Post: 1671
  • Karma: +13/-2
    • Mostra profilo
    • http://z80fan.altervista.org
Re:CX65 - Alpha version
« Risposta #1 il: 15 Gennaio 2014, 13:36:10 »
In allegato la board realizzata in eagle.

Bella; hai fatto il routing a mano? E' fatta bene anche se si potrebbe risparmiare qualche via qui e là. ;)

Il sistema è alimentato a 3.3v, tranne la tastiera che va a 5 e poi taglio i segnali di ritorno.

Per esperienza, la maggiorparte di tastiere PS/2 lavora e comunica tranquillamente anche a 3.3v, dato che tanto dentro c'è un microcontrollore cmos. Solo alcune tastiere molto vecchie o particolarmente "strane" (feature tipo retroilluminazione etc) potrebbero darti problemi.

La comunicazione seriale andrà anche a 3.3v, pensate che sia un problema? Cioè, un PC legge bene i dati seriali se sono a 3.3v in entrata?

Questo invece è sbagliatissimo, e con questo circuito rischi di friggere il microcontrollore: la RS232 (che usano i PC) funziona a +12/-12 V, quindi fuori sia per il livello di tensione sia per il valore medio (il controllore ha una UART che funziona da 0 a 3.3v).
Tra la porta e il microcontrollore devi quindi mettere un convertitore di tensione, come l'onnipresente MAX232 (ovviamente assicurandoti che sia una versione che può abbassarsi fino a 3.3v dal lato microcontrollore).

Offline ecalogiuri

  • Tech Guru
  • *****
  • Post: 235
  • Karma: +2/-0
    • Mostra profilo
Re:CX65 - Alpha version
« Risposta #2 il: 15 Gennaio 2014, 18:38:28 »
Autorouting e poi ottimizato a mano, con via belle grosse perchè sono "cecato". Avevo notato che la maggiorparte delle tastiere va bene ma con il mio circuito dovrebbero funzionare tutte!

Per quanto riguarda la rs232... non conoscevo i livelli di segnale... ma tempo fa copiai questo circuito che ti riporto:

http://electrotech99.blogspot.it/2011/02/software-uart-for-atmega32-avr.html

Funzionava bene, pensi sia stata solo fortuna? Putroppo devo usare una uart software perché la usart del microcontrollore è impegnata a comunicare con il chip video. Tra l'altro esiste un documento ufficiale dell'ATmel di come implementare una uart software a questo indirizzo:

http://www.atmel.com/images/avr274.pdf

Ma forse non intendevano interfacciare con un PC. Vorrei mantenere il circuito quanto più semplice ed economico possibile...

Ciao

Offline ecalogiuri

  • Tech Guru
  • *****
  • Post: 235
  • Karma: +2/-0
    • Mostra profilo
Re:CX65 - Alpha version
« Risposta #3 il: 15 Gennaio 2014, 18:54:04 »
Penso che dovrò inserire perforza il chip max232... uff!!! :'( :'( :'( :'(

Offline Z80Fan

  • Administrator
  • Guru
  • *****
  • Post: 1671
  • Karma: +13/-2
    • Mostra profilo
    • http://z80fan.altervista.org
Re:CX65 - Alpha version
« Risposta #4 il: 15 Gennaio 2014, 19:21:04 »
Funzionava bene, pensi sia stata solo fortuna?

"funzionava bene", in che senso? Che la avevi attaccata a una RS232 del computer? Sembra improbabile che funzionasse, visto che (anche ipotizzando il uC andasse a 5 volt) al massimo il uC fornisce segnali [0, x] volt invece che [-x, x] necessari a RS232.

Al massimo probabilmente avevi una scheda RS232 molto sensibile, e il uC è resistente abbastanza da tollerare livelli di +-15 volt ai piedini (la tensione è elevata, ma non c'è molta potenza).

Putroppo devo usare una uart software perché la usart del microcontrollore è impegnata a comunicare con il chip video. Tra l'altro esiste un documento ufficiale dell'ATmel di come implementare una uart software a questo indirizzo:

http://www.atmel.com/images/avr274.pdf[/url]

Non è un problema di hardware vs software, perchè tanto anche la UART hardware genera livelli TTL ai piedini; il problema è rispettare i livelli di tensione.
Anche in quel documento, al paragrafo 3.2, Hardware:
If communicating with a device supporting the RS-232 standard, voltage levels from about -15 to 15V are needed. A circuit is then needed to convert the signals to these voltages. An example of a single chip interface circuit is Maxims MAX232. It operates from a single 5V power supply, and has an onboard DC/DC converter to generate the RS-232 levels.

Citazione
Vorrei mantenere il circuito quanto più semplice ed economico possibile...

Il MAX232 è comunissimo; vedo che su Digikey si trova a mezzo euro, e probabilmente ne puoi trovare altri a prezzi ancora più bassi.
La spesa è praticamente obbligata se si vogliono fare le cose bene: magari sul tuo PC funziona anche così, ma visto che sei fuori standard tutto può succedere: smette di funzionare a caso, cambiando PC non funziona, dopo diverso tempo il uC tira le quoia a causa dei continui salti di tensione etc...

Secondo me è molto meglio spendere il mezzo euro in più e essere nel sicuro piuttosto che andare allo sbaraglio. ;)

Offline ecalogiuri

  • Tech Guru
  • *****
  • Post: 235
  • Karma: +2/-0
    • Mostra profilo
Re:CX65 - Alpha version
« Risposta #5 il: 16 Gennaio 2014, 19:26:36 »
Hai ragione, userò un MAX232. Su ebay ci sono venditori cinesi o tailandesi che te li tirano dietro a quattro soldi. Ci vuole del tempo perché arrivino ma si risparmia veramente un botto.

Ora modifico il circuito...

Ciao e grazie per i consigli.

Enzo.

Offline ecalogiuri

  • Tech Guru
  • *****
  • Post: 235
  • Karma: +2/-0
    • Mostra profilo
Re:CX65 - Alpha version
« Risposta #6 il: 20 Gennaio 2014, 10:42:28 »
Le softuart possono soffrire di drift se non la fai interrupt driven e se non scegli bene i quanti di tempo, faresti meglio a montare a scelta una ACIA fisica mappata su due address del bus su cui hai gia' connesso la ram, oppure ad usare una SPI-UART.

Scusa il ritardo con cui rispondo, ma sono stato con l'influeza e febbre così alta da non potermi alzare dal letto. Ho deciso che farò qualche prova con tutti e tre i vari tipi di soluzione sopftware (no interrupr, interrupt driven e SPI-UART). Ho ordinato i max232 dalla Cina, quindi ho circa un mesetto per ragionare sul problema.

Sulla SPI-Uart non riesco, però, a trovare nulla...  :-[ :-[

Offline ecalogiuri

  • Tech Guru
  • *****
  • Post: 235
  • Karma: +2/-0
    • Mostra profilo
Re:CX65 - Alpha version
« Risposta #7 il: 29 Gennaio 2014, 10:13:06 »
Ecco in allegato la nuova versione del CX65, con il MAX232 + un 74HC138N per gestire la comunicazione seriale in uscita al SBC.

Come sempre, si accettano consigli  ;D

Ciao,
Enzo.

Offline ecalogiuri

  • Tech Guru
  • *****
  • Post: 235
  • Karma: +2/-0
    • Mostra profilo
Re:CX65 - Alpha version
« Risposta #8 il: 29 Gennaio 2014, 18:50:43 »
74HC138N per gestire la comunicazione seriale in uscita al SBC

e' un decoder 3->8, non ho ben afferrato al questione

Si, ma lo faccio funzionare come un demultiplexter. In modo da spostare il PIN TX della uart tra il video e il max232 a seconda della necessità. Il pin RX invece e sempre connesso al max232. :D

Offline ecalogiuri

  • Tech Guru
  • *****
  • Post: 235
  • Karma: +2/-0
    • Mostra profilo
Re:CX65 - Alpha version
« Risposta #9 il: 29 Gennaio 2014, 18:53:29 »
puoi girare il connettore della tastiera non di lato ma o davanti o dietro ?

a dirla tutta se la scheda dovesse infilarsi in un rack o cmq in una scatola, sarebbe meglio avere tutti i connettori su un lato, in modo che infili la scheda e non hai fori da fare sul fondo che normalmente e' chiuso o difficilmente agibile (sopratutto se c'e' un backplane)

tu hai in mente un case custom ? plastico ? ligneo ?

nel caso si, ovvero case custom, alla fine fornisci i file di progetto in modo che volendo la arrangi in autonomo la questione connettori ? io ad esempio sono per il rack

Ehm... è già davanti  ::) In realtà non ho pensato ad un contenitore, ma ho cercato la disposizione migliore che mi permetta di ottimizzare la creazione di piste sul pcb!

Offline ecalogiuri

  • Tech Guru
  • *****
  • Post: 235
  • Karma: +2/-0
    • Mostra profilo
Re:CX65 - Alpha version
« Risposta #10 il: 04 Febbraio 2014, 11:28:01 »
Potrei usare il tuo circuito come scheda video, o solo la parte relativa al video

Cioè? Spiegami bene cosa intendi e vediamo insieme cosa si può fare... ;)

Offline Z80Fan

  • Administrator
  • Guru
  • *****
  • Post: 1671
  • Karma: +13/-2
    • Mostra profilo
    • http://z80fan.altervista.org
Re:CX65 - Alpha version
« Risposta #11 il: 04 Febbraio 2014, 15:55:56 »
Dipende se ti accontenti dei 38x25 caratteri; il "chip video" non è altro che un altro microcontrollore che genera il segnale video via bit banging (o sbaglio?).
Forse con una versione da clock superiore si riesce a spremere più risoluzione, ma non so fino a che livello si riesce ad arrivare con questa soluzione... :-\

Puoi sempre piazzarci un' FPGA con dentro la tua architettura sintetizzata, così la provi in un esperimento pratico. :D

Offline ecalogiuri

  • Tech Guru
  • *****
  • Post: 235
  • Karma: +2/-0
    • Mostra profilo
Re:CX65 - Alpha version
« Risposta #12 il: 04 Febbraio 2014, 17:10:46 »
Ti conviene utilizzare il Tellymate per un video terminale seriale, nel mio progetto ho praticamente inserito una versione semplificata di tale scheda...

Offline Z80Fan

  • Administrator
  • Guru
  • *****
  • Post: 1671
  • Karma: +13/-2
    • Mostra profilo
    • http://z80fan.altervista.org
Re:CX65 - Alpha version
« Risposta #13 il: 04 Febbraio 2014, 18:34:36 »
@Z80 fan
mi devi raddrizzare tu il blitter pero'!

Lo so, lo so... :-\ Prima o poi la rispolvero la FPGA, vedrai. :D

Il problema attuale negli esperimenti video è che il monitor/tv che usavo è andato a sostituire la TV in cucina, e non son più andato a prenderne uno nuovo...

Tags: