n° 219
Novembre 2017
Dicembre 11, 2017, 04:11:38 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: [RISOLTO] Maledetto Z80 SIO  (Letto 2817 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
GizMo
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 40


Mostra profilo E-mail
« inserita:: Aprile 10, 2016, 02:24:44 »

Salve a tutti e' un po' che non passo di qui, sono di nuovo a pasticciare sul mio sistema Z80.
Il progetto e' su questo sito: http://www.zilog80.eu/

Sono alle prese con un problema che non riesco a capire, ho collegato un display oled seriale sulla porta B della mia scheda, ma non riesco a mandare dati su di essa, credo di sbagliare a inizializzare la porta perche' se eseguo comandi sulla porta A e ci collego il display questo visualizza i caratteri che faccio spedire.

Premetto che il progetto deriva da un'altro non fatto da me, la porta A dove ho la console e' sempre stata inizializzata dal software originale, quindi non l'ho mai programmata io, pero' ho trovato il codice dai sorgenti originari e l'ho modificato per la porta B, in teoria dovrebbe essere tutto corretto ma la porta B resta muta, allego il codice:

Codice:
#include <stdio.h>
#include <stdlib.h>
#include <mk2/mk2sio.h>

int canb_init()
{
/*Setup SIO PortB, 9600,8,n,1,No HW Handshaking*/
outp(SIO_PORTB_COMMAND,WR0_ERR_RST); /*Select WR0 and Reset the SIO*/
outp(SIO_PORTB_COMMAND,WR0_CHN_RST); /*Reset the Channel*/
outp(SIO_PORTB_COMMAND,WR0_CHN_RST); /*Reset the Channel*/

outp(SIO_PORTB_COMMAND,WR4); /*Select WR4*/
outp(SIO_PORTB_COMMAND,WR4_X32_CLK+WR4_ONE_STOP_BIT); /*Clock from CTC Channel 0 ((5mhz/16)/1) / 32 should be 9600(9765 = 0.85% Err),1 Stop Bit, No Parity*/

outp(SIO_PORTB_COMMAND,WR5); /*Select WR5*/
outp(SIO_PORTB_COMMAND,WR5_TX_ENABLE+WR5_TX_EIGHT_BIT+WR5_TX_DTR); /*Enable TX, RTS/CTS Handshake*/

outp(SIO_PORTB_COMMAND,WR3); /*Select WR3*/
outp(SIO_PORTB_COMMAND,WR3_RX_ENABLE+WR3_RX_8_BIT); /*Enable RX, 8BIT*/
}

main()
{
canb_init();

/* init display */
outp(SIO_PORTB_DATA, 254);
outp(SIO_PORTB_DATA, 1);
outp(SIO_PORTB_DATA, 254);
outp(SIO_PORTB_DATA, 128);
/* scrivo ciao*/
outp(SIO_PORTB_DATA, 'C');
outp(SIO_PORTB_DATA, 'I');
outp(SIO_PORTB_DATA, 'A');
outp(SIO_PORTB_DATA, 'O');
}

Ho letto e riletto i manuali del SIO e la procedura canb_init(); non mi sembra errata... e' la stessa sequenza di comandi che viene data per inizializzare la porta A.
Registrato
oregon
Jr. Member
**

Karma: +22/-6
Scollegato Scollegato

Messaggi: 239


Mostra profilo
« Risposta #1 inserita:: Aprile 10, 2016, 10:02:04 »

Ma il display in questione come è collegato? Sicuro che accetti segnali seriali a +/- 12 V o seriali TTL? Sicuro che implementi i segnali per l'handshake hardware?
Registrato
GizMo
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 40


Mostra profilo E-mail
« Risposta #2 inserita:: Aprile 10, 2016, 10:36:33 »

Il display e' pilotato da un pic, c'e' gia' la giusta circuitazione di interfaccia a bordo del display, come ho scritto nel post ho gia' testato il display collegato sulla porta A della mia scheda mentre facevo girare un programma che mandava una sequenza in loop e il display funziona, ma come detto la porta A e' gia' inizializzata.
Registrato
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #3 inserita:: Aprile 10, 2016, 11:37:46 »

[OT]

Poiché mi occorre fare dei PCB, da chi li hai fatte fare e quanto ti son costate a "pezzo"?

Naturalmente se vuoi e puoi dirlo.  Sorriso

[/OT]

Thanks & Bye 8-)
Registrato
GizMo
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 40


Mostra profilo E-mail
« Risposta #4 inserita:: Aprile 10, 2016, 11:50:02 »

da inventiamo.net, mi sembra di aver pagato sui 150 euro per 6 pezzi, meno non potevo ordinarne fatti in questo modo a macchina.
Registrato
GizMo
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 40


Mostra profilo E-mail
« Risposta #5 inserita:: Aprile 10, 2016, 02:24:04 »

Ho risolto, stavolta non e' colpa della mia incapacita' di programmazione, ma era proprio rotta la porta B del chip, ne ho buttato sopra un'altro e adesso funziona  Imbarazzato
Registrato
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #6 inserita:: Aprile 10, 2016, 03:36:07 »

Perfetto e grazie per l'informazione sui PCB

Ho messo un [RISOLTO] nel titolo del thread sul post di apertura.
Registrato
M.A.W. 1968
** LEGGETE IL REGOLAMENTO ! **
Global Moderator
Hero Member
*****

Karma: +224/-19
Scollegato Scollegato

Messaggi: 2988


Discrete And Combinatorial Mathematics


Mostra profilo WWW
« Risposta #7 inserita:: Aprile 11, 2016, 07:14:24 »

Poiché mi occorre fare dei PCB, da chi li hai fatte fare e quanto ti son costate a "pezzo"?

Questo post elenca una mezza dozzina di services convalidati, nell'apposita sezione dedicata ai PCB.
Registrato

I Moderatori invitano tutti gli utenti a prendere visione del REGOLAMENTO e a rispettarlo.

Un blog? Io? Occhiolino
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #8 inserita:: Aprile 11, 2016, 11:09:17 »

Visti e annotati. Many thanks  Sorriso
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines