Stránka 2 z 5
Napsal: 10 říj 2016, 20:28
od FHonza
Nehledal bych chybu v Atmel Studiu, bude mezi programátorem a programovaným MCU. Programátor nedokáže komunikovat s MCU. Buď je rychlost MCU a programátoru významně rozdílná, nebo MCU vůbec neběží. Nejsou náhodou nastavené pojistky na MCU tak, že je potřeba externí krystal ?
Napsal: 10 říj 2016, 21:17
od Mara88
takže mám zkusit na pb6 a 7 připojit krystal? jinak mám toto zapojení připojené natvrdo na usbasp
Napsal: 10 říj 2016, 21:54
od FHonza
Připoj krystal, nezapomeň na 2x 22pF k němu. Ještě bych na Reset dal pull-up odpor cca 10k.
Byl ten procesor nový ? Z výroby by měl být nastaven na interní oscilátor s předděličkou.
Napsal: 10 říj 2016, 22:14
od Mara88
Ano je nový, dá se nějak poznat, jestli je funkční? Ten krystal může být jakýkoliv?
Napsal: 11 říj 2016, 00:50
od mtajovsky
Defaultní programovací frekvence USBasp je 375 kHz. Protože maximální programovací frekvence čipu je 1/4 hodin a procesory se defaultně dodávají s nastaveným vnitřním oscilátorem 8MHz a se zapnutým děličem hodin 8 (nastaveno CLOCKDIV8), bude maximální frekvence pak jen 250 kHz.
Programovací frekvenci USBasp je možno snížit pomocí přepínače -B<usec>, kde usec je počet mikrosekund periody programovacího taktu. Obvykle se používá -B5 nebo spolehlivěji -B12 a dokonce -B60.
Předpokládá se, že firmware USBasp je novějšího typu, které umí zpracovat volbu -B. Vzpomínaná hláška:
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
znamená, že to firmware neumí a je potřeba jeho update.
Pokud je procesor nastaven na vyšší frekvenci hodin, pak programování proběhne i při defaultním nastavení USBasp. Varování o nemožnosti přenastavit takt USBasp se pak může ignorovat pokud to programovací prostředí dovolí a operaci úspěšně dokončit (Khazama). Atmel Studio ani Arduino to nedovoluje.
Napsal: 11 říj 2016, 12:26
od Mara88
tento přepínač -B<usec> najdu kde? Prosím polopatě:-D
Napsal: 11 říj 2016, 20:27
od mtajovsky
"přepínač" není žádný fyzický elektrický přepínač. Zde je to hantýrka pro parametr v příkazovém řádku nebo v datech zasílaného povelu. Když si spustíte například avrdude, tak dostanete nápovědu:
>avrdude
Usage: avrdude [options]
Options:
-p <partno> Required. Specify AVR device.
-b <baudrate> Override RS-232 baud rate.
-B <bitclock> Specify JTAG/STK500v2 bit clock period (us).
-C <config-file> Specify location of configuration file.
-c <programmer> Specify programmer type.
-D Disable auto erase for flash memory
-i <delay> ISP Clock Delay [in microseconds]
-P <port> Specify connection port.
-F Override invalid signature check.
-e Perform a chip erase.
-O Perform RC oscillator calibration (see AVR053).
-U <memtype>:r|w|v:<filename>[:format]
Memory operation specification.
Multiple -U options are allowed, each request
is performed in the order specified.
-n Do not write anything to the device.
-V Do not verify.
-u Disable safemode, default when running from a s
-s Silent safemode operation, will not ask you if
fuses should be changed back.
-t Enter terminal mode.
-E <exitspec>[,<exitspec>] List programmer exit specifications.
-x <extended_param> Pass <extended_param> to programmer.
-y Count # erase cycles in EEPROM.
-Y <number> Initialize erase cycle # in EEPROM.
-v Verbose output. -v -v for more.
-q Quell progress output. -q -q for less.
-l logfile Use logfile rather than stderr for diagnostics.
-? Display this usage.
Je tam vidět i parametr -B. AtmelStudio a i jiná prostředí posílají směrem na USBasp příkaz, který nastavuje takt programování. Respektive vyvolají utilitu avrdude a předají jí příkazovou řádku obsahující parametr -B. avrdude pak odešle mimo jiné na USBasp i povel k nastavení taktu. Jestliže máte v USBasp starší firmware, tak tento starší FW povel pro nastavení taktu programování neumí. Proto vrátí chybový kód a avrdude na svém standardním výstupu vypíše inkriminovanou hlášku o nemožnosti nastavit takt. Atmel Studio tuto hlášku zachytí a zobrazí v okně pro výstup výsledků operace. A tím to, bohužel, zhaslo.
Odpomoc je, jak už jsem psal, update firmware vašeho USBasp. Nový firmware zpracuje i povel pro nastavení taktu a operace proběhne OK.
Některá prostředí, jako Khazama AVR Programmer sice také příkaz pro nastavení taktu pošlou, ale po vrácení chyby mohou pokračovat v akci, pokud operátor odklikne ignorování této chyby. Programovací takt zůstává na defaultních 375 kHz. Pokud v tomto případě byla hodinová frekvence procesoru již dříve nastavena na nějakém jiném programátoru na vyšší frekvenci, například byla vypnuta dělička 8-mi hodin procesoru, tak dojde k dokončení akce (i třeba přes několikrát opakované ignorování chyby.)
Napsal: 12 říj 2016, 09:05
od Mara88
Tak připojil jsem pull up odpor, krystal 24mhz a kondíky a pořád stejné...
mtajovsky, jak se prosím dostanu do toho nastavení? pokud jej otevřu tak se po 1s ta černá obrazovka zavře a v příkazovém řádku se k tomu také nemohu dopracovat
Napsal: 12 říj 2016, 09:32
od mtajovsky
Nastavení se přece dělá v okně "External Tools". V poli "Command" se vloží cesta k avrdude a v poli "Arguments" pak příkazová řádka, obsahující mimo jiné i volbu -B12 (například).
Ale bez update firmware vašeho USBasp se nepohnete z místa, už se s tím smiřte.
http://shannonstrutz.com/uncategorized/ ... l-studio-6
Napsal: 12 říj 2016, 09:46
od FHonza
Doporučoval bych to zkoušet mimo Atmel Studio, k AVRdude existuje grafická nadstavba (můžu Ti to někam nahrát). A pro začátek třeba zkoušet přečíst nastavení FUSE. Podívej se, jestli opravdu jumper JP1 na Tvém programátoru je tentýž jako na schématu na který jsem sem vkládal odkaz. Mám v programátoru firmware, který nepodporuje parametr B, ale přepnutím se vždy problém vyřeší.
Další věc, která mě ještě napadla. Některé programátory mají JP3, kterým se zapíná napájení procesoru z programátoru. Takže napájení na programovaném procesoru případně zkontroluj
Kdyby nic nepomohlo, tak připoj analyzátor/osciloskop alespoň na SCK a podívej se, jestli tam vůbec něco je.
Jinak pro ATMegu8 je max. hodnota krystalu 16MHz.
Napsal: 12 říj 2016, 11:31
od Mara88
já se tomu nebráním, opravdu:-)
Command: E:\AVRDUDE\avrdude.exe
Arguments: -p m32 -c usbasp -P usb -U flash:w:"$(ProjectDir)Debug\$(TargetName).hex":i
ted se dívám, že to je argument pro atmega32, tam ale žádná volba B není, mám teda použít argument pro atmega16
-c usbasp -p atmega16 -B12 -U flash:w:”$(ProjectDir)Debug\$(ItemFileName).hex”:i
nebo nějakej jinej?
jinak dal jsem schéma programátoru, jo JP3 mám, večer zkusím:-)
Napsal: 12 říj 2016, 12:28
od FHonza
Koukám na to schéma a "slow SCK" je u Tebe JP3. Takže zkus zapnout JP3 a ne JP1 (to zapnout, aby byl procesor napájen z programátoru).
Shrnutí Tvého programátoru:
JP1: řídí zda je programovaný procesor napájen z programátoru (v originále JP3)
JP2: možnost upgradovat firmware
JP3: snižuje frekvenci SCK když je "zapnut" ˇ(v originále JP1)
Napsal: 12 říj 2016, 12:44
od mtajovsky
Díval jsem se do zdrojáků avrdude. Hláška:
warning: cannot set sck period. please check for usbasp firmware update.
se generuje v rutině
usbasp.c@usbasp_spi_set_sck_period():
Kód: Vybrat vše
int nbytes = usbasp_transmit(pgm, 1, USBASP_FUNC_SETISPSCK, cmd, res, sizeof(res));
if ((nbytes != 1) | (res[0] != 0)) {
avrdude_message(MSG_INFO, "%s: warning: cannot set sck period. please check for usbasp firmware update.\n", progname);
return -1;
}
řádek 912 - v poslední (trunk) větvi
Pokud se hláška objeví i při absenci parametru -B, tak avrdude zřejmě v tomto případě nastavuje nějakou defaultní hodnotu. Vynechání parametru -B nás potom nezachrání. Nebo je taky možnost, že Atmel Studio ten parametr samo doplní. Vyzkoušet samotné avrdude, jak doporučil FHonza.
Viz
http://svn.savannah.nongnu.org/viewvc/?root=avrdude
Napsal: 12 říj 2016, 14:06
od Mara88
FHonza píše:Doporučoval bych to zkoušet mimo Atmel Studio, k AVRdude existuje grafická nadstavba (můžu Ti to někam nahrát). A pro začátek třeba zkoušet přečíst nastavení FUSE. Podívej se, jestli opravdu jumper JP1 na Tvém programátoru je tentýž jako na schématu na který jsem sem vkládal odkaz. Mám v programátoru firmware, který nepodporuje parametr B, ale přepnutím se vždy problém vyřeší.
můžu teda poprosit o tu grafickou nástavbu? přes
www.uschovna.cz či nějak jinak?nevím jak je to velké...
Napsal: 12 říj 2016, 15:23
od FHonza
AVRdude i s grafickou nadstavbou. Stačí někam rozbalit, netřeba instalovat. Funkční ve Win 7, Win 10 x86 i x64, vyzkoušeno. Předpokládám, že samotný driver pro USBasp máš nainstalovaný.
Určitě ale zkontroluj ty JP1 a JP3. JP3 propojen, JP1 nesmí být volný (označení dle Tvého programátoru, ne dle původního).