Lamezia Terme
Offline
Shannon Member
Karma: 389
Posts: 10555
Le domande di chi vuol imparare rappresentano la sua sete di sapere
|
 |
« Reply #525 on: May 09, 2012, 03:17:37 pm » |
Grazie del chiarimento. Mi pare che l'argomento possa ritenersi esaurientemente trattato, salvo richieste di approfondimenti  Invece vorrei ora parlare di un qualcosa che ho sfiorato marginalmente in questi giorni e mi ha fortemente incuriosito, cito il datasheet: Calibration Byte The ATmega48A/PA/88A/PA/168A/PA/328/P has a byte calibration value for the Internal RC Oscillator. This byte resides in the high byte of address 0x000 in the signature address space. During reset, this byte is automatically written into the OSCCAL Register to ensure correct frequency of the calibrated RC Oscillator. Ci sono due aspetti estremamente interessanti da capire: 1 - qui parla di una scrittura automatica del byte di calibrazione dell'oscillatore, ma la cosa significa che sarebbe possibile agire su 256 bit per tarare la frequenza dell'oscillatore interno? 2 - Se ben capisco il byte risiede nell'area della signature che dovrebbe essere protetta (probabilmente solo dall'esterno); ma secondo Voi potrebbe esistere un modo per riscrivere la signature (mi riferisco a quei 2313 che ho azzerato ma che continuano a funzionare anche senza signature) visto che in quest'area di memoria viene riscritto il registro OSCCAL?
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 226
Posts: 16983
Don't know what I do
|
 |
« Reply #526 on: May 09, 2012, 03:22:26 pm » |
Mi sa che hai frainteso. Dall'area di memoria dove risiede anche la signature viene letto il valore di calibrazione dell'oscillatore interno e copiato nel registro OSCCAL, che risiede in RAM ed è quindi modificabile. Non l'inverso, perché la memoria dove risiede la signature dovrebbe essere di tipo PROM. Una volta scritta, è quella. Difatti mi pare che astro avesse scritto che, in uno scambio di mail con Atmel, era venuta fuori la questione che a "giocare" con le signature, forzando le programmazioni con avrdude ed il parametro "-f", si poteva rovinare l'area dove risiede la signature. A quel punto la signature era persa anche se il micro continuava a funzionare regolarmente. Solo alcuni programmatori "precisini", che leggevano la signature obbligatoriamente, potevano impuntarsi nel cercare di programmare questi chip senza nome. Sul fatto del valore di calibrazione, ci sono dei micro che permettono di modificare tale valore. Ad esempio la V-USB!!! Te la ricordi Mike?  Ti ricordi che l'Attiny85 viene calibrato internamente a 12 MHz agendo proprio su questo parametro?
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Edison Member
Karma: 12
Posts: 2284
Arduino rocks
|
 |
« Reply #527 on: May 09, 2012, 03:38:42 pm » |
No, mi spiace contraddirvi. Il bootloader è nell'ultima sezione della Flash. La tabella a pag. 18 fa vedere chiaramente come il bootloader sia posizionato proprio in alto (basta vedere gli indirzzi).
Non mi pare così, direi che l'indirizzo di partenza in cui risiede il bootloader è sempre 00, poi dopo tot byte (in base ai fuse) termina l'area del bootloader e comincia quella così detta application area.
All'indirizzo 0x00 c'è il reset vector, cioè un jmp alla prima di memoria dove risiede il programma, poi c'è il vettore di interrupt, il bootloader è sempre posto in fondo alla flash, se è presente all'indirizzo 0x00 c'è un jmp alla prima locazione del bootloader, vedi tabella 11-1 del data sheet per i dettagli. Si ma io guardavo il monitor al contrario e il mio cervello era in negato ~, quindi ~FF= 00 e scusate. Ho lo sapevate che arrampicarsi sugli specchi è davvero difficile.  Ciao.
|
|
|
|
|
Logged
|
|
|
|
|
Lamezia Terme
Offline
Shannon Member
Karma: 389
Posts: 10555
Le domande di chi vuol imparare rappresentano la sua sete di sapere
|
 |
« Reply #528 on: May 09, 2012, 03:46:21 pm » |
Mi sa che hai frainteso. Dall'area di memoria dove risiede anche la signature viene letto il valore di calibrazione dell'oscillatore interno e copiato nel registro OSCCAL, che risiede in RAM ed è quindi modificabile.
hai perfettamente ragione, ora che ho letto meglio  è proprio come dici Non l'inverso, perché la memoria dove risiede la signature dovrebbe essere di tipo PROM. Una volta scritta, è quella. Difatti mi pare che astro avesse scritto che, in uno scambio di mail con Atmel, era venuta fuori la questione che a "giocare" con le signature, forzando le programmazioni con avrdude ed il parametro "-f", si poteva rovinare l'area dove risiede la signature.
no, non abbiamo mai scoperto perché questo succedesse ed io non avevo mai usato il -F; Astro scrisse ad ATMEl e gli risposero che poteva succedere che si cancellasse per eventi elettrici non meglio specificati. A quel punto la signature era persa anche se il micro continuava a funzionare regolarmente. Solo alcuni programmatori "precisini", che leggevano la signature obbligatoriamente, potevano impuntarsi nel cercare di programmare questi chip senza nome.
errore consequenziale: SOLO dopo averli azzerati ho usato il -F per vedere se potevo usarli ed infatti poi ho suggerito con successo la cosa a BUD  Sul fatto del valore di calibrazione, ci sono dei micro che permettono di modificare tale valore. Ad esempio la V-USB!!! Te la ricordi Mike?  Ti ricordi che l'Attiny85 viene calibrato internamente a 12 MHz agendo proprio su questo parametro? non lo ricordavo, ero troppo impegnato a maledirla per poterne approfondire il funzionamento. Invece mi interessava capire se si poteva gestire via software in modo da calibrare il singolo micro disponendo di idonea strumentazione. Se parli di 12MHz significa che tale byte opera anche su oscillatore esterno o cosa? Chiuso il discorso signature mi piacerebbe capirne di più su questa cosa.
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 226
Posts: 16983
Don't know what I do
|
 |
« Reply #529 on: May 09, 2012, 03:51:06 pm » |
La calibrazione dovrebbe influenzare solo l'oscillatore interno. Si può modificare via software, vedi cap. 9.6 pag. 34 e link correlati. Mai approfondito il discorso.
|
|
|
|
|
Logged
|
|
|
|
|
Lamezia Terme
Offline
Shannon Member
Karma: 389
Posts: 10555
Le domande di chi vuol imparare rappresentano la sua sete di sapere
|
 |
« Reply #530 on: May 09, 2012, 03:59:26 pm » |
ok approfondirò, solo un chiarimento,a quale reference ti stai riferendo tiny o mega?
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 226
Posts: 16983
Don't know what I do
|
 |
« Reply #531 on: May 09, 2012, 04:11:25 pm » |
Mega. Citavi i Mega, ho spulciato quello dei Mega. Lo stesso tuo, doc8271d-avr-85/11.
|
|
|
|
|
Logged
|
|
|
|
|
Lamezia Terme
Offline
Shannon Member
Karma: 389
Posts: 10555
Le domande di chi vuol imparare rappresentano la sua sete di sapere
|
 |
« Reply #532 on: May 09, 2012, 04:13:17 pm » |
Mega. Citavi i Mega, ho spulciato quello dei Mega. Lo stesso tuo, doc8271d-avr-85/11.
so' stanco, grazie! domani giornataccia ma venerdì voglio approfondire, dopo aver scritto tutto sul LbB. Ciao 
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Faraday Member
Karma: 18
Posts: 4047
Arduino rocks
|
 |
« Reply #533 on: May 09, 2012, 04:13:24 pm » |
Posizione bootloader: Thanks Tabella Lockbits: Thanks
il discorso calibrazione oscillatore interno: se ho capito viene testato il corretto valore in fabbrica e lo si scrive in signature, ad ogni boot viene copiato dalla signature e scritto in Ram, quindi se via sketch ad esempio in Setup() sovrascriviamo questo dato lo gestiamo come vogliamo ? Potrebbe servire alla swRTC al posto del deltaT ?
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 226
Posts: 16983
Don't know what I do
|
 |
« Reply #534 on: May 09, 2012, 04:20:45 pm » |
La swRTC va più che bene così, lasciamola in pace  Altrimenti potremmo usare anche il termometro interno e calibrare l'oscillatore in base alla temperatura. Poi, con un calendario lunare, verificare se è gobba a ponente deltaT crescente, gobba a levante deltaT calante 
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 226
Posts: 16983
Don't know what I do
|
 |
« Reply #535 on: May 09, 2012, 04:44:55 pm » |
@Mike: sono andato a spulciare sul sito del core Tiny ed ho trovato quella libreria che serviva a calibrare i Tiny. Ti ricordi di TinyTuner? http://code.google.com/p/arduino-tiny/downloads/listDentro ho trovato un readme con un paio di link. Il primo è ad un documento di Atmel sulla calibrazione dell'oscillatore. E' vecchio (2006) ma qualche info la da: http://www.atmel.com/Images/doc2555.pdfUn altro metodo è quello usato dalla libreria, che si basa sul principio descritto qui: http://forums.adafruit.com/viewtopic.php?t=5078l'uso della trasmissione della seriale.
|
|
|
|
|
Logged
|
|
|
|
|
Lamezia Terme
Offline
Shannon Member
Karma: 389
Posts: 10555
Le domande di chi vuol imparare rappresentano la sua sete di sapere
|
 |
« Reply #536 on: May 10, 2012, 03:26:06 am » |
grazie, voglio provare a capirci qualcosa in più. l'idea è proprio quella di Test  , poiché esiste il modo di misurare il clock interno, a tentativi si potrebbe trovare una condizione oiù precisa di quella di default
|
|
|
|
|
Logged
|
|
|
|
|
Lamezia Terme
Offline
Shannon Member
Karma: 389
Posts: 10555
Le domande di chi vuol imparare rappresentano la sua sete di sapere
|
 |
« Reply #537 on: May 10, 2012, 03:40:35 am » |
La swRTC va più che bene così, lasciamola in pace  Altrimenti potremmo usare anche il termometro interno e calibrare l'oscillatore in base alla temperatura. Poi, con un calendario lunare, verificare se è gobba a ponente deltaT crescente, gobba a levante deltaT calante  Notizia: ah leo, fai attenzione agli OT, mi hanno riferito che qualcuno sta sudando freddo terrorizzato dall'idea che qualcuno possa sporcargli il suo bellissimo Topic, sembra che l'abbia addirittura scritto in un suo post. Meno male che c'è ancora gente seria su questo Forum, fosse per me e te l'avrebbero già chiuso  Commento: minc.... è davvero sconcertante come certa gente si presenti sul Forum solo per vampirizzare informazione e risolversi i propro problemi, senza nulla dare o restituire, in sintesi, che si fa i zz propri, e poi si permette anche di criticare e tentare di blindare il proprio Topic succhiasangue. Precisazione: ma ciò mi è stato riferito, non so se corrisponde a verità, quindi se ci tieni mettiti a cercare, altrimenti te ne stra..ftt come me e tiri innanz. Commento finale: BAH!
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 226
Posts: 16983
Don't know what I do
|
 |
« Reply #538 on: May 10, 2012, 04:09:08 am » |
Questa poi mi giunge nuova.... sarà che sono "innocente" nei miei interventi e non faccio caso a queste piccolezze.... Però... penso... se uno si vuol tenere tutto per sé, perché frequenta un forum pubblico? PS: piccolo indizio? 
|
|
|
|
|
Logged
|
|
|
|
|
Lamezia Terme
Offline
Shannon Member
Karma: 389
Posts: 10555
Le domande di chi vuol imparare rappresentano la sua sete di sapere
|
 |
« Reply #539 on: May 10, 2012, 07:24:43 am » |
Però... penso... se uno si vuol tenere tutto per sé, perché frequenta un forum pubblico?
solo per soddisfare le sue necessità e farsi spiegare dagli altri le cose che non sa fare, hai presente quei rettili che stanno nei buchi della terra in agguato senza farsi vedere da nessuno? appena passa la preda (cioè loro hanno necessità di cibarsi) schizzano fuori a velocità pazzesca, agguantano e si rintanano fino a nuova necessità, poi arriva l'altro rettile che gli dice "me ne dai un pò?" e lui risponde "gné!!  " (citazione da "Bertoldo, Bertoldino e Cacasenno", scena del lancio di pochi polli arrosto dalla cucina del Re in mezzo ad una folla di poveri e morti di fame). Il termine che ho usato, vampiro, non ti dice nulla? Hai mai sentito parlare di vampiri che fanno trasfusioni di sangue?  Comunque sia chiaro, ribadisco che io non ho letto questa cosa ma mi è stata riferita ed il mio discorso è generale e vale per tutti coloro che in genere agiscono in questo modo, niente di personale  Non vorrei che si presentasse qui qualcuno con la coda di paglia a dirmene di tutti i colori 
|
|
|
|
|
Logged
|
|
|
|
|
|