Stránka 1 z 1

ATtiny13 nekomunikuje přes ISP

Napsal: 31 srp 2014, 14:56
od jiriS
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

Napsal: 31 srp 2014, 16:16
od taz
špatně sis zapsal pojistky, zakázal si ISP

Napsal: 31 srp 2014, 16:32
od nekmil
S děličkou hodin jsem si sice ještě nehrál.
Ale nemělo by se v tomto případě v "pojistkách" CKDIV8 nastavit na "unprogrammed" viz datasheet sekce "System Clock Prescaler"

Napsal: 31 srp 2014, 16:51
od jiriS
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.

Napsal: 31 srp 2014, 20:34
od Zirafka
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 :-)

Napsal: 31 srp 2014, 22:21
od jiriS
Dík za tip, ještě jsem se k výrobě vysokonapěťového programátoru nepustil, ale v plánu je. Chtěl jsem hlavně vědět, jestli je má teorie správná.
Jirka

Napsal: 01 zář 2014, 05:56
od AB1
http://www.lancos.com/e2p/ponyprog2000.html

A 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.


V souboru Ponyprog2000.ini přidej řádek
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).

Napsal: 01 zář 2014, 08:30
od jiriS
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

Napsal: 01 zář 2014, 09:10
od AB1
přepne se avr do pomalého kmitočtu a ten zase nezvládá Ponyprog.
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.
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.

Napsal: 01 zář 2014, 23:38
od jiriS
Díky.