- Messaggi: 11
- Ringraziamenti ricevuti 0
Problemi comunicazione RS232
13 Anni 8 Mesi fa #1
da Kermit_66
Problemi comunicazione RS232 è stato creato da Kermit_66
Ciao ho riprovato con la 232 ma escludendo chip rotto corti di saldatura, penso che il problema sia più da ricercare sulla sincronizzazione tra TX e RX. Solo usando RealTerm ottengo dei caratteri di risposta ma diffrenti da quelli inviati. Riprogrammando il PIC usando il SW del PICkit2 ottengo sempre la stessa warning in giallo "Some configuration words not in hex file. Ensure default values above right are acceptable." e anche se il PIC viene programmato gira a velocta ridotta come se avesso un CLK diverso.
Ma i bit di configurazione non vengono settati quando si richiama il .hex?
Cosa bisogna fare settare dalla configuration dell'applicativo o modificare il sorgente? Grazie...
Ma i bit di configurazione non vengono settati quando si richiama il .hex?
Cosa bisogna fare settare dalla configuration dell'applicativo o modificare il sorgente? Grazie...
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Kermit_66
- Autore della discussione
- New Member
Riduci
Di più
13 Anni 8 Mesi fa #2
da gcupini
Risposta da gcupini al topic Re: Problemi comunicazione RS232
ciao,
Il programma è in C o in Assembler ?
Potresti postare il codice per meglio chiarire. Il messaggio sembra si riferisca ai Word di Configurazione, se lo mostri forse si può trovare soluzione.
Saluti
Il programma è in C o in Assembler ?
Potresti postare il codice per meglio chiarire. Il messaggio sembra si riferisca ai Word di Configurazione, se lo mostri forse si può trovare soluzione.
Saluti
Si prega Accedi o Crea un account a partecipare alla conversazione.
- gcupini
- Visitatori
13 Anni 8 Mesi fa #3
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Problemi comunicazione RS232
Ciao Kermit,
effettivamente Giovanni ha ragione, ma conoscendo il problema direttamente rispondo.
Il programma che ha testato Kermit è quello presentato sul testo C18 Step by Step, in particolare l'esempio della porta seriale gestito in Polling.
Programmando il PIC dal progetto per mezzo del PICKIT 2 tutto funziona correttamente, mentre programmando sempre per mezzo del PICKIT 2 ma usando direttamente il file .hex, il programma non funziona.
Ho investigato un po' di più visto che questo problema si è presentato anche nel programma per generare un segnale analogico per mezzo del modulo PWM (programmando da progetto è tutto ok, mentre usando il file hex non funziona).
Caricando il file .hex il PICKIT 2 avvisa l'utente con la seguente warning:
Some configuration words not in hex file. Ensure default values above right are acceptable.
questa warning avvisa che non tutte le configurazioni sono propriamente presenti nel file hex.
Effettivamente è strano e personalmente ritengo che il comportamento a livello di progetto o programmando il semplice file hex dovrebbero essere uguali. Invece si ha che alcune configurazioni vengono cambiate, ovvero perse ( a meno di non esplicitarle).
In particolare programmando il PIC direttamente con il file hex presente nella cartella degli esempi del testo C18 Step by Step piuttosto che dal progetto, il programma non funziona. Il malfunzionamento si presenta nel vedere caratteri strani, questo è legato al fatto che il PIC non ha un clock a 20MHz ma una sua frazione. In particolare il baud rate che risulta è 4 volte inferiore ovvero 4800 bit/s.
Controllando la configuration word 1 è possibile vedere che alivello di progetto è impostata a 0x0C00 mentre caricando il file .hex vale 0x0C3F. Al fine di far funzionare le cose si può procedere nel seguente modo:
1) programmare il PIC direttamente dal progetto (richiede tool di sviluppo compatibili Microchip: PICKIT, ICD)
2) Esplicitare le impostazioni del quarzo e del PLL a livello di progetto (nuovi pragma relative alle impostazioni di configurazione)
3) Una volta caricato il file .hex cambiare la configurazione del PIC in particolare CONFIG 1 che deve valere 0x0C00 e non 0x0C3F.
Saluti,
Mauro
effettivamente Giovanni ha ragione, ma conoscendo il problema direttamente rispondo.
Il programma che ha testato Kermit è quello presentato sul testo C18 Step by Step, in particolare l'esempio della porta seriale gestito in Polling.
Programmando il PIC dal progetto per mezzo del PICKIT 2 tutto funziona correttamente, mentre programmando sempre per mezzo del PICKIT 2 ma usando direttamente il file .hex, il programma non funziona.
Ho investigato un po' di più visto che questo problema si è presentato anche nel programma per generare un segnale analogico per mezzo del modulo PWM (programmando da progetto è tutto ok, mentre usando il file hex non funziona).
Caricando il file .hex il PICKIT 2 avvisa l'utente con la seguente warning:
Some configuration words not in hex file. Ensure default values above right are acceptable.
questa warning avvisa che non tutte le configurazioni sono propriamente presenti nel file hex.
Effettivamente è strano e personalmente ritengo che il comportamento a livello di progetto o programmando il semplice file hex dovrebbero essere uguali. Invece si ha che alcune configurazioni vengono cambiate, ovvero perse ( a meno di non esplicitarle).
In particolare programmando il PIC direttamente con il file hex presente nella cartella degli esempi del testo C18 Step by Step piuttosto che dal progetto, il programma non funziona. Il malfunzionamento si presenta nel vedere caratteri strani, questo è legato al fatto che il PIC non ha un clock a 20MHz ma una sua frazione. In particolare il baud rate che risulta è 4 volte inferiore ovvero 4800 bit/s.
Controllando la configuration word 1 è possibile vedere che alivello di progetto è impostata a 0x0C00 mentre caricando il file .hex vale 0x0C3F. Al fine di far funzionare le cose si può procedere nel seguente modo:
1) programmare il PIC direttamente dal progetto (richiede tool di sviluppo compatibili Microchip: PICKIT, ICD)
2) Esplicitare le impostazioni del quarzo e del PLL a livello di progetto (nuovi pragma relative alle impostazioni di configurazione)
3) Una volta caricato il file .hex cambiare la configurazione del PIC in particolare CONFIG 1 che deve valere 0x0C00 e non 0x0C3F.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
13 Anni 8 Mesi fa #4
da Kermit_66
Risposta da Kermit_66 al topic Re: Problemi comunicazione RS232
Ciao ho provato come mi hai suggerito ma non ho ottenuto miglioramenti, allora ho modificato SPBRG impostandolo a 25 con la RS232 a 4800 sembra che tutto funzioni OK. Ho anche guardato le tabelle allegate al tuo tutorial e se applico la formula per determinare la velocità di connessione
Asynchronous mode, high speed:
FOSC / (16 * (spbrg + 1))
ottengo 48077
???
non rieso a capire questa incongruenza, ma lo prendo come dato di fatto... per ora.
Grazie per l'aiuto.
Asynchronous mode, high speed:
FOSC / (16 * (spbrg + 1))
ottengo 48077
???
non rieso a capire questa incongruenza, ma lo prendo come dato di fatto... per ora.
Grazie per l'aiuto.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Kermit_66
- Autore della discussione
- New Member
Riduci
Di più
- Messaggi: 11
- Ringraziamenti ricevuti 0
13 Anni 8 Mesi fa #5
da Kermit_66
Risposta da Kermit_66 al topic Re: Problemi comunicazione RS232
Dimenticavo che ho provato a programmare con il PICkit2 secondo tuo suggerimento modificando la Configuration Word e ora tutto funziona bene... e ho notato che solitamente le modifiche riguardano sempre le prime 2 coppie di byte...
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Kermit_66
- Autore della discussione
- New Member
Riduci
Di più
- Messaggi: 11
- Ringraziamenti ricevuti 0
Moderatori: Mauro Laurenti, StefA
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.