Go Down

Topic: Attiny e Seriale (Read 1 time) previous topic - next topic

Guglio

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: [Select]

#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à?
ArduMAP: Mappa degli utenti che utilizzano Arduino.
http://www.guglio.net/ArduMAP

mancio

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

Guglio

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

flz47655

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..

leo72

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?

mancio

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

PaoloP

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

Michele Menniti

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...
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

leo72


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.

Michele Menniti

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

Guglio

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.
ArduMAP: Mappa degli utenti che utilizzano Arduino.
http://www.guglio.net/ArduMAP

PaoloP

Guglio passa alla 1.0.3.  ;)

leo72

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.

?R



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 ;)
Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

leo72

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.

Go Up