convertitore usb seriale non carica sketch

Ciao a tutti. Ho da poco acquistato un convertitore usb/seriale (http://www.robot-italy.com/it/usb-to-serial-converter.html) per caricare gli sketch su un arduino standalone. Ho realizzato il semplice circuito su breadboard come da allegato(spero si vedano bene i collegamenti).
Fondamentalmente lo schema e' questo:

  • convertitore GND => atmega328 GND
  • convertitore +5V => atmega328 +5V
  • convertitore RX => atmega328 pin2(RX)
  • convertitore TX => atmega328 pin3(TX)
  • convertitore RST => atmega328 pin1 RST (utilizzo un condensatore da 100nF ed una resistenza pull-up di 10k)

Il problema e' che quando cerco di caricare lo sketch ottengo solamente alcuni brevi lampeggi del led RX e poi piu' nulla ed il codice di errore e' notInSync resp0x00. Sono sicuro che tutti gli altri collegamenti sono giusti, perche' se collego la mia scheda Arduino UNO come programmatore,utilizzando gli stessi:GND,RST,RX,TX,+5V, tutto funziona alla perfezione. Ho provato a reinstallare il driver, cambiare porta (utilizzo Vista) ed ho provato su altri computer con Lubuntu 12.04 ed XP ma senza nessun cambiamento.
In ultima analisi, ho provveduto a monitorare i dati effettivamente scambiati con il pc attraverso un serial monitor ed infatti i dati inviati sulla seriale dal pc dovrebbero arrivare al convertitore perche' lampeggia il led RX, ma poi non ottengo nulla in risposta. La stessa prova effettuata con la scheda Arduino Uno, come programmatore, riesce ad inviare ed a ricevere.

Puo' essere che il cavo usb sia troppo lungo (1,8mt)?
Credo di essere arrivato ad un punto morto e non so piu' che pesci pigliare, mi date una mano per favore?

convertitore RX => atmega328 pin2(RX)
convertitore TX => atmega328 pin3(TX)

Ciao devi solo invertire questi collegamenti ovvero il pin RX del convertitore va al TX dell'atmega ed il pin TX del convertitore va all'RX dell'atmega.

Avevo gia'provato ad invertire RX e TX ma senza risultato... :(!! Altri suggerimenti sono graditi.
PS. potrebbe essere che si e' sputtanato il bootloader/firmware del 8U2 e necessita una reinstallazione ?

quoto tonid. L'errore che hai commesso nasce dal fatto che effettivamente per usare Arduino come programmatore seriale, devi effettuare i collegamenti "diretti" tx-tx ed rx-tx. In realtà quelle sono le denominazioni dei pin del micro, ma i segnali provenienti dal convertitore usb-seriale interno ad Arduino sono opposti.
Cioè il tx del convertitore interno di Arduino è collegato all'rx del micro di Arduino, quando colleghi l'rx di Arduino all'rx dello stand-alone in realtà vi stai collegando il tx del convertitore interno; stesso discorso vale per l'rx del concertitore interno, che è collegato al tx del micro di Arduino, quando colleghi il tx di Arduino al tx dello stand-alone in realtà vi stai collegando l'rx del convertitore interno.
Se invece usci un convertitore esterno devi naturalmente invertire i segnali, quindi tx-rx e rx-tx. Puoi trovare conferma a pag. 89 della mia Guida alla Programmazione dei micro ATMEL (v. firma), quindi inutile insistere nella configurazione diretta, non ti funzionerà mai.

ma l' Atmega328 che stai cercando di programmare e' con Bootloader o e' un chip vergine ?

dice che lo programma regolarmente con Arduino, immagino che il chip abbia il bootloader, invece non capisco che c'entra l'8u2, è forse usato sul convertitore esterno? (il link mi porta ad una pagina che non mostra la scheda :()

dice che lo programma regolarmente con Arduino, immagino che il chip abbia il bootloader, invece non capisco che c'entra l'8u2, è forse usato sul convertitore esterno? (il link mi porta ad una pagina che non mostra la scheda )

Ciao Michele,si il chip 8u2 è usato sul convertitore esterno.

Ragazzi, come ho gia' detto, gia' li avevo invertiti RX e TX ma senza risultato. Ovvio che il chip Atmega e' con bootloader altrimenti non avrei potuto programmarlo con Arduino UNO ... :wink:

Si, io parlavo del chip 8U2 del convertitore usb/seriale esterno che ho acquistato. E' possibile che in qualche modo sia difettoso? Mi sembra strano ma devo chiederlo per forza.

In ogni caso sono alla frutta, mi sa che me ne devo comprare un altro va! porca putt....
Se avete altri suggerimenti postate,postate,postate! :slight_smile:

io nella foto vedo i cavetti TX e +5V vicino al covertitore seriale, invertiti

Per fare la foto e postarla qui ho dovuto fare i collegamenti in fretta e di fatti TX e 5V sono invertiti e me ne sono accorto appena dopo aver postato la foto. Ma vi dico che i collegamenti sono giusti. Sono 2 giorni che ci sbatto la testa e li ho ricontrollati 300 volte...!

Nessun altro suggerimento? Non mi dite che gia' avete finito le cartucce... XD

ma perche' non lo programmi in ISP ?

Codesto USB Serial Converter e' quello che uso per programmare l'Arduino Eterneth e non ho mai provato ad usarlo per la programmazione Seriale di uno StandAlone, meglio la modalita' ISP , si recupera anche lo spazio del Bootloader

Il cavo potrebbe essere uno dei responsabili. A me succede con un cavetto di circa 1,5m che non riesco ad usare quando programmo via ISP mentre non ho problemi con un altro cavetto di 0,5m. Hai provato ad usarne uno più corto?

franhk77:
Nessun altro suggerimento? Non mi dite che gia' avete finito le cartucce... XD

Noi le cartucce le abbiamo, ma l'è tu che c'ha n'fucile che ffa cilecca, maremma 8u2 :stuck_out_tongue_closed_eyes:
Hai provato a togliere il condensatore e collegare direttamente i due reset? se lo schedino lo ha già a bordo, questo potrebbe essere di troppo :slight_smile:

Bang...bang...bang
Ecco un paio di proiettilini te li ho sparati :stuck_out_tongue: :stuck_out_tongue:

Questo dovrebbe essere lo schema e di condensatore sul DTR non ne ha quindi a lui serve

Altro sinceramente non saprei dirti.....prova a controllare se il pin di reset sia a 5 volt misurandolo con un tester

non credo possa essere questo, c'è la r di pull-u, se no ci fossero i 5V significherebbe che non sta alimentando la breadboard.
invece posso garantirti che molte volte ho programmato degli stand-alone senza usare il condensatore e voglio fare un semplice ragionamento: se servisse il Team l'avrebbe previsto di default, ma diciamo che loro hanno realizzato questo schedino solo per programmare i loro "mini", quindi bisognerebbe vedere se è previsto già lì, e comunque, perso per perso, a toglierlo non esplode nulla... :wink:

Comunque per vedere se la schedina funziona ,puoi collegaresia quella che la UNO al PC.
Ti carichi lo sketch che c'e' tra gli esempi "SoftwareSerial/TwoPortReceive"
colleghi il convertitore ai pin 2 e 3 di arduino e apri Serial Monitor e un'altro terminale ( ad esempio Putty )

scrivi su uno e devi ricevere sull'altro

non credo possa essere questo, c'è la r di pull-u, se no ci fossero i 5V significherebbe che non sta alimentando la breadboard.

Hai ragione ma a volte mi è capitato di avere un falso contatto sopratutto se le resistenze vengono sfilate dal cartoncino,gli rimane un po di colla e poi giustamente rompono le scatole...
Se non usa il condensatore per disaccoppiare,visto che sul convertitore al pin che funge da DTR ha una resistenza di 1k verso gnd(mi pare di ricordare a memoria) tirerebbe in basso anche il pin di reset dell'atmega anche in assenza di segnale.
Ora non so bene come funziona la cosa,tu Michele hai molta più esperienza di me se dico quindi c....ate correggimi pure che è così che si impara :slight_smile:

lascia stare l'esperienza, io sono un hobbysta come te, solo che in questo periodo ho giocherellato parecchio con questi dispositivi, prima per aggiungere il paragrafo alla Guida, poi per pubblicare l'articolo sulla BitBang, ed ora (proprio oggi ho consegnato il materiale per la pubblicazione) perché ho fatto un bellissimo progettino di una scheda di questo tipo, basata sull'ottimo ed economico MCP2200. Da quanto ho appurato io normalmente quel pin è sullo stato logico HIGH, quindi quella R di pull-down probabilmente serve a tirare giù il livello logico quando passa sullo stato LOW, per come la vedo io è una sorta di "rinforzo", forse proprio a motivo dell'interfacciamento con altri micro, ma non so dirti altro. Di conseguenza anche se il pin è collegato direttamente al RESET del micro il livello logico è mantenuto su HIGH proprio dal pin dell'8u2. Ciò che dici avrebbe un senso se si trattasse di un pin di ingresso, allora la R da 1k andrebbe diciamo in conflitto con la 10k del 328 e porterebbe il livello su LOW, ma qui siamo in presenza di un'uscita attiva. Ti mostro in anteprima il prototipo definitivo del Convertitore, il jumper JP2 serve proprio per bypassare il C da 100nF, nei casi in cui dovesse risultare di troppo, come mi è capitato di vedere in diverse situazioni.

Convertitore USB-Seriale.jpg

Allora ragazzi, tutte le cose che avete detto finora le ho giá provate; riepilogo:

  • invertire collegamenti RX e TX
  • collegare direttamente il RESET senza il condensatore
  • utilizzare cavo usb piú corto (cortissimo), da 1,8 mt a 30 cm
  • provato a reistallare driver e cambiare pc (Ubuntu e XP)
  • monitorare la seriale tramite Terminal (simile a Putty). In questo caso non ottengo risposta dal convertitore, ma so che che i dati li riceve perché ogni volta che mando un carattere sulla seriale lampeggia il led RX; pero' non ottengo risposta TX. Cosa ben diversa se utilizzo la scheda Arduino UNO collegata al chip atmel sulla breadboard modalita' programmatore. In quest'ultimo caso ottengo RX e TX ed il carattere lo vedo chiaramente in risposta

Utilizzare l'ICSP ? E perché mai? Io l'ho comprata perché il prototipo che sto realizzando deve essere programmato tramite USB. Ve lo immaginate la casalinga a combattere con il cavo AVR/ICSP? :smiley:

A questo punto le soluzioni sono:

  1. la rimando indietro, pago altre 6 euro di spedizione
    2)Me la tengo e provo a reinstallare il firmware sull' 8U2 e ne ordino una nuova. altre 12,10+6 Euro
    3)La frantumo e la metto nella ciotola di Fuffy trasformandolo in cane bionico

Che rottura di ball!!!! cmq grazie