Pages: 1 [2] 3 4 ... 6   Go Down
Author Topic: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset  (Read 4967 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Faraday Member
**
Karma: 47
Posts: 5895
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

non le ho apportate io  smiley
 cerca ERIED, e' un utente cileno, ha fatto un capolavoro, non solo si risolve l'autoreset, ma anche i problemi con bluetooth.
il tutto compatibile anche con processing.

Ho postato tutti i miei test nel topic bluetooth
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22800
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@astrobeed:
adesso non ricordo ma tempo fa ho studiato la cosa perché volevo replicare anch'io lo stesso modo di reset della Leonardo e pensavo che ci fosse qualcosa nel bootloader ma poi, guardandolo, non trovai nulla. Studiando il datasheet ho trovato invece che era una cosa a livello di microcontrollore.
Logged


Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22800
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@astro:
ecco, qui ho spiegato come avviene la cosa:
http://arduino.cc/forum/index.php/topic,121632.msg916326.html#msg916326
Non è un fuse, mi ero confuso, ma una R su un determinato pin.
Logged


Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 129
Posts: 9492
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non è un fuse, mi ero confuso, ma una R su un determinato pin.

Viene settato HWBE che consente di scegliere tramite lo stato logico presente su PE2, durante il reset è un input, se parte il programma utente oppure il bootloader, in pratica consente di avviare Leonardo senza passare per il bootloader se non è necessario.
Logged

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

Ho visto su Git che c'è il codice del 16U2 per la UNO (https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares/atmegaxxu2), però non trovo quello della DUE (https://github.com/arduino/Arduino/tree/ide-1.5.x/hardware/arduino/sam)
Manca la cartellina Firmware. Probabilmente la metteranno in seguito.  smiley-cry
Volevo verificare le differenze a livello di codice.  smiley-confuse
Logged

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

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22800
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non sono in hardware\arduino\firmwares ?
Logged


Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22800
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

non le ho apportate io  smiley
 cerca ERIED, e' un utente cileno, ha fatto un capolavoro, non solo si risolve l'autoreset, ma anche i problemi con bluetooth.
il tutto compatibile anche con processing.

Ho postato tutti i miei test nel topic bluetooth

Ho trovato solo la .dll già compilata ma nessun accenno a cosa ha modificato.
Logged


0
Offline Offline
Faraday Member
**
Karma: 47
Posts: 5895
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Lui ha modificato solo la dll ? Quindi niente linux ?

Ricordo un topic in merito sul sito internazionale dove aeva spiegato. Appena lo trovo lo posto.
Anche lesto parlo dell abbandono di serialrxtx, un interesse in tal senso sarebbe un bel progetto.
Ho delle mail personali con eried dove mi disse varie cose.
Appena metto mano al pc posto qui.

Lo ontattai perche volevo creare la versione 64bit, poi ho iniziato ad usare la 32 e non ne ho piu parlato
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 129
Posts: 9492
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Lui ha modificato solo la dll ? Quindi niente linux ?

Vediamo un attimo di chiarire meglio la questione, quella dll modificata è utilizzabile solo con il terminale seriale del IDE ed eventuali programmi utente sviluppati sotto Processing/Java previa specifica inclusione, il problema autoreset rimane sempre se si utilizzano altri software per l'emulazione di un terminale seriale come HyperTerminal o Putty, oppure si si usano software generici che comunicano con Arduino.
La vera soluzione è gestire la disattivazione dell'autoreset direttamente sul 8/16u2, ovvero deve ignorare i segnali DTR/RTS e non resettare l'ATmega, questa funzionalità deve essere attivabile/disattivabile a piacere, il modo più semplice sarebbe utilizzare un pin del 8/16u2 collegato ad un jumper, a seconda dello stato l'autoreset è attivo o disattivato.
Dato che sulle varie revisioni della UNO e della MEGA2560 è sempre presente il connettore per la programmazione ISP del 8/16u2 si può utilizzare una coppia di pin collegati a questo per il jumper selezione autoreset, non si deve modificare nulla a livello di hardware e non si perde la possibilità di programmare l'8/16u2 tramite ISP.
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 129
Posts: 9492
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

si può utilizzare una coppia di pin collegati a questo per il jumper selezione autoreset,

Mi sono espresso male, va utilizzato il pin 6, connesso a GND, e il pin 4, connesso a PB2 (MOSI), a livello software si setta PB2 come input con pull attiva, se all'avvio risulta a 1 logico (jumper tra 4 e 6 non inserito) l'autoreset si comporta in modo normale, se PB2 risulta a 0 logico (jumper inserito) l'autoreset è disattivato.
Logged

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

Ma se devi modificare il software, ovvero il firmware del 16U2, per aggiungere questa funzione tanto vale farlo uguale a quello della DUE (senza l'erase perché non c'è) che attiva la programmazione e resetta il micro quando la seriale viene aperta e chiusa a 1200 baud.
Logged

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

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 129
Posts: 9492
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

che attiva la programmazione e resetta il micro quando la seriale viene aperta e chiusa a 1200 baud.

Su questo sistema non mi esprimo altrimenti mi bannano  smiley-grin
In tutti i casi poi dovresti modificare anche l'IDE per poter utilizzare tale sistema con la UNO visto che non è previsto per questa scheda.
Logged

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

Certo, ma basta dirgli che questa UNO si programma come la Leonardo.
Non so se si possa inserire l'indicazione nel file board.txt.  smiley-roll-sweat
Logged

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

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 129
Posts: 9492
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Certo, ma basta dirgli che questa UNO si programma come la Leonardo.

Non credo sia possibile, senza modificare l'IDE, vista l'enorme diversità tra le due schede, a partire dal micro che nella seconda è un 32u4 invece di un 328.
Logged

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

Quello che volevo dire è che l'IDE prevede già questa modalità di programmazione perchè la usa con la Leonardo. Quindi non occorre altro che dirgli di utilizzarla anche per questa UNO modificata, con i corretti parametri.
Logged

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

Pages: 1 [2] 3 4 ... 6   Go Up
Jump to: