Go Down

Topic: PL2303 e Atmega328p (Read 2764 times) previous topic - next topic

sirmattia

Salve a tutti,
sono in possesso di un convertitore Usb-Seriale basato su pl-2303 e di un atmega328 che però è senza il bootloader di arduino.
È possibile mettere il bootloader nell'atmega tramite l'IDE di arduino e se sì sapete quali sono i pin da collegare?
grazie!

PaoloP

#1
Feb 13, 2013, 07:53 pm Last Edit: Mar 06, 2013, 07:01 pm by PaoloP Reason: 1
Il bootloader lo puoi caricare solo tramite connessione ISP.
Quindi hai bisogno di un'altro Arduino.
Segui questa guida --> http://www.michelemenniti.it/arduino_burn_bootloader.php

sirmattia

Immaginavo...tuttavia avevo letto che l'ft232rl (io ho il PL-2303HX che dovrebbe essere equivalente) in modalità bitbang può farlo, ma forse devo aver frainteso qualcosa

Michele Menniti

#3
Feb 13, 2013, 09:01 pm Last Edit: Feb 13, 2013, 09:05 pm by Michele Menniti Reason: 1

Immaginavo...tuttavia avevo letto che l'ft232rl (io ho il PL-2303HX che dovrebbe essere equivalente) in modalità bitbang può farlo, ma forse devo aver frainteso qualcosa

Non hai frainteso nulla, la tecnica Bit Bang (l'ho presentata su un articolo del numero di Settembre 2012 di Elettronica In) permette effettivamente di caricare il bootloader su un micro ATmega328P, ma è indispensabile un Convertitore USB-Seriale basato sull'FT232RL in versione FULL, cioè con tutti i suoi segnali disponibili; infatti non vengono usati i classici TX/RX/DTR, bensì CTS, DSR, DCD e RI, che riescono a lavorare in modalità ISP e quindi a caricare il bootloader. Tutto ciò non puoi farlo con il PL2303, che io sappia, ma se disponi di questi segnali puoi.

EDIT: puoi farlo, effettivamente questi segnali sono presenti sul PL2303, ho trovato questo schema che ne dà conferma:
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

sirmattia

Ottimo!
Qui http://learn.adafruit.com/ftdi-friend/programming-the-arduino-bootloader spiega come usare l'ft232rl con un arduino...usare il pl2303 con un atmega328 richiederebbe gli stessi collegamenti e le stesse operazioni?

Michele Menniti

i collegamenti sicuramente sì, la procedura è diversa dalla mia ma sicuramente andrà bene, Adafruit è un sito serio :)
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

sirmattia

Allora provo, grazie a tutti!

BrainBooster

Dai uno sguardo a questo articolo che anche se datato spiega abbastanza bene ;)
http://www.gioblu.com/tutorials/programmazione/99-scrivere-bootloader-arduino-senza-un-programmatore-avr-bitbangmode

sirmattia

L'avevo già letto, però quando usa i 4 pin X3 non ho capito a quali corrispondono direttamente nel FL232

BrainBooster

è così:
miso = 3;  # CTS X3(pin1)
  sck = 5;  # DSR X3(pin2)
  mosi = 6;  # DCD X3(pin3)
  reset = 7;  # RI X3(pin4)


sirmattia

Ecco quello che ho fatto:
Ho collegato il pl2303 all'atmega in questo modo:
RI --> Reset (1)
DSR --> SCK (19)
DCD --> MOSI (17)
CTS --> MISO (18)
5V --> VCC (7)
GND --> GND (8)

Ho aperto la gui di avrdude,ho messo i fuses suggeriti nella guida di Gioblu e ho impostato "-P ft0 -B 4800" ma mi da questo errore: "avrdude.exe: ft4 open failed "

Ora io ho pensato a due problemi: le impostazioni modificate dal sito nel file avrdude.conf sono buone solo per il ft232 oppure la porta ft0 non è giusta, ma anche provando ft4 (dato che è collegato su COM4) non va... Oppure saranno i fuses sbagliati? Mah!

BrainBooster

devi usare la notazione con la porta COM, non ft0

Michele Menniti


devi usare la notazione con la porta COM, non ft0

assolutamente no, quella stringa deve rimanere invariata, a prescindere dalla porta usata. Piuttosto hai modificato il file avrdude.conf? Guarda che la procedura di Gioblu in alcuni punti è ostica da capire, dà per scontate alcune cose che non lo sono per niente, ma comunque va seguita punto-punto, se no non ne esci.... :smiley-sweat:
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

BrainBooster

Menniti ha ragione, cancella quello che ho detto prima e segui i suoi consigli.

Go Up