sulla programmazione dei chip (tipo topic di menniti)

visto la complessita del topic di menniti (vedi. Topic di programmazione newbie) non mi andava di leggere tutto per trovare quello che io cerco. :grin:

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 :sweat_smile:

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

capisco, solo che dalle mie parti non si vendono questi numeri di elettronica in. li compro online domani penso..

al volo: devo impostare a 20mhz un mega8 (cristallo esterno)
qualsi CKSEL devo ailitare?

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?

igor97:

[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? :fearful:
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 ]:smiley: Nicò, dammi un cornetto al cacao!

ma mi prendi per il c? :fearful:
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 ]:smiley: 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?
:grin:

come dicevo ricordavo che fossero 12MHz, mi hai dato ragione e poi mi hai detto monto il 16 :fearful:
i fuse che hai indicato vanno bene, sempre se non devi mettere bootloader ma direttamente lo sketch.

si uso per solo 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 :sweat_smile:

Allora il mega 8 esiste in tre versioni:
8L
8
8A

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 :grin:

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

per carità non mi parlare di lato b :grin: :grin: :grin: che ancora ho in mente l'altra storia :sweat_smile:

No, E5 parla di oscillatore esterno fino (-) a 0.9MHz, va bene E0, la riga della frequenza è quella e lasci quel valore.

ahahah gia dimenticavo :stuck_out_tongue:

in quella riga basta sostituire il 16 con un valore di clock? (per un altro chip)

igor97:

[quote author=Michele Menniti link=topic=118431.msg891464#msg891464 date=1344894563]
per carità non mi parlare di lato b :grin: :grin: :grin: che ancora ho in mente l'altra storia :sweat_smile:

ahahah gia dimenticavo :stuck_out_tongue:

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ò :smiley:
Grazie comunque x l'aiuto e..scusa il fraintendimento

ma no, avevo capito, lo sai che mi piace scherzare :wink: se hai bisogno di chiarimenti scrivi senza pietà :slight_smile:

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 :fearful:, 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 :grin:

:stuck_out_tongue_closed_eyes: non era in dubbio che avrei chiesto qualcosa.

@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 :slight_smile: