FotonMag fórum _ Bastlírna _ Programování ATtiny13a

: Trombley 1.4.2016 10:53

Ahoj. Chci si udělat blikačku s dvěma LED s upraveným driverem Nanjg AK-47A (čip attiny13A). PCB jsem upravil tak, aby každá LED měla jeden AMC7135, a druhá LED byla ovládaná pinem 5 (PB0). Podle proměření je to zapojeno správně.



Nějak ale nemůžu přimět tu druhou LED k fungování. První na PB1 funguje správně. Přičítám to špatnému programu, jsem v tom začátečník (i když s jednou LED už jsem si hezký program do svítilny udělal smile.gif). Zkoušel jsem kde co, ale prostě to nejde.
Pochopil jsem, že je potřeba nastavit výstupy DDRB = 0b00000011 (zkoušel jsem i samotný 0b00000001) a místo OCR0B používat OCR0A. Teď se to pro jednoduhost snažím přepsat z http://budgetlightforum.com/node/28441v od DrJones.
Přpsal jsem DDRB na 1 (měla by fungovat jen PB0) a OCR0B přepsal na OCR0A. TCCR0A/B jsem nechal jak jsou. Nefunguje. Neví nekdo prosím co dělám špatně?

EDIT: už se mi to podařilo, bylo třeba jen jít více do hloubky, pročíst datasheet a pochopit význam bitů TCCR0A. Takže to v něm chtělo jen povolit výstup OCR0A (TCCR0A=0b10100001)

: Trombley 11.7.2016 18:04

Řeším opět menší problém- po nějaké době mi přestal fungovat můj kód na Nanjg driveru. Nahrání kódu funguje bez upozornění na jakoukoliv chybu, ale svítilna se chová jinak, než by měla. Používám vícenásobný klik s hlídáním doby vypnutí "noinit") a skupiny režimů a nějak mi to zlobí.
Mám podezření na chybu samotného USBasp, protože nahrávám stále na stejný typ driveru Nanjg 101-AK-A1 a dříve vše fungovalo naprosto bez problému. Před vyskytnutím chyby jsem nahrával na jiný, vlastní obvod a občas jsem zapomněl po nahrání odpojit kleště.

Teď otázka- přečetl jsem flash paměť z čipu a porovnal ji s .hex které nahrávám- nejsou stejné. Je to normální stav?

EDIT: Už dříve se mi podařilo nahrát jeden Nanjg 105D, ale 101-AK-A1 jsem zkoušel tři, přičemž u jedné jsem odpájel všechny součástky, zkontroloval DPS, vyměnil attiny za úplně nový a pokaždé to bylo bez úspěchu. Teď jsem opět zkusil 105D a opět úspěch, tak jsem obětoval další 101 a... tahle funguje. Ty "nefunkční" se mi stále nedaří zprovoznit. Takže jsem z toho jelen a vůbec netuším, v čem byl problém. No budu si hrát, třeba rozeběhnu i ty kryply. Nebo narazím na další nefunkční biggrin.gif

: sirpetr 11.7.2016 18:55

USBasp nepoužívám, já mám AVR Dragon, ale předpokládám, že by programovaná a přečtená paměť měla být stejná. Doporučuju snížit rychlost při programování, je možné že čip nestíhá správně program přijmout. Zároveň bych i zkontroloval fuses, jestli tam třeba není DIV8 (osminásobné zpomalení kmitočtu).

: Benik3 11.7.2016 20:11

Zkontroluj fuses (pěkný http://www.engbedded.com/fusecalc/, ale bacha na správné nastavení. Dá se v tom třeba vypnout programování přes sériové rozhraní SPI biggrin.gif)
Sniž rychlost programování jak zmínil Sirpetr a pokud máš možnost druhého programátoru (alespoň na zapůjčení) doporučuji aktualizovat firmware v tom USBasp (z nějakého důvodu číňani stále rádi používají zastaralou verzi, která si třeba neumí dohodnout rychlost programování s MCU).
http://www.fischl.de/usbasp/

P.S. programátor lze udělat i přímo z Arduina smile.gif http://shannonstrutz.com/uncategorized/updating-usbasp-firmware-with-arduino
P.S.2: pěkná grafická nástavba nad avrdude je https://blog.adafruit.com/2013/02/19/avrdudess-a-gui-for-avrdude/ smile.gif

EDIT: Našel jsem dokonce pokračování orginálního firmwaru, kde jsou opraveny ještě malé chybky
https://github.com/bperrybap/usbasp/tree/1.06-alpha

Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)