ATtiny13 nekomunikuje přes ISP
Moderátor: Moderátoři
ATtiny13 nekomunikuje přes ISP
Zdravím, mám dotaz: naprogramoval jsem přes ISP prográmek, je funkční jak v simulátoru, tak na čipu. Potřeboval jsem ale změnit kmitočet hodin, ale už se nijak na čip nedostanu. Čip byl nový, v základním nastavení fuse bitů.
Součástí programu byla změna předděliče hodin z 8 (default) na 256 (CLKPR). Program funguje správně, podle vypočtených hodnot.
Předpokládám, že díky tomuto přeprogramování děliče už není schopen komunikovat čip s programátorem (PonyProg).
Uvažuju správně?
Díky za odpovědi.
Jirka
Součástí programu byla změna předděliče hodin z 8 (default) na 256 (CLKPR). Program funguje správně, podle vypočtených hodnot.
Předpokládám, že díky tomuto přeprogramování děliče už není schopen komunikovat čip s programátorem (PonyProg).
Uvažuju správně?
Díky za odpovědi.
Jirka
Problém je v tom, že jsem na pojistky ani nesáhl. Jen jsem nacpal program do tiny, po verifikaci se spustil a už to nejde. Protože jsem programově přepsal děličku hodin na dělení 256, oproti defaultnímu nastavení (9,6MHz a dělička 8 vychází na 1,2MHz) jsou hodiny na 37,5kHz. Takže nezvládá komunikaci.
Myslel jsem, že při resetu se nastaví opět dělení 8, jak se zdá, není tomu tak.
Díky za odpovědi.
Myslel jsem, že při resetu se nastaví opět dělení 8, jak se zdá, není tomu tak.
Díky za odpovědi.
Já v těchto případech používám takový udělátor:
http://www.zirafoviny.cz/modules/news/a ... storyid=14
nebo originálně tady
http://elm-chan.org/works/avrx/report_e.html#AVRXP
Je to velmi užitečná pomůcka
http://www.zirafoviny.cz/modules/news/a ... storyid=14
nebo originálně tady
http://elm-chan.org/works/avrx/report_e.html#AVRXP
Je to velmi užitečná pomůcka
http://www.lancos.com/e2p/ponyprog2000.html
SPIBusSpeed=ULTRASLOW
Při experimentování s CLKPR dávám na začátek programu delay 2-4 sec.
Během této doby stihnu spustit programátor (ještě než čip přejde na nižší kmitočet).
V souboru Ponyprog2000.ini přidej řádekA special note for AVR devices. The AVR need a valid system clock to be programmed via SPI and the max frequency of the SPI bus depends on this system clock. So if you changed the fuse (even accidentally) to use low clocks like 1MHz or 32.768KHz you must change the SPIBusSpeed=VERYSLOW or ULTRASLOW to access the AVR anymore. If you have to use such low clocks I suggest to program the flash and eeprom first, and at last program the security and fuse bits.
SPIBusSpeed=ULTRASLOW
Při experimentování s CLKPR dávám na začátek programu delay 2-4 sec.
Během této doby stihnu spustit programátor (ještě než čip přejde na nižší kmitočet).
Díky, takže než stačí začít komunikace, přepne se avr do pomalého kmitočtu a ten zase nezvládá Ponyprog.
To mě nenapadlo, jinak bych nejdřív změnil fuse na 4,6MHz a teprve potom nahrál program (ještě pmalejší běh).
Ale budu počítat s prodlevou na začátku, ještě jednou díky za tip.
Mám ještě jeden dotaz, pokud někdo máte zkušenosti. Pokud neošetřím na počátku programu (vektor RESET) hodnotu pracovního registru (např. r16),
po resetu (tlačítkem) je zachovaná původní hodnota. A tato hodnota se v registrech dokáže udržet i po vypnutí po dlouhou dobu, i když ne zcela přesná (4313, mega64) - i několik hodin.
Žil jsem v domění, že jsou hodnoty registrů i pracovní paměti vynulované právě signálem reset.
Jirka
To mě nenapadlo, jinak bych nejdřív změnil fuse na 4,6MHz a teprve potom nahrál program (ještě pmalejší běh).
Ale budu počítat s prodlevou na začátku, ještě jednou díky za tip.
Mám ještě jeden dotaz, pokud někdo máte zkušenosti. Pokud neošetřím na počátku programu (vektor RESET) hodnotu pracovního registru (např. r16),
po resetu (tlačítkem) je zachovaná původní hodnota. A tato hodnota se v registrech dokáže udržet i po vypnutí po dlouhou dobu, i když ne zcela přesná (4313, mega64) - i několik hodin.
Žil jsem v domění, že jsou hodnoty registrů i pracovní paměti vynulované právě signálem reset.
Jirka
On ho zvládne, ale čím je menší kmitočet oscilátoru v Avr, tím menší musí být v Ponyprogu nastavený kmitočet SPI.přepne se avr do pomalého kmitočtu a ten zase nezvládá Ponyprog.
S nastavením SPIBusSpeed=ULTRASLOW by měl Ponyprog komunikovat i s čipem který má frekvenci 32 kHz.
To byl smysl mého příspěvku.
Po vypnutí a zapnutí napájení se nastaví pracovní registry a RAM na náhodné hodnoty, IO registry na default hodnoty.