eey,

Ik heb een programmatje gemaakt voor een ATtiny15.
dat programma heeft al eerder gewerkt op een mega128.
Nu heb ik nog nooit iets anders geprogrammeerd dan een M128, dus daar gaat waarschijnlijk wat fout.
Ik heb een heel simpel test programmatje gemaakt voor de Tiny15 waarmee ik op z'n minst toch de uitgangen moet zien pulsen op m'n scoop.


.NOLIST
.include "tn15def.inc"
.LIST
.CSEG
.ORG 0
RJMP RESET 
RESET:
ldi R16, 0b00111111
out DDRB, R16
loop:
ldi R16, 0b00000000
out PORTB, R16
ldi R16, 0b00111111
out PORTB, R16
rjmp loop

Ik programmeer in assembly met AVR studio 4.12 en een myAVR smart usb programmer.
als ik via avr studio de AVRPROG laad en op program druk dan rond hij dat af en toe succesvol af en soms geeft hij een error (Addres: 0x0000, Expected: 0x00ff, Received: 0x001f)
Ook al zegt hij dat hij succesvol geprogrammerd is komt er geen enkel signaal uit de controller.
bij de fuse bits kan ik niks aan de instellingen veranderen behalve mode1, mode2 en mode3, deze staat standaard ingesteld op mode3.
Kan iemand mij uitleggen wat ik fout doe?
http://img77.imageshack.us/img77/9364/fusebitslv3.jpg

Tjeerd

Dat zinnetje "verify and programming disabled" zegt dat niet toevallig iets over de status van de lockbits?

als ik op chip erase drukt komt er elke keer een random instelling van de lock en fuse bits tevoorschijn, dan weer mode1 en brown out op 4V en dan weer mode2 en brown out uitgeschakeld. geen touw aan vast te knopen.
Ook als ik op read druk leest hij elke keer een andere instelling uit de chip.

[Bericht gewijzigd door neoblader op ]

En als je die dingen nou eerst eens goed zet en dan op "write" klikt, en daarna je programma erin schuift?

Als je na een erase een random effect hebt dan is er duidelijk iets mis met de programmer hardware.
Heb je niet ergens een los contact in je leidingen of connectoren zitten?

Morgen even alles doormeten, je hoort het nog.

De verbindingen zijn allemaal in orde, ik ga het eens met ponyprog proberen en een parallere programmer.
Welke lock's en fuse's moet ik nu aanzetten?
Ik neem aan dat standaard al de interne clock is ingeschakeld omdat er geen extern kristal mogelijk is is.
CKSEL1 en CKSEL2 zijn volgens de datasheet alleen voor de opstartmodus.
BODEN en BODLEVEL zijn voor de brownout detectie an te zetten en te kiezen op welk niveau deze moet zitten.
LOCK1 en LOCK2 is om dat ding op slot te zetten.
Klopt alles wat ik zeg?
http://img487.imageshack.us/img487/9349/fuselockbitsrb7.jpg

En nog een klein extra vraagje, als je lock1 en lock2 aan zet kan je toch nog wel de controller wissen zodat je opnieuw kan programmeren?

heb nu een standaard controller uitgelezen en daar staat BODEN aan en CKSEL1+2.
met diezelfde instellingen heb ik het volgende programma in de controller geschoten.


.NOLIST
.include "tn15def.inc"
.LIST
.CSEG
.ORG 0
RJMP RESET 
RESET:
ldi R16, 0b00111111
out DDRB, R16
loop:
ldi R16, 0b00000000
out PORTB, R16
ldi R16, 0b00111111
out PORTB, R16
rjmp loop

Programmeren gaat goed.
Verifieren gaat goed.
de controller doet helemaal niks op de uitgangen.
Mijn ideeën zijn op, weet iemand wat ik fout doe.

Tjeerd

Nou ken ik de Tiny15 niet, maar is dat geen 8-poter? Zit de reset dan niet aan een I/O poot? (nou ja, je snapt wel waar ik heen wil... staat het ding niet zichzelf te resetten...)

Het is inderdaad een 8poter.
datasheet: http://atmel.com/dyn/resources/prod_documents/doc1187.pdf
de reset zit ook vast aan ADC0/PB5
Ik heb het programma aangepast dat alleen PB4 wordt aangestuurd, nog gebeurt er weinig.

Tjeerd

[Bericht gewijzigd door neoblader op ]

Op 2 juni 2007 21:19:57 schreef Marco69:
Zit de reset dan niet aan een I/O poot? (nou ja, je snapt wel waar ik heen wil... staat het ding niet zichzelf te resetten...)

Dat is toch bij vrijwel alle AVR's zo, niet alleen de 8-poters. Maar die i/o poort is pas actief wanneer je de reset pin uitschakelt met een fuse. Standaard ISP programmeren is dan ook niet meer mogelijk.

Had misschien iets duidelijker moeten zijn: port b is vrijwel overal 'heel', behalve bij de echte kleintjes.
Zelf nooit de behoefte gehad voor dit soort trucen: pak dan wel een iets grotere AVR.
Maar goed, dat heeft hier dus niets mee te maken...

Overigens: Als het ding ook niet altijd goed te programmeren is / was... Is je voeding 'goed'? (als in : fatsoenlijke spanning, ontkoppeld; BOD doet niet vervelend?)
Andere open deur: hangt de programmer er aan en houdt die het spul in reset? (ken dat ding niet; lijkt me ook niet handig, maar ja...)

voeding is een 9V stekkeradapter met een 7805 erachter, je juiste condensator bij zowel de voeding als de controller.
Ook nadat ik de programmer heb losgekoppeld blijft de controller niks doen.
Ik a het eens met een andere controller proberen, een 90s23433.
Kan nog wel iemand bevestigen dat mijn programma zou moeten werken?

Thanks, Tjeerd

Ik zie geen reden waarom dat niet zou moeten werken.
Tenzij er in de Tiny15 smerige trucs zitten, maar dat is niet gebruikelijk bij Atmel.
Wat me alleen niet aan staat zijn de 'random results' die je had (hebt). Doet toch vermoeden dat er met programmeren iets niet wil.
Nog even een andere open deur: Je meet toch wel met een scoop op de uitgangen he? Dat je niet een knipperende LED verwacht ofzo... :)

Programmer los gekoppeld? reset wel goed hoog.
Hoe meet je het resultaat, op de uitgang pen met multimeter 3/5 deel voedingspanning en met scoop blokspanning (3/5 hoog en 2/5 laag.

een ettiny45 die niet wil lopen: das toch typisch hij heeft maar liefst 8 poten :D

flauwe klets genoeg, maar kun je niet iemand anders zoeken met aan andere programmer, als je een defecte uC hebt zoek je je helemaal lens...

Het probleem is opgelost, was een slecht aangeknepen contact in zo'n 10-voudige connector van de ISP.
Programma loopt nu zoals het hoor1.
Allen bedankt voor de hulp!

Dus toch een programmeer probleempje... Fijn dat je eruit bent.