Založen: Nov 20, 2012 Příspěvky: 1453 Bydliště: Praha
Zaslal: po říjen 10 2016, 19:28 Předmět:
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 ?
Založen: Sep 19, 2007 Příspěvky: 3698 Bydliště: Praha
Zaslal: po říjen 10 2016, 23:50 Předmět:
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.
Založen: Sep 19, 2007 Příspěvky: 3698 Bydliště: Praha
Zaslal: út říjen 11 2016, 19:27 Předmět:
"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.)
Založen: Sep 30, 2016 Příspěvky: 38 Bydliště: Brno
Zaslal: st říjen 12 2016, 8:05 Předmět:
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
Založen: Sep 19, 2007 Příspěvky: 3698 Bydliště: Praha
Zaslal: st říjen 12 2016, 8:32 Předmět:
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.
Založen: Nov 20, 2012 Příspěvky: 1453 Bydliště: Praha
Zaslal: st říjen 12 2016, 8:46 Předmět:
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.
Založen: Sep 30, 2016 Příspěvky: 38 Bydliště: Brno
Zaslal: st říjen 12 2016, 10:31 Předmět:
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
Založen: Nov 20, 2012 Příspěvky: 1453 Bydliště: Praha
Zaslal: st říjen 12 2016, 11:28 Předmět:
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)
Založen: Sep 19, 2007 Příspěvky: 3698 Bydliště: Praha
Zaslal: st říjen 12 2016, 11:44 Předmět:
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:
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.
Založen: Sep 30, 2016 Příspěvky: 38 Bydliště: Brno
Zaslal: st říjen 12 2016, 13:06 Předmět:
FHonza napsal(a):
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é...
Založen: Nov 20, 2012 Příspěvky: 1453 Bydliště: Praha
Zaslal: st říjen 12 2016, 14:23 Předmět:
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).
Časy uváděny v GMT + 1 hodina Jdi na stránku Předchozí1, 2, 3, 4, 5Další
Strana 2 z 5
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.