visto la complessita del topic di menniti (vedi. Topic di programmazione newbie) non mi andava di leggere tutto per trovare quello che io cerco.
allora questo topic lo volevo incentrare piu sulla programmazione dei chip, su come usare a pieno il programma avrdude, come funzionano i lock e unlockbits, e come funzionano gli high-low-extended fuses.
io ho tra le mani diversi tipi di chip (tiny85, tiny2313,mega328p,mega8). vorrei conoscere a fondo la parte che di solito non rientra nella programmazione da ide ma la programmazione di fondo dei registri ecc.
innanzitutto voglio apprendere a fondo come usare l'avr fuse calculator (impostazioni manuali).poi via via imparando meglio altre cose.
voglio sapere in particolare ogni bit a cosa corrisponde.
Grazie, Igor
Igor, senza stare a disperarti, procura i numeri di Giugno e Luglio/Agosto di Elettronica In, nei miei due articoli c'è tutto ciò che ti serve sapere su: fuse e lock bits, signature, uso di Fuse Calc, qualche cenno di AVRDUDE.
Riguardo i fuse e lock ho realizzato della tebelle bellissime che sono poi supporttate da spiegazioni teoriche sull'articolo, davvero non saprei come meglio aiutarti
Il Topic a cui ti riferisci lo aprii in quanto mi serviva una mano per comprendere certi meccanismi, anche a leggerlo tutto sfuggiranno molte cose che ho studiato e compreso da me e per le quali non ho ovviamente aperto post.
[quote author=Michele Menniti link=topic=118431.msg891410#msg891410 date=1344892476]
a mia memoria il mega8 non lavora oltre i 12MHz, sei sicuro o devo controllare?
ooops hai ragione in pieno, metto il 16..
quali clock imposto?
[/quote]
ma mi prendi per il c?
Mi sembra la storia del barista del mio paese: Nicò, fammi un gelato! -Come lo vuoi?- Quello che c'è purché non sia banana o fragola - Allora te lo faccio nocciola e banana - No Nicò, la banana te la mangi tu - Allora te lo faccio limone e fragola ] Nicò, dammi un cornetto al cacao!
ma mi prendi per il c?
Mi sembra la storia del barista del mio paese: Nicò, fammi un gelato! -Come lo vuoi?- Quello che c'è purché non sia banana o fragola - Allora te lo faccio nocciola e banana - No Nicò, la banana te la mangi tu - Allora te lo faccio limone e fragola ] Nicò, dammi un cornetto al cacao!
[/quote]
aeeem non direi, dipende da cosa ti riferisci:
la frequenza massima dell'8 è 16mhz a quanto lego.
su"quali clock imposto" intendo i CKSEL del calcolatore avr dicevo..
forse ho trovato: va bene low E0 e high D9?
come dicevo ricordavo che fossero 12MHz, mi hai dato ragione e poi mi hai detto monto il 16
i fuse che hai indicato vanno bene, sempre se non devi mettere bootloader ma direttamente lo sketch.
ma riguardo la frequenza quel mio ooops si riferiva al fatto che a 20mhz non arriva il chip.
io qui nel datasheet leggo:
Speed Grades
– 0 - 8MHz (ATmega8L)
– 0 - 16MHz (ATmega8) /nel mio caso
o sono bacato che non capisco i ds o non lo so ma di 12mhz non ne vedo nemmeno l'ombra
la versione L non supera 8MHZ, le altre due arrivano a 16MHz, ma l'8 deve essere alimentato tr 4.5V e 5.5V, mentre l'8A può scendere fino a 2.7V.
quelle indicate sono le frequenze massime, poi tu puoi settarlo a frequenze intermedie, in base al quarzo che usi o alle impostazioni che dai all'oscilatore interno ed al divisore x8.
aaaaaaa ora capisco perchè mi dicevi se ti avevo preso per il lato b...
io ti avevo fatto capire che il chip va max a 12 ma montavo poi un 16mhz ahahahaahah scusami
cmq io ho il mega8....mi sembra di capire che sia E0 cche E5 sono uguali ma mi sembra di capire anche che quelli indicano solo che c'è un quarzo esterno..la frequenza poi si indica qua'?: atmega8_new.build.f_cpu=16000000L
[quote author=Michele Menniti link=topic=118431.msg891464#msg891464 date=1344894563]
per carità non mi parlare di lato b che ancora ho in mente l'altra storia
ahahah gia dimenticavo
in quella riga basta sostituire il 16 con un valore di clock? (per un altro chip)
[/quote]
si, le diffrenze tra le board, riguardo il clok, stanno appunto nei fuse ed in quella riga, se usi i fuse per 8MHz, in quella riga devi scrivere _cpu=8000000L
si, le diffrenze tra le board, riguardo il clok, stanno appunto nei fuse ed in quella riga, se usi i fuse per 8MHz, in quella riga devi scrivere _cpu=8000000L
[/quote]
benissimo, allora appena mi procuro le riviste studierò
Grazie comunque x l'aiuto e..scusa il fraintendimento
Uhm... io per il fuse basso non metterei $E0. $E0 parla di "Ext. Clock", ossia di un segnale di clock dato da una fonte esterna, quindi su uno solo dei 2 pin adibiti all'ingresso del segnale. Ci vuole una impostazione che selezioni l'uso di un quarzo o risonatore esterno. Il valore che suggerisco è $FF, ossia la voce "Ext.Crystal/Resonator High Frequ. - Startup time 64CK + 64 ms".
Questo perché 16 MHz li considero "High Freq." per un chip che max lavora a 16 MHz appunto. Inoltre dare un tempo di startup di 64 CK + 64 ms permette al circuito del reset di eseguire correttamente il suo compito. Dare tempi molto brevi può portare a problemi di reset, con il chip che non si avvia correttamente.
Sì, hai perfettamente ragione, non lo avevo proprio visto il gruppo HF , cercavo la voce "8MHz-" come per il 328P, ma visto che era presente solo come circuito RC e ad un massimo di 12MHz ho ignorato il resto
@leo:
se vedi nel ds qui: http://www.atmel.com/images/doc2486.pdf
a pagina 26 tabella 2 c'è nella prima riga "External Crystal/Ceramic Resonator 1111 - 1010"
io quindi ho spuntato tutti i cksel nella configurazione manuale del fuse calculator per interpretare gli 1111.
a meno che ora m isorge un dubbio e quegli 1111 significano tutti i cksel NON spuntati..
ma oltre a quei primi bit del low fuses devo solo spuntare SUT0 no?
io la onfigurazione normale non l'ho provata perchè mi imbroglio con tutte quelle voci del menu a discesa
EDIT: aaaaa ho trovato il problema; nella sezione della configurazione manuale c'è scritto (in piccolo :0) Note: means unprogrammed (1); means programmed v (0).
ovvero che lo zero significa checkbox spuntata e non il contrario come io pensavo.
ora non mi resta solo che vedere la tabella del SUT. ora leo mi tornano i conti
e si, sto fatto che zero significa 1 e' un'idea eccezionale, credo che derivi dalla reale condizione interna del micro che pero' porta al manicomio.
E' sempre bene dare uno sguardo al dato finale, 1111 sara' tradotto in FF, e quello non mente