Pages: [1] 2   Go Down
Author Topic: Attiny e Seriale  (Read 1397 times)
0 Members and 1 Guest are viewing this topic.
Fidenza, Parma
Offline Offline
God Member
*****
Karma: 9
Posts: 783
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti, ho un attiny programmato per lavorare a clock interno a 8 Mhz.. (O almeno io così ho selezionato la board e gli ho fatto Burn Bootloader)..
Ho caricato gli sketch di prova con i vari blink e non ci sono problemi...
Sto cercando di buttarci su una seriale emulata ma penso di sbagliare qualcosa a livello software..
Ho l'IDE 1.0.1 e il codice è questo:

Code:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(0, 1); // RX, TX
void setup() 
{
  mySerial.begin(9600);
}

void loop()
{
  if (mySerial.available()){
    mySerial.write((char)mySerial.read());
  }
}

Solo che mi restituisce caratteri strani sul monitor... Se invio numeri singoli me li restituisce uguale "1, 2, 3 ecc"  già se invio tipo "12" mi torna indietro un carattere.. Con le lettere uguale è ancora peggio..
Dove sbaglio? <.< Che sia il seriale -> usb che fa pietà?
Logged

ArduMAP: Mappa degli utenti che utilizzano Arduino.
http://www.guglio.net/ArduMAP

Fidenza (PR)
Offline Offline
Full Member
***
Karma: 3
Posts: 143
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Prova a fare myserial.print((char)... Invece che write

E poi metti i pin della seriale non sulla 0 e l'1..sono già occupati probabilmente x la seriale fisica
Logged

Fidenza, Parma
Offline Offline
God Member
*****
Karma: 9
Posts: 783
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Provo subito... Fidentino??  Aiaaa lo sapevo che avevo il vicino di casa patito d'arduini!!
http://www.guglio.net/ArduMAP
Logged

ArduMAP: Mappa degli utenti che utilizzano Arduino.
http://www.guglio.net/ArduMAP

Parma
Offline Offline
Edison Member
*
Karma: 21
Posts: 2384
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao magari metti uno sleep di qualche ms, alcune seriali voglio due bit di stop (linea ad 1 logico) e scrivere a manetta i dati potrebbe creare qualche casino..
Logged

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

Intanto che Attiny stai usando?
Che versione del core Tiny usi? Ricordati che se non hai l'ultima 0100-0015, la SoftwareSerial non funziona correttamente con questi chip.

Poi che sketch usi per i test?
Logged


Fidenza (PR)
Offline Offline
Full Member
***
Karma: 3
Posts: 143
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Parmigiano importato a Fidenza:-) :-) si potrebbe fare una reunion a Parma su Arduino:-) :-) :-) workshop?? :-)
Logged

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

La 1.0.1 ha un bug nel serial monitor. Usa la 1.0.3 oppure la lingua inglese.
Logged

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

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

Non ho ben capito come hai settato i fuse dell'attiny per lavorare a 8MHz; a prescindere dai valori che non dici, diamo per scontato che siano corretti, tu scrivi
Quote
almeno io così ho selezionato la board e gli ho fatto Burn Bootloader
; che io sappia con i tiny il metodo del burn bootloader non setta i fuse, temo dovrai ricorrere ad AVRDUDE...
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

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

Non ho ben capito come hai settato i fuse dell'attiny per lavorare a 8MHz; a prescindere dai valori che non dici, diamo per scontato che siano corretti, tu scrivi
Quote
almeno io così ho selezionato la board e gli ho fatto Burn Bootloader
; che io sappia con i tiny il metodo del burn bootloader non setta i fuse, temo dovrai ricorrere ad AVRDUDE...
Forse le ultime versioni del core Tiny hanno risolto questo problema. Dovrei fare dei test, perché sinceramente non ho mai fatto uso della scrittura del finto bootloader per programmare i fuse dei Tiny, almeno non nell'ultimo anno e mezzo.
Logged


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

eh sì, una prova va fatta, su questo dobbiamo aggiornarci, se funzionasse sarebbe cosa ottima....
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

Fidenza, Parma
Offline Offline
God Member
*****
Karma: 9
Posts: 783
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao ragazzi, scusatemi ma fra parenti ed organizzaz x l'ultimo penso di non saltarci fuori!!
Anche a me sembrava strano di poter settare i fuse semplicemente con "burn bootloader", c'è modo di sapere se la scheda sta lavorando a 8 o a 1 Mhz con uno sketch?
Penso poi riproverò tutto con la vecchia 0023, che è quella che di solito uso anche per programmare l'Arduino visto che la 1.0.1 non mi fa cambiare il baudrate, poi con questi continui cambi di librerie e di funzioni mi viene il nervoso perchè non faccio altro che riadattare vecchi sketch che con la 1.0.1 non vanno.
Logged

ArduMAP: Mappa degli utenti che utilizzano Arduino.
http://www.guglio.net/ArduMAP

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

Guglio passa alla 1.0.3.  smiley-wink
Logged

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

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

Guglio:

1) l'IDE 1.0.1 ha un bug ormai noto sul menu a tendina del monitor seriale dove selezioni la relativa velocità. Tale bug è stato risolto con le versioni successive. Continuare ad usare la versione 002x va bene se devi adoperare librerie abbandonate e/o obsolete ma se usi librerie sviluppate attivamente, la scelta migliore è l'ultima versione dell'IDE.
2) la procedura che avvii quando scegli "Strumenti/Scrivi bootloader" nell'IDE è in pratica una cancellatura totale del microcontrollore ed un suo settaggio completo. Con quella voce viene istruito avrdude non solo a flashare il bootloader ma anche, prima di questa scrittura, ad impostare i fuse del microcontrollore affinché poi lavori come è stato stabilito nel file boards.txt. Con il core Tiny viene usato un finto bootloader: si tratta in pratica di un file vuoto che non scrive niente sulla flash: viene usato solo per sfruttare il comportamento appena descritto dell'IDE. C'è un però: fino alla versione 002x  del core Tiny tale operazione non funzionava, nel senso che non si programmava un bel nulla, quindi né bootloader (finto, ripeto) né, tantomeno, i fuse.
3) per sapere se un micro va ad 8 o ad 1 MHz hai 3 modi:
3.1) se il micro è nuovo, arrivato direttamente dalla fabbrica Atmel, va sicuramente ad 1 MHz: questa è la frequenza di fabbrica di tutti i micro Atmega e Attiny
3.2) se hai un micro già programmato puoi usare avrdude per leggere il valore dei fuse e sapere come è impostato il micro, per sapere cioè se usa un clock esterno o l'oscillatore interno
3.3) flashi il Blink compilato ad 1 MHz: se lampeggia correttamente a 1 Hz il micro va ad 1 MHz, se lo vedi lampeggiare più velocemente, il chip è settato a 8 MHz.
Logged


Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 5
Posts: 956
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non ho ben capito come hai settato i fuse dell'attiny per lavorare a 8MHz; a prescindere dai valori che non dici, diamo per scontato che siano corretti, tu scrivi
Quote
almeno io così ho selezionato la board e gli ho fatto Burn Bootloader
; che io sappia con i tiny il metodo del burn bootloader non setta i fuse, temo dovrai ricorrere ad AVRDUDE...
Forse le ultime versioni del core Tiny hanno risolto questo problema. Dovrei fare dei test, perché sinceramente non ho mai fatto uso della scrittura del finto bootloader per programmare i fuse dei Tiny, almeno non nell'ultimo anno e mezzo.
se funzionasse questa cosa sarebbe molto interessante e comoda soprattutto smiley-wink
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

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

Confermo che con l'IDE 1.0.3 ed il core Tiny 0100-0015 la scrittura del finto bootloader sui chip Tiny cambia il valore dei fuse del micro.
Provato or ora con un Tiny84.
Logged


Pages: [1] 2   Go Up
Jump to: