ATtiny13 nekomunikuje přes ISP

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
jiriS
Příspěvky: 609
Registrován: 14 led 2014, 01:00
Bydliště: Ašsko
Kontaktovat uživatele:

ATtiny13 nekomunikuje přes ISP

#1 Příspěvek 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

Uživatelský avatar
taz
Příspěvky: 312
Registrován: 16 kvě 2007, 02:00
Bydliště: Ostrava

#2 Příspěvek od taz »

špatně sis zapsal pojistky, zakázal si ISP

Uživatelský avatar
nekmil
Příspěvky: 780
Registrován: 06 bře 2005, 01:00
Bydliště: Havířov

#3 Příspěvek 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"

Uživatelský avatar
jiriS
Příspěvky: 609
Registrován: 14 led 2014, 01:00
Bydliště: Ašsko
Kontaktovat uživatele:

#4 Příspěvek 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.

Zirafka
Příspěvky: 819
Registrován: 20 srp 2006, 02:00

#5 Příspěvek 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 :-)

Uživatelský avatar
jiriS
Příspěvky: 609
Registrován: 14 led 2014, 01:00
Bydliště: Ašsko
Kontaktovat uživatele:

#6 Příspěvek 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

Uživatelský avatar
AB1
Příspěvky: 312
Registrován: 23 lis 2009, 01:00

#7 Příspěvek 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).

Uživatelský avatar
jiriS
Příspěvky: 609
Registrován: 14 led 2014, 01:00
Bydliště: Ašsko
Kontaktovat uživatele:

#8 Příspěvek 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

Uživatelský avatar
AB1
Příspěvky: 312
Registrován: 23 lis 2009, 01:00

#9 Příspěvek 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.

Uživatelský avatar
jiriS
Příspěvky: 609
Registrován: 14 led 2014, 01:00
Bydliště: Ašsko
Kontaktovat uživatele:

#10 Příspěvek od jiriS »

Díky.

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“