Pages: [1] 2   Go Down
Author Topic: [Arduino as ISP]Programmare ATMEGA168 SMD  (Read 1799 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti!
Ormai è da un po' che bazzico il mondo arduino, ma mai come adesso ho sentito il bisogno di rivolgermi specificamente a forum per risolvere un piccolo ma grande problema.
Non molto tempo fa mi è stato regalato una scheda per la gestione di segnali analogici che monta un ATMEGA168 (tipo SMD), senza però badare al fatto che per essere usato è chiesto il programmatore AVR.
Non ho resistito a cercare soluzioni con arduino. Infatti, manco a farlo apposta, c'è anche nell'IDE il programmino da installare che fa proprio al caso mio.
Fino ad oggi non si contano il numero di guide che ho seguito. La faccio molto sintetica:
1) ho collegato i pin D11 al MOSI, D12 al MISO D13 al SCK, D10 al Reset ed infine le alimentazioni.
2) ho programmato la mia arduino (uno rev2) come ISP
3) ho digitato il comando avrdude -P COM4 -b 19200 -c avrisp -p m168 -v -e -U flash:w:prova.hex
4) ottengo l'errore "avrdude: Device signature = 0x000000"

Ho provato di tutto: scaricato un altro programmino (ArduinoISP2), montato resistenza e/o capacità sul pin di reset della mia arduino, collegato resistenze al pin di reset della scheda con l'atmega168 smd. Insomma... non so più che devo inventare! Avete suggerimenti? Grazie per il supporto!


P.s. sulla scheda in questione è disponibile un bottone di reset. Mi sono accorto che se lo tengo premuto l'avrdude prosegue e risponde " stk500_program_enable(): protocol error, expect=0x14, resp=0x50
 initialization failed, rc=-1" e poi " stk500_program_enable(): protocol error, expect=0x14, resp=0x51"
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7079
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

La guida definitiva!!  smiley-mr-green smiley-mr-green smiley-mr-green --> http://www.michelemenniti.it/arduino_burn_bootloader.php

Edit: Durante la programmazione potresti avere dei problemi a causa di altri circuiti presenti sulla scheda.
« Last Edit: March 06, 2013, 01:04:29 pm by PaoloP » Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho seguito la guida alla lettera, ma purtroppo continua a darmi quell'errore. A bordo del dispositivo non c'è nient'altro se non molti transistor discreti, led e capacità.
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7079
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Puoi indicarci il modello della scheda o farci una foto oppure postare lo schema.
Dovresti controllare cosa c'è collegato ai pin MISO, MOSI e SCK del micro.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

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

Quoto Paolo, usare AVRDUDE (peraltro ad occhio quella riga mi sembra sbagliata...) o l'DE direttamente non modifica la situazione; il condensatore (la R non serve più, v. ultimo aggiornamento della Guida) lo devi usare solo per l'errore dell'autoreset; i pin miso, mosi, sck del micro target DEVONO essere liberi, se c'è collegato qualcosa (basta una R di pull-down) è facile che la programmazione non vada a buon fine; se possiamo vedere lo schema elettrico del tuo circuito diventa facile capire se c'è un problema del genere. Nel caso puoi sempre ricorrere alla programmazione seriale, sempre che almeno i pin 2 e 3 del micro target siano liberi. Se così non fosse avrebbero creato una scheda NON programmabile, visto che il micro è smd e non puoi smontarlo.
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

Marche
Offline Offline
Edison Member
*
Karma: 33
Posts: 2265
azioni semplici per risultati complessi
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Posta anche la sigla dell'ATmega168 che hai, ne fanno tante versioni; non si può certo dire che alla 
Atmel non si danno da fare
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Le scritte sono riprodotte su due righe in questo modo:
ATMEGA168
20AI 0535
Logged

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

Posta anche la sigla dell'ATmega168 che hai, ne fanno tante versioni; non si può certo dire che alla 
Atmel non si danno da fare
giusto, ma stai certo che l'errore che ottiene è perché non c'è dialogo ISP, in caso contrario avrebbe ricevuto un messaggio in cui si riportava la signature reale del micro rispetto a quella "attesa" (expected), infatti sta confermando (mentre scrivo) che il modello è esatto smiley-wink
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

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ecco lo schematico.
Da notare che io ho facoltà di selezionare con un jumperino se il pin R/S dello SPI deve essere SS o RST. Entrambe le configuazioni non cambiano il risultato.

EDIT: scusate, in realtà se lo jumperino sta su SS ottengo lo stesso risultato se tengo premuto reset della scheda durante tutta la fase.


* sch.png (151.23 KB, 1351x830 - viewed 25 times.)
« Last Edit: October 10, 2012, 11:30:23 am by DarkIaspis » Logged

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

Che valore hanno le R in serie ai segnali miso, mosi e sck?
Quei diodi cosa sono?
a mio parere entrambi i componenti disturbano fortemente i segnali di programmazione, considera che se sono diodi comuni tipo 1N4148 abbattono il segnale a 0,7V, quindi ti scordi la parte HIGH della comunicazione, se invece sono degli zener bisogna capire qual è il valore ma a questo punto sarebbe completamente sballato il fatto che le R sono a valle del diodo. Oppure questo circuito deve pilotare qualcosa che lavora a tensione inferiore e quindi gli zener servono per diminuire la soglia dei segnali in uscita dal 168, in questo caso non  puoi usarli come ingressi
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

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

E' un semplice circuito ESD sembra... quindi fatto per impedire sovratensioni no?


edit: vi carico l'intero schematico

* sch.pdf (233.73 KB - downloaded 13 times.)
« Last Edit: October 10, 2012, 11:54:08 am by DarkIaspis » Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7079
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non vede oscillatore esterno nello schema quindi bisogna supporre che usi quello interno.
In questo caso occhio ai fuse.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

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

Hai ragione Paolo, ma a questo punto mi sa che iniziamo uno di quei mega-Topic (ma solo per durata smiley-sweat) con AVRDUDE. Però insisto sul fatto che quei diodi disturbano la programmazione. Infatti il connettore SPI a pagina 2 dice chiaramente che NON è collegato direttamente sui pin del micro.
Dark, quei diodi che sono? le info ti si devono tirare con le pinze da dentista smiley-twist
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

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dai! Sto rispondendo a tutte le domande xDDD
Ripeto sono circuiti ESD per la protezione dalle cariche elettrostatiche, non dovrebbero proprio entrare in funzione.
Logged

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

Va bene, diamo per scontato che quel circuito di ingresso non influenzi la programmazione. Due domande:

Sai con certezza che IN QUELLE condizioni il micro sia programmabile esternamente?
A che frequenza sta lavorando il micro, visto che non c'è un oscillatore esterno?
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

Pages: [1] 2   Go Up
Jump to: