Pages: [1] 2 3   Go Down
Author Topic: MCP2200[risolto]  (Read 1730 times)
0 Members and 1 Guest are viewing this topic.
Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti,incuriosito dal problema avuto da un utente del forum con un convertitore USB-ttl ed avendo a disposizione alcuni MCP2200 ho deciso di provare a vedere come funzionava il tutto per fare esperienza ed imparare facendo una schedina con quello che serve al funzionamento del chip.
Dopo varie ricerche ho deciso di usare lo schema elettrico usato da Michele Menniti nella sua guida in quanto era già stato testato ed ovviamente risultava funzionante.
Fatta la scheda ho installato i driver e configurato il chip impostando il baud rate a 9600 ed abilitato i led con relativo lampeggio.
Collegata però la scheda ad arduino uno e facendo l'upload del blink, l'MCP fa i suoi 3 lampeggi al led tx ma l'operazione fallisce mostrando sull'ide (1.0.1) l'errore not in sync 0x00. smiley-twist
Il problema risiede nel segnale di reset che a quanto pare non arriva nella maniera corretta all'arduino in quanto non da segni di reset. Incuriosito collego la sonda dell'oscilloscopio tra il reset di arduino e gnd,catturo il segnale e vedo che non scende fino ad arrivare prossimo allo zero ma da solo un improvviso segno di decadimento fino a circa 2,5 volt per poi tornare gradualmente a vcc tutto questo in circa 2ms.
Qualche idea/suggerimento per risolvere la cosa?
Ciao.

  
« Last Edit: December 10, 2012, 04:46:05 am by tonid » Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Cosa stai cercando di programmare?
La prova che puoi fare è eliminare o aumentare il condensatore in serie al segnale RTS, nel mio schema è il C5.
Quello schema, leggermente variato (ma solo per prevedere la possibilità di farlo lavorare a 3,3V) è diventato un kit perfettamente funzionante, che sarà pubblicato su Elettronica In; nell'articolo saranno presentati due PCB: uno in doppia faccia, più piccolo, per la produzione (v. foto), ed uno a singola faccia, per permettere l'autorealizzazione.
Ti assicuro che funziona a meraviglia, ho fatto almeno 5-6 prototipi, sono quasi certo che il problema sia nella tolleranza del condensatore che hai usato, specialmente se stai lavorando in smd. Ho scoperto a mie spese come i C in smd possano avere tolleranze del ±80% ed è pure dichiarato!!!!, ho visto con i miei occhi il mio capacimetro mostrare 2,3µF misurando un C da 10µF 0805 smiley-eek
Infatti nella foto puoi vedere il C6 (che sarebbe il C5 dello schema che conosci) con in parallelo un jumper a saldare, per bypassarlo quando la sua presenza da' fastidio; però più che toglierlo (prova da fare immediatamente) puoi tentare di portarlo anche fino a 1µF, sempre non polarizzato.
Se hai bisogno chiedi, DEVE funzionare, lo stesso circuito è montato nel mio programmatore HV e non sbaglia un colpo!


* Convertitore USB-Seriale.jpg (102.01 KB, 166x320 - viewed 13 times.)
« Last Edit: December 08, 2012, 03:13:14 am by Michele Menniti » Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao Michele e grazie per la risposta. Sto programmando un arduino uno con chip originale.
Ora devo cortocircuitare il condensatore e mi porto i fili su bread board perchè in smd non ho molti valori e provo variando i valori del C in questione ,vediamo cosa succede...
Quote
Ho scoperto a mie spese come i C in smd possano avere tolleranze del ±80% ed è pure dichiarato!!!!
  smiley-eek-blue :smiley-eek-blue:Azzz....io li ho presi in negozio e non so che tolleranza abbiano.......poi per curiosità li misuro e ti dico.
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

forse capisco male, se vuoi portarti i fili sulla breadboard NON puoi cortocircuitare quello attuale, altrimenti anche sulla bread avrai un corto. Il corto fallo per provare SENZA C, poi quello lo devi proprio dissaldare ed allora sì che puoi provare altri C sulla bread.
Senza C dovrebbe comunque andare, ma è meglio se poi ne metti uno di valore adeguato.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
forse capisco male, se vuoi portarti i fili sulla breadboard NON puoi cortocircuitare quello attuale, altrimenti anche sulla bread avrai un corto. Il corto fallo per provare SENZA C, poi quello lo devi proprio dissaldare ed allora sì che puoi provare altri C sulla bread.
Senza C dovrebbe comunque andare, ma è meglio se poi ne metti uno di valore adeguato.
No mi sono spiegato male io.  Sulla scheda che ho fatto io in smd ,il C è in serie al pin RTS come da schema...lo devo dissaldare e collegare i due pad con un pezzetto di filo e poi il reset in uscita dal connettore lo porto su bread board e lo collego al C e l'altro capo lo porto al reset arduino,in questo modo posso fare le prove del caso..
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ok, fammi sapere
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora ho provato con due C da 100nF (in parallelo) quindi 200nF ed ora il reset sembra funzionare.......
Lo vedo dai lampeggi del led sul pin 19 (13) del 328......quindi ho il reset ad inizio comunicazione ma arduino non risponde nulla e dopo un certo tempo mi arriva un altro reset coincidente con il messaggio not in sync 0x00  smiley-evil
Ho controllato anche il cavetto ma risulta tutto ok.........
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hai fatto prima di tutto la prova a toglierlo proprio il C? manda l'RTS direttamente a RESET e vedi cosa succede
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Hai fatto prima di tutto la prova a toglierlo proprio il C? manda l'RTS direttamente a RESET e vedi cosa succede
Se collego direttamente il comportamento è uguale come la soluzione con C da 200nF.
Mentre con il C da 100nF non avviene il reset ed in entrambi i casi ovviamente ho il famoso errore  smiley-roll-sweat
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

E' molto strano, non ti pongo la fatidica domanda, anche se prima o poi ci arriveremo smiley-sweat, a questo punto prova con un C molto grande, sull'ordine del µF
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
E' molto strano, non ti pongo la fatidica domanda, anche se prima o poi ci arriveremo , a questo punto prova con un C molto grande, sull'ordine del µF
Provato,idem come con 200nF.......ho messo 1,2uF......bene per i reset ma solito errore 0x00.
Falla la domanda magari si nasconde lì dietro il problema..
Logged

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho controllato se i dati arrivano sull'rx di arduino e ci sono ma in uscita dal tx no c'è nulla.......boh......
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

No, va bene, i soliti problemi a monte, ma tu sei uno preciso smiley
Potresti postare la schermata che ti dà l'utility? A volte durante la fase di programmazione il baud rate se ne va per fatti suoi, quindi prova a ripetere l'operazione di programmazione del chip e vedi se combacia con la mia maschera, e poi ovviamente il ricontrollo schema/PCB, eventuali componenti errati di valore, la capacità del quarzo, le saldature ed eventuali corti causati dai pallini di stagno che si formano durante la saldatura. Ti racconto: l'ultimo prototipo che ho montato mi faceva il tuo stesso scherzo, e sono impazzito fino a quando non mi sono messo ad esplorare il PCB con una lente d'ingrandimento, alla seconda passata mi sono accorto che il famoso C5 era saldato solo da un lato, essendo i pad metallizzati sembravano un tutt'uno con quelli del C, invece non si tocavano affatto, una goccia di stagno e tutto perfetto! in un altro caso avevo in corto D+ e D-, quella saldatura sotto il connettore è davvero fastidiosa e basta un nlla.
Insomma non fidarti di te stesso e ricontrolla tutto, perché le prove che hai fatto indicano un problema che va oltre il C sull'RTS.
Ultimo, non è che hai invertito i collegamenti TX/RX tra Convertitore e Arduino? prova a cambiarli, tanto non può succedere nulla, al massimo persiste l'errore.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Per capirci: il TX del Converitore deve andare al pin 0 di Arduino e l'RX al pin 1
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
No, va bene, i soliti problemi a monte, ma tu sei uno preciso
Potresti postare la schermata che ti dà l'utility? A volte durante la fase di programmazione il baud rate se ne va per fatti suoi, quindi prova a ripetere l'operazione di programmazione del chip e vedi se combacia con la mia maschera, e poi ovviamente il ricontrollo schema/PCB, eventuali componenti errati di valore, la capacità del quarzo, le saldature ed eventuali corti causati dai pallini di stagno che si formano durante la saldatura. Ti racconto: l'ultimo prototipo che ho montato mi faceva il tuo stesso scherzo, e sono impazzito fino a quando non mi sono messo ad esplorare il PCB con una lente d'ingrandimento, alla seconda passata mi sono accorto che il famoso C5 era saldato solo da un lato, essendo i pad metallizzati sembravano un tutt'uno con quelli del C, invece non si tocavano affatto, una goccia di stagno e tutto perfetto! in un altro caso avevo in corto D+ e D-, quella saldatura sotto il connettore è davvero fastidiosa e basta un nlla.
Insomma non fidarti di te stesso e ricontrolla tutto, perché le prove che hai fatto indicano un problema che va oltre il C sull'RTS.
Ultimo, non è che hai invertito i collegamenti TX/RX tra Convertitore e Arduino? prova a cambiarli, tanto non può succedere nulla, al massimo persiste l'errore.

Eh...Lo so ,molte volte il problema si nasconde proprio dietro degli errori/sviste.
Mi ricontrollo tutto con calma e provo anche a sostituire i C del quarzo con altri di un'altra partita....Per la configurazione del MCP ho notato anche io che capita a volte che ti configura valori di baud a membro di segugio però ho controllato bene la schermata per controllare che tutto fosse giusto oltre ad aver provato più volte a riconfigurare...
Per il momento ti ringrazio per la collaborazione,abbasso la testa sulla schedina ed appena ho novità ti dico.

ps. Si ,per i collegamenti tx/rx sono giusti.
Logged

Pages: [1] 2 3   Go Up
Jump to: