Pages: 1 2 [3]   Go Down
Author Topic: MCP2200[risolto]  (Read 1644 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

Ho l'abitudine di mettere sempre il condensatore solito da 100nF sempre vicinissimo all'alimentazione dei chip per evitare oscillazioni o strani comportamenti.Ho seguito gli sviluppi che avete fatto con astrobeed e se non erro anche con Leo e ricordo che era,dopo alcune modifiche, perfettamente funzionante.
Comunque domani ti faccio una foto al pcb e faccio le prove dette e ci aggiorniamo.
Logged

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

ok, grazie mille, alla fine il tuo aiuto potrebbe anche risultare prezioso, se hai scovato un problema "nuovo" ma, ripeto, sarebbe stranissimo che non mi sia mai capitato in tanti diversi circuiti e sia a 5V che a 3,3V. A domani
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

Ok,buona serata.
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 123
Posts: 9308
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

una pull-up sull'RX per sopperire ad aventuali "carenze del segnale" proveniente dal micro target,

La pullup serve per evitare di ricevere caratteri casuali se Rx è flottante, ovvero il convertitore non è collegato a nulla, se l'MCP2200 è sempre collegato ad un micro la pullup è inutile.
Anche le resistenze da 1k in serie su Tx e Rx sono inutili se l'MCP2200 è sempre collegato fisicamente ad un micro, p.e. montato sullo stesso pcb, servono solo come protezione nel caso colleghi il convertitore ad una scheda dove ti sei scordato di scollegare preventivamente eventuali device collegati alla seriale.
Non serve assolutamente nessuna pull down, la situazione descritta da Tonid è semplicemente assurda e può essere dovuta solo a problemi hardware sulle sue schede.
Logged

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

Ciao astrobeed e grazie per il tuo intervento.
Quote
Non serve assolutamente nessuna pull down, la situazione descritta da Tonid è semplicemente assurda e può essere dovuta solo a problemi hardware sulle sue schede.
Vedo anche io molto strana la situazione,il fatto che io abbia inserito una pull-down non significa,non intendevo, che mancava e tantomeno che sia stata una vostra svista e nemmeno che fosse la soluzione. Provando solo la scheda convertitore,senza l'arduino uno connesso, in uscita dal pin TX ho un segnale identico a quello che uno si aspetta ovvero il pin TX si trova ,in assenza di comunicazione, a 5 volt ed appena la comunicazione ha inizio si vedono chiaramente i bit trasmessi ed il loro zero logico equivale a circa zero volt.
Il problema salta fuori quando collego l'arduino uno al convertitore,in questo caso in assenza di comunicazione ho lo stato del pin TX (MCP) a 5volt ma quando arrivano i bit il loro zero logico si trova a circa 2,5 volt ed ovviamente non vengono interpretati dall'ATmega328 in maniera corretta dandomi l'errore not in sync.  In ogni caso questa mattina è completamente dedicata a questo problemino appena risolvo vi dico.
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 123
Posts: 9308
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il problema salta fuori quando collego l'arduino uno al convertitore,in questo caso in assenza di comunicazione ho lo stato del pin TX (MCP) a 5volt ma quando arrivano i bit il loro zero logico si trova a circa 2,5 volt ed ovviamente non vengono interpretati dall'ATmega328 in maniera corretta dandomi l'errore not in sync.  In ogni caso questa mattina è completamente dedicata a questo problemino appena risolvo vi dico.

Fammi capire una cosa, tu colleghi l'MCP2200, con le resistenze da 1k in serie a Tx e Rx, direttamente ai pin 1 e 0 di un Arduino ?
Se è così è normale che non riesci a programmarlo, vai in conflitto con il convertitore usb onboard, non importa se FTDI o 8u2, che a sua volta ha le resistenze in serie e crei un partitore 1/2 che ti da origine sul Rx di Arduino ai famigerati 2.5V per lo 0 perché arrivano 5V dal convertitore di Arduino.
In pratica hai una situazione del tipo, Tx del MCP2000<-->R1k<-->pin Rx Arduino<-->R1k<-->Tx FTDI/8u2, quando l'MCP2200 è in idle in out ci sono 5V e sul Rx di Arduino ci sono 5V, quando il Tx del 2200 va a 0V sul pin Rx di Arduino ci sono 2.5V perché si trova in mezzo ad un partitore 1k+1k sul cui lato opposto ci sono 5V.
Elimina le resistenze da 1k sul MCP2200 e vedrai che tutto funziona come deve.

Logged

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

Quote
In pratica hai una situazione del tipo, Tx del MCP2000<-->R1k<-->pin Rx Arduino<-->R1k<-->Tx FTDI/8u2, quando l'MCP2200 è in idle in out ci sono 5V e sul Rx di Arduino ci sono 5V, quando il Tx del 2200 va a 0V sul pin Rx di Arduino ci sono 2.5V perché si trova in mezzo ad un partitore 1k+1k sul cui lato opposto ci sono 5V.
Elimina le resistenze da 1k sul MCP2200 e vedrai che tutto funziona come deve.
Provo subito a cortocircuitarle sulla mia pcb e ti dico subito.
Logged

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

E pensare che rileggendo il post che ti ho inviato poco fa e guardando gli schemi di arduino ed MCP2200 la soluzione era davanti agli occhi.......Beh ,io dico sempre che sbagliando s'impara.
Grazie astro !
Ora rifaccio il pcb creando il definitivo ed inserisco dei jumper per inserire/disinserire le resistenze in modo da poterlo usare sia per la programmazione in stand alone che direttamente su board arduino e poi vi faccio vedere un paio di foto.
Grazie di nuovo  smiley-wink
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 123
Posts: 9308
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

E pensare che rileggendo il post che ti ho inviato poco fa e guardando gli schemi di arduino ed MCP2200 la soluzione era davanti agli occhi.......Beh ,io dico sempre che sbagliando s'impara.

L'importante è aver risolto il problema smiley
Logged

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

@Michele
Ciao,come avrai visto il problema è stato risolto.
Forse ti ho creato inutili allarmismi ma siamo comunque arrivati ad una soluzione che,come ho detto ad astro,era proprio li sotto gli occhi . Un grazie per la collaborazione ovviamente c'è anche per te  smiley-wink
Buon lavoro

ps.  Mi sono scampato il "quizzettone" ?!  smiley-mr-green
Logged

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

Beh, effettivamente io ho sempre provato a programmare gli stand-alone, non aveva alcun senso per me programmare un Arduino, altrimenti il problema lo avrei avuto anch'io.
Ieri sera ragionavo sul fatto che la R da 1K e quella da 3,3k già di loro facevano unpartitore e non riuscivo proprio a darmi una spiegazione, minimamente non pensavo alle due R di Arduino
Nel mio schema definitivo lascio sia la pull-up che le due R di"protezione" in quanto la scheda è prevista per usi generali e disparati, quindi non si sa mai cosa si incontra.
A questo punto mi sorge comunque un dubbio, legato ad un uso realistico del convertitore: le schede Arduino "mini" non hanno un Convertitore on-board e per la loro programmazione ne è appunto previsto uno esterno; immagino e spero che il problema delle R da 1K in serie in questo caso NON si ponga.
Un grazie ad Astro per la sua solita disponibilità a risolvere e soprattutto a spiegare le soluzioni che trova ai problemi, ed un grazie anche a Tonid per la disponibilità a fare prove anche dopo aver "apparentemente" risolto il suo personale problema.
Tonid, puoi aggiungere [RISOLTO] al titolo del Topic. smiley
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
Ieri sera ragionavo sul fatto che la R da 1K e quella da 3,3k già di loro facevano unpartitore e non riuscivo proprio a darmi una spiegazione, minimamente non pensavo alle due R di Arduino
Ciao Michele,infatti quello che avevo ottenuto ieri sera non era la funzionalità dello schema,anche se caricava, ma a cosa era legato l'errore not in sync ovvero a quello "zero logico" che di fatto me lo trovavo a 1/2 vcc.
Quote
A questo punto mi sorge comunque un dubbio, legato ad un uso realistico del convertitore: le schede Arduino "mini" non hanno un Convertitore on-board e per la loro programmazione ne è appunto previsto uno esterno; immagino e spero che il problema delle R da 1K in serie in questo caso NON si ponga.
Non conosco nel dettaglio la scheda ma se non c'è convertitore on-board non si può creare quella situazione di partitore con le R da 1K in quanto il collegamento andrebbe solo ai pin tx/rx del chip di arduino mini e non ,come nel mio caso,anche all'8u2.
Comunque abbiamo risolto smiley
Quote
Tonid, puoi aggiungere [RISOLTO] al titolo del Topic.
ooooooo yes  smiley-wink
Logged

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