Go Down

Topic: Programmare Pro Mini con converter USB-TTL? (Read 2825 times) previous topic - next topic

GigiG

Ciao a tutti, ho un Arduino Pro Mini 328 5V che vorrei programmare per un piccolo progetto. Un pò di tempo fa acquistai sulla baia un USB-TTL serial converter con chip PL2303 (foto allegate, la definizione data dal venditore era 'PL2303 USB To RS232 TTL Converter Adapter Module') per altri scopi. Posso usare questo converter per programmare il Mini? Non sono molto ferrato ma mi sembra di aver capito che per questo scopo occorrerebbe un chip TTL-UART, tipo FTDI, e non RS232.
In alternativa mi sembra sia possibile programmare il Mini con un'Arduino Uno senza chip, con 5 collegamenti (5V, GND, TX, RX e Reset), è corretto?
Gigi

PaoloP

Non hai il reset e la sequenza non è corretta; quindi non puoi interfacciare direttamente il convertitore ma dovrai usare dei cavetti.
Inoltre o riesci a individuale il segnare DTR e a saldarci un cavetto per il reset o dovrai farlo a mano sincronizzandoti con la schermata dell'IDE.
Per caricare lo sketch tramite un'altro Arduino leggi la guida di Michele Menniti --> http://michelemenniti.it/arduino_burn_bootloader.php

uwefed

Dovrai installare sul PC il driver per il PL2303. Arduino non lo ha nel IDE.

Ciao Uwe

GigiG

Il convertitore è già installato ed offre una porta seriale virtuale. Se manca solo il reset sul convertitore, non posso usare il bottone di reset della Mini, poco prima di fare l'upload dello sketch? O devono essere sincronizzati?

GigiG

Grazie PaoloP per il link alla guida di Menniti, a questo punto credo che la cosa migliore sia adottare una delle tecniche di ISP con la Mini su breadboard e l'Arduino Uno come programmer. A proposito della Mini, perdonate l'ignoranza e la tentazione irresistibile di spendere il meno possibile ... devo ammettere che me la sono procurata sulla baia e non so ancora cosa mi sia capitato tra le mani (foto allegata). La domanda è: come faccio a sapere se  questo clone ha il bootloader installato oppure no? Posso tagliare corto, supporre che non ci sia e caricarlo come spiega molto bene Menniti?
Ciao e grazie ancora per la vostra disponibilità.

PaoloP

#5
Jul 23, 2013, 10:44 am Last Edit: Jul 25, 2013, 04:44 pm by PaoloP Reason: 1
Se programmi tramite ISP perdi il bootloader, che serve per programmarlo tramite seriale ma che comunque puoi sempre reinserire.
Se hai intenzione di acquistare altri Arduino ti consiglio l'acquisto di uno di questi (http://www.robot-italy.com/it/usb-to-serial-converter.html), lo trovi anche nello store ufficiale), monta il chip 8U2 ma ha la particolarità di avere la piedinatura FDTI compatibile. Inoltre è originale e può essere utile.
Saldi gli strip a L (http://www.robot-italy.com/it/male-strip-2-54-90-40-pin.html) sul lato corto e ti basta collegare USB converte per programmarlo.

Per il bootloader suppongo lo abbia.
Con il tuo USB converter, collega GND, 5V, TX e RX all'Arduino e apri il monitor seriale. Premi il pulsante di reset. Arduino dovrebbe stamparti qualche scritta. Mi pare "Check OK!" una volta al secondo.

GigiG

Leggendo questo topic (http://forum.arduino.cc/index.php/topic,137772.0.html), mi sembra di aver capito che questo converter (http://www.ebay.com/itm/USB-2-0-to-UART-TTL-6PIN-CP2102-Module-Serial-Converter-/221003654108?pt=LH_DefaultDomain_0&hash=item3374d823dc) potrebbe essere una valida alternativa con ilchip CP2102, visto che fornisce anche il segnale di reset su di un pin dedicato, corretto? Occorrerebbe comunque un condensatore da 0.1uF sul pin RST del converter (come spiegato da retrolefty nel topic di prima)?

#7
Jul 25, 2013, 02:23 pm Last Edit: Jul 25, 2013, 02:29 pm by bigjohnson Reason: 1
Sni,
nel senso che non devi usare il pin reset per resettare l'arduino, purtroppo quello è un ingresso per resettare il chip usb.
Per resettare l'arduino devi collegare il pin all'uscita DTR che è tra i segnali disponibili sui lati dell'adattaore usb.
Mi raccomando prendi un adattatore che esporti tutti i segnali, in giro ce ne sono alcuni simili e di colore bianco che hanno solo i segnali frontali (+5, +3, GND, TX, RX, reset) e non vanno bene.
Quello del link che hai messo va bene.

PaoloP

#8
Jul 25, 2013, 04:51 pm Last Edit: Jul 25, 2013, 04:53 pm by PaoloP Reason: 1
La piedinatura FTDI compatibile è


Il segnale di Reset, per l'IDE di Arduino è dato dal DTR.
Il CTS di solito non è collegato o pure messo a GND, quindi se colleghi nella stessa posizione 5V o 3V3 rischi il corto.
Dovrai crearti un cavetto che ricostruisca la giusta sequenza.

Uno dei più grandi misteri arduiniani è il pin usato per il reset, DTR, RTS o tutti e due, ma?
Se il pinout del cavo FTDI ha l'RTS mi sa che è quello.

PaoloP

#10
Jul 25, 2013, 07:20 pm Last Edit: Jul 25, 2013, 07:28 pm by PaoloP Reason: 1
Nessun mistero.
Basta guardare lo schema della Arduino 2009 --> http://arduino.cc/en/uploads/Main/arduino-duemilanove-schematic.pdf
Il reset è collegato sia al RST che al DTR. Idem nella Arduino Diecimila (http://arduino.cc/en/uploads/Main/Arduino-Diecimila-schematic.pdf)

Nella Arduino UNO R3 --> http://arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf
solo al segnale DTR, cosi come dalla Mega 1280 (http://arduino.cc/en/uploads/Main/arduino-mega-schematic.pdf)

Gli schemi delle vecchie board li trovi qui --> http://arduino.cc/en/Main/Boards

La prima versione non aveva l'autoreset  :smiley-mr-green: --> http://arduino.cc/en/Main/ArduinoBoardSerial

GigiG

Nei pin che mette a disposizione il converter c'è un RST che però mi sembra di aver capito che non serve a resettare l'ATmega328 del Mini. Sul Mini che ho io ce nè uno, nella fila a sinistra dei pin di ICSP, denominato DTR. Ad ogni modo, per quello che costa, ho ordinato il converter del link, quando mi arriverà potrò dirvi se e come sono identificati gli 8 pad presenti sulla board ma che dalla foto è impossibile capire a quali pin del CP2102 corrispondano. La sequenza non ha importanza perchè è chiaro che collegherò i pin con cavetti, quello che conta è capire se sto CP2102 ha, (e sembra che ce l'abbia) e quale sia, il pin di reset che funzioni con il DTR del Mini.

PaoloP

Se segue lo standard RS232 il segnale DTR ci deve essere per forza. Non è detto che sia facilmente accessibile; nel senso che non è riportato su nessuna piazzola della schedina ma solo sul piedino del micro.

Il convertitore che vendono nel link di ebay che hai postato ha sia RTS che DTR accessibili, devi solo saldargli il connettore.


Michele Menniti

Il segnale RTS era in uso prima del segnale DTR, su Arduino; per l'uso normale l'uno vale l'altro ma provocano differenti reazioni all'apertura del Serial Monitor. Questa operazione invia ad Arduino un segnale DTR ma non RTS, quindi nel primo caso Arduino viene resettato, nel secondo, se serve, occorre premere manualmente il pulsante RESET su Arduino. Per le normali operazioni di programmazione l'uno vale l'altro, funzionano a meraviglia entrambe. La presenza in serie di un C da 100nF (= 0,1µF) tra DTR/RTS e RESET di Arduino è indispensabile. Segnalo anche il chip MPC2200 di cui ho parlato nella Guida e sul quale ho scritto anche un articolo pubblicato su Elettronica In. E' in realtà un PIC mascherato (un po' come gli 8/16u2 di Arduino che sono micro adattati a svolgere funzione di convertitore USB-Seriale (non TTL, che è una cosa diversa e non funziona con Arduino...), ha il segnale RTS e funziona benissimo con Arduino, l'ho adottato anche nel mio progetto del Programmatore HV.
Resto dell'avvso ce il chip migliore in assoluto per svolgere questa funzione sia l'FT232RL, quello montato su Arduino 2009; la Sparkfun ha realizzato una versione demoboard che porta tutti i suoi segnali all'esterno, con i quali sono riuscito ad eseguire la tecnica di programmazione BitBang per caricare il bootloader sul micro montato direttamente su Arduino; anche su queata cosa ho pubblicato uno specifico articolo.
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

Go Up