naprogramovanie ATmega164A
Moderátori: psichac, Moderátori
naprogramovanie ATmega164A
tdravím
potrebuje si naprogramovat tento mikroprocesor no a používam AVR8-Burn-O_ma a programator http://www.fischl.de/usbasp/
normálne som si nastavil v menu tento mikroprocesor a ako prve som chcel prečítat fuse ako su nastaven no nejde mi ich prečítat Burn o mat napíše toto :
avrdude.exe: AVR Part "m164" not found.
skušal som aj slov sck na programatore ale no nepomohlo
mal by som stiahnut novšiu verziu Burn-O _Mat alebo čo hmm ?
potrebuje si naprogramovat tento mikroprocesor no a používam AVR8-Burn-O_ma a programator http://www.fischl.de/usbasp/
normálne som si nastavil v menu tento mikroprocesor a ako prve som chcel prečítat fuse ako su nastaven no nejde mi ich prečítat Burn o mat napíše toto :
avrdude.exe: AVR Part "m164" not found.
skušal som aj slov sck na programatore ale no nepomohlo
mal by som stiahnut novšiu verziu Burn-O _Mat alebo čo hmm ?
0
- Tribec Zacks
- Pokročilý člen
- Príspevky: 709
- Dátum registrácie: 26 Jún 2010, 00:00
- Bydlisko: Levice / Cork IRL
- Vek: 41
- Kontaktovať používateľa:
Re: naprogramovanie ATmega164A
ak nemas analyzer, skus dat ledky cez rezistor na sck a data a nejaky pomaly clock speed, mali by prebliknut ked chces detekovat alebo programovat mcu, zistis tym ci ten programmer chce nieco s mcu robit. ak nemas externy krystal na mcu a ten bol predtym naprogramovany na externy krystal, tak ho musis pripojit. a hlavne skontroluj vsetky prepojenia poriadne. a jj stiahni novsiu verziu, najlepsie aj niekde v release note pozret podporu mcu a bugy.
0
Kreativita a motivacia je to, co prinasa originalne napady a myslienky, disciplina je to, co ich dokaze zrealizovat.
Re: naprogramovanie ATmega164A
pozri ci ma AVR8-Burn-O_ma v konfiguracnom subore podporu pre m164. Avrdude ma config kde to mas definovane
Vyzera to ze tvoj soft nepozna (nema definovane) m164
Vyzera to ze tvoj soft nepozna (nema definovane) m164
0
Re: naprogramovanie ATmega164A
v tom config subore bolo napísane toto :
#------------------------------------------------------------
# ATmega164P
#------------------------------------------------------------
# close to ATmega16
part
id = "m164p";
desc = "ATMEGA164P";
has_jtag = yes;
stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one
avr910_devcode = 0x74;
signature = 0x1e 0x94 0x0a;
pagel = 0xd7;
bs2 = 0xa0;
chip_erase_delay = 9000;
pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
"x x x x x x x x x x x x x x x x";
chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
"x x x x x x x x x x x x x x x x";
timeout = 200;
stabdelay = 100;
cmdexedelay = 25;
synchloops = 32;
bytedelay = 0;
pollindex = 3;
pollvalue = 0x53;
predelay = 1;
postdelay = 1;
pollmethod = 0;
pp_controlstack =
0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
hventerstabdelay = 100;
progmodedelay = 0;
latchcycles = 5;
togglevtg = 1;
poweroffdelay = 15;
resetdelayms = 1;
resetdelayus = 0;
hvleavestabdelay = 15;
chiperasepulsewidth = 0;
chiperasepolltimeout = 10;
programfusepulsewidth = 0;
programfusepolltimeout = 5;
programlockpulsewidth = 0;
programlockpolltimeout = 5;
idr = 0x31;
spmcr = 0x57;
allowfullpagebitstream = no;
memory "eeprom"
paged = no; /* leave this "no" */
page_size = 4; /* for parallel programming */
size = 512;
min_write_delay = 9000;
max_write_delay = 9000;
readback_p1 = 0xff;
readback_p2 = 0xff;
read = " 1 0 1 0 0 0 0 0",
" 0 0 x x x x a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" o o o o o o o o";
write = " 1 1 0 0 0 0 0 0",
" 0 0 x x x x a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" i i i i i i i i";
loadpage_lo = " 1 1 0 0 0 0 0 1",
" 0 0 0 0 0 0 0 0",
" 0 0 0 0 0 0 a1 a0",
" i i i i i i i i";
writepage = " 1 1 0 0 0 0 1 0",
" 0 0 x x x x a9 a8",
" a7 a6 a5 a4 a3 a2 0 0",
" x x x x x x x x";
mode = 0x41;
delay = 10;
blocksize = 128;
readsize = 256;
;
memory "flash"
paged = yes;
size = 16384;
page_size = 128;
num_pages = 128;
min_write_delay = 4500;
max_write_delay = 4500;
readback_p1 = 0xff;
readback_p2 = 0xff;
read_lo = " 0 0 1 0 0 0 0 0",
" 0 0 a13 a12 a11 a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" o o o o o o o o";
read_hi = " 0 0 1 0 1 0 0 0",
" 0 0 a13 a12 a11 a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" o o o o o o o o";
loadpage_lo = " 0 1 0 0 0 0 0 0",
" 0 0 x x x x x x",
" x x a5 a4 a3 a2 a1 a0",
" i i i i i i i i";
loadpage_hi = " 0 1 0 0 1 0 0 0",
" 0 0 x x x x x x",
" x x a5 a4 a3 a2 a1 a0",
" i i i i i i i i";
writepage = " 0 1 0 0 1 1 0 0",
" 0 0 a13 a12 a11 a10 a9 a8",
" a7 a6 x x x x x x",
" x x x x x x x x";
mode = 0x21;
delay = 6;
blocksize = 128;
readsize = 256;
;
memory "lock"
size = 1;
read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
"x x x x x x x x x x o o o o o o";
write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
"x x x x x x x x 1 1 i i i i i i";
min_write_delay = 9000;
max_write_delay = 9000;
;
memory "lfuse"
size = 1;
read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
"x x x x x x x x o o o o o o o o";
write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
"x x x x x x x x i i i i i i i i";
min_write_delay = 9000;
max_write_delay = 9000;
;
memory "hfuse"
size = 1;
read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
"x x x x x x x x o o o o o o o o";
write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
"x x x x x x x x i i i i i i i i";
min_write_delay = 9000;
max_write_delay = 9000;
;
memory "efuse"
size = 1;
read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
"x x x x x x x x o o o o o o o o";
write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
"x x x x x x x x 1 1 1 1 1 i i i";
min_write_delay = 9000;
max_write_delay = 9000;
;
memory "signature"
size = 3;
read = "0 0 1 1 0 0 0 0 x x x x x x x x",
"x x x x x x a1 a0 o o o o o o o o";
;
memory "calibration"
size = 1;
read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
"0 0 0 0 0 0 0 0 o o o o o o o o";
;
;
#------------------------------------------------------------
# ATmega164P
#------------------------------------------------------------
# close to ATmega16
part
id = "m164p";
desc = "ATMEGA164P";
has_jtag = yes;
stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one
avr910_devcode = 0x74;
signature = 0x1e 0x94 0x0a;
pagel = 0xd7;
bs2 = 0xa0;
chip_erase_delay = 9000;
pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
"x x x x x x x x x x x x x x x x";
chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
"x x x x x x x x x x x x x x x x";
timeout = 200;
stabdelay = 100;
cmdexedelay = 25;
synchloops = 32;
bytedelay = 0;
pollindex = 3;
pollvalue = 0x53;
predelay = 1;
postdelay = 1;
pollmethod = 0;
pp_controlstack =
0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
hventerstabdelay = 100;
progmodedelay = 0;
latchcycles = 5;
togglevtg = 1;
poweroffdelay = 15;
resetdelayms = 1;
resetdelayus = 0;
hvleavestabdelay = 15;
chiperasepulsewidth = 0;
chiperasepolltimeout = 10;
programfusepulsewidth = 0;
programfusepolltimeout = 5;
programlockpulsewidth = 0;
programlockpolltimeout = 5;
idr = 0x31;
spmcr = 0x57;
allowfullpagebitstream = no;
memory "eeprom"
paged = no; /* leave this "no" */
page_size = 4; /* for parallel programming */
size = 512;
min_write_delay = 9000;
max_write_delay = 9000;
readback_p1 = 0xff;
readback_p2 = 0xff;
read = " 1 0 1 0 0 0 0 0",
" 0 0 x x x x a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" o o o o o o o o";
write = " 1 1 0 0 0 0 0 0",
" 0 0 x x x x a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" i i i i i i i i";
loadpage_lo = " 1 1 0 0 0 0 0 1",
" 0 0 0 0 0 0 0 0",
" 0 0 0 0 0 0 a1 a0",
" i i i i i i i i";
writepage = " 1 1 0 0 0 0 1 0",
" 0 0 x x x x a9 a8",
" a7 a6 a5 a4 a3 a2 0 0",
" x x x x x x x x";
mode = 0x41;
delay = 10;
blocksize = 128;
readsize = 256;
;
memory "flash"
paged = yes;
size = 16384;
page_size = 128;
num_pages = 128;
min_write_delay = 4500;
max_write_delay = 4500;
readback_p1 = 0xff;
readback_p2 = 0xff;
read_lo = " 0 0 1 0 0 0 0 0",
" 0 0 a13 a12 a11 a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" o o o o o o o o";
read_hi = " 0 0 1 0 1 0 0 0",
" 0 0 a13 a12 a11 a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" o o o o o o o o";
loadpage_lo = " 0 1 0 0 0 0 0 0",
" 0 0 x x x x x x",
" x x a5 a4 a3 a2 a1 a0",
" i i i i i i i i";
loadpage_hi = " 0 1 0 0 1 0 0 0",
" 0 0 x x x x x x",
" x x a5 a4 a3 a2 a1 a0",
" i i i i i i i i";
writepage = " 0 1 0 0 1 1 0 0",
" 0 0 a13 a12 a11 a10 a9 a8",
" a7 a6 x x x x x x",
" x x x x x x x x";
mode = 0x21;
delay = 6;
blocksize = 128;
readsize = 256;
;
memory "lock"
size = 1;
read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
"x x x x x x x x x x o o o o o o";
write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
"x x x x x x x x 1 1 i i i i i i";
min_write_delay = 9000;
max_write_delay = 9000;
;
memory "lfuse"
size = 1;
read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
"x x x x x x x x o o o o o o o o";
write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
"x x x x x x x x i i i i i i i i";
min_write_delay = 9000;
max_write_delay = 9000;
;
memory "hfuse"
size = 1;
read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
"x x x x x x x x o o o o o o o o";
write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
"x x x x x x x x i i i i i i i i";
min_write_delay = 9000;
max_write_delay = 9000;
;
memory "efuse"
size = 1;
read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
"x x x x x x x x o o o o o o o o";
write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
"x x x x x x x x 1 1 1 1 1 i i i";
min_write_delay = 9000;
max_write_delay = 9000;
;
memory "signature"
size = 3;
read = "0 0 1 1 0 0 0 0 x x x x x x x x",
"x x x x x x a1 a0 o o o o o o o o";
;
memory "calibration"
size = 1;
read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
"0 0 0 0 0 0 0 0 o o o o o o o o";
;
;
0
- Tribec Zacks
- Pokročilý člen
- Príspevky: 709
- Dátum registrácie: 26 Jún 2010, 00:00
- Bydlisko: Levice / Cork IRL
- Vek: 41
- Kontaktovať používateľa:
Re: naprogramovanie ATmega164A
V klude prepis ID v tom konfiguraku na 'm164'
0
Kreativita a motivacia je to, co prinasa originalne napady a myslienky, disciplina je to, co ich dokaze zrealizovat.
Re: naprogramovanie ATmega164A
V tomto ti neporadim, kedze AVR8-Burn-O_ma nepouzivam a ani nepoznam
0
Re: naprogramovanie ATmega164A
no prepísal som to na configu na 'm164'
a začalo sa diat toto:
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude.exe: Device signature = 0x1e940f
avrdude.exe: Expected signature for ATMEGA164P is 1E 94 0A
Double check chip, or use -F to override this check.
avrdude.exe done. Thank you.
či som mal všade prepísat to na m164 ?
a začalo sa diat toto:
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude.exe: Device signature = 0x1e940f
avrdude.exe: Expected signature for ATMEGA164P is 1E 94 0A
Double check chip, or use -F to override this check.
avrdude.exe done. Thank you.
či som mal všade prepísat to na m164 ?
0
- Tribec Zacks
- Pokročilý člen
- Príspevky: 709
- Dátum registrácie: 26 Jún 2010, 00:00
- Bydlisko: Levice / Cork IRL
- Vek: 41
- Kontaktovať používateľa:
Re: naprogramovanie ATmega164A
Vypada to ze budes muset poguglit presny konfig pre tvoj mcu do avrdude, neviem ake su presne rozdiely medzi "164" a "164p", ale ak nepouzivas nic specificke co je medzi nimy rozdielne, tak by ti program mal fungovat, pridaj flag -F k spustaniu avrdude. Flashnut ti to flashne a malo by to ist, ale nerucim ti to, ak su rozdiely v poistkach, alebo v niecom podobnom tak tam je riziko ze nieco nepojde.
0
Kreativita a motivacia je to, co prinasa originalne napady a myslienky, disciplina je to, co ich dokaze zrealizovat.
Re: naprogramovanie ATmega164A
alebo v konfiguraku skopiruj celu definiciu m164. Prepis meno, signature ..........
0
Re: naprogramovanie ATmega164A
dobre prepísal som v configu na signaturu už mi to ide a ide to na vnutornom RC oscilatore a teraž chcem nastavit na externý 16MHZ kryštal tak by som mal dat takto ?
0
Re: naprogramovanie ATmega164A
možem sa spytat načo je tento bit ? CKDIV8 čo tým nastavím ? to ako ked mam tam 16MHZ on mi predeli frekvenciu 8 ? väčšínou robim s megami 16 a 32 a tam daco take nieje ?
0
- Tribec Zacks
- Pokročilý člen
- Príspevky: 709
- Dátum registrácie: 26 Jún 2010, 00:00
- Bydlisko: Levice / Cork IRL
- Vek: 41
- Kontaktovať používateľa:
Re: naprogramovanie ATmega164A
Clock divide by 8. Ano, vydeli 8.fagi napísal:možem sa spytat načo je tento bit ? CKDIV8 čo tým nastavím ? to ako ked mam tam 16MHZ on mi predeli frekvenciu 8 ? väčšínou robim s megami 16 a 32 a tam daco take nieje ?
0
Kreativita a motivacia je to, co prinasa originalne napady a myslienky, disciplina je to, co ich dokaze zrealizovat.
Re: naprogramovanie ATmega164A
takže ked dam 16MH kryštal tak mi pojde na 2Mhz aj CPU aj periferie taže nema byt zašktrnuty dobre?
0
- Tribec Zacks
- Pokročilý člen
- Príspevky: 709
- Dátum registrácie: 26 Jún 2010, 00:00
- Bydlisko: Levice / Cork IRL
- Vek: 41
- Kontaktovať používateľa:
Re: naprogramovanie ATmega164A
16/8 = 2. <- co vsetko je clocknute tymi 2MHz sa docitas v datasheete, ale ano aj periferie u avr.fagi napísal:takže ked dam 16MH kryštal tak mi pojde na 2Mhz aj CPU aj periferie taže nema byt zašktrnuty dobre?
to ci ma byt zaskrtnuty, alebo nie, zalezi na tebe. ak potrebujes 16MHz, tak nema byt zaskrtnuty. ak ti netreba rychlost a potrebujes optimalizovat na spotrebu, tak to je jedna z moznosti ako ju znizit..
0
Kreativita a motivacia je to, co prinasa originalne napady a myslienky, disciplina je to, co ich dokaze zrealizovat.
Re: naprogramovanie ATmega164A
som skušal napísal daco robit s casovacmi generovanie pwm no ale nefungovalo mi to ale vo while(1) mam taku cast programu čím kontrolujem ci to sa dakde mi nezacyklilo
nakoniec som ten program očesal až na to ninimum že to len akoby" bliká s ledkou" som tento program :
#define F_CPU 16000000UL
#include <avr/interrupt.h>
#include <avr/io.h>
int main(void)
{
DDRA |= (1 << PA0); //output pin
while(1)
{
PORTA |= (1<<PA0);
for(int i=0;i<4000;i++){}
PORTA &= ~(1<<PA0);
for(int i=0;i<4000;i++){}
}
}
proste obycajne blikanie no na osciloskope mi toto zobrazí niečo akokeby sa tam prerušovalo a ani resetom sa to nezmení ale až odpojením a pripojením programatora, zaujímave že je to dost taký nepredvídatelný problem, a neviem si vysvetlit čo ho spôsobuje
0
- Tribec Zacks
- Pokročilý člen
- Príspevky: 709
- Dátum registrácie: 26 Jún 2010, 00:00
- Bydlisko: Levice / Cork IRL
- Vek: 41
- Kontaktovať používateľa:
Re: naprogramovanie ATmega164A
mas dobry pullup na resete? s pripojenym programmerom ti to moze robit sarapatu, zalezi co je v programmeri..
0
Kreativita a motivacia je to, co prinasa originalne napady a myslienky, disciplina je to, co ich dokaze zrealizovat.
-
- Podobné témy
- Odpovedí
- Zobrazení
- Posledný príspevok
-
- 5 Odpovedí
- 484 Zobrazení
-
Posledný príspevok od používateľa romiadam