Beste mensen,
Ik heb een fading LED gemaakt via PWM in een ATmega8 met assembly. Erg simpel, natuurlijk. Het werkt dan ook prima met een normaal LED-je. Maar zodra ik een high-power LED (via een NFET) en hetzelfde doe, blijft de chip resetten volgens mij.
De fade-loop wordt op (schijnbaar) random momenten onderbroken. Ik heb al ontdekt dat de programmer dit doet of veroorzaakt (AVRIPS mk2). Zonder programmer aan de RESET werkt het namelijk prima. Ik heb al een pullup van 4k op de RESET.
Ik kan natuurlijk dit omzeilen door een knopje in de resetlijn te maken, maar misschien weet iemand hoe dit komt en kan ik het verhelpen!
Alvast bedankt voor het meehelpen!
Op 16 december 2010 23:35:33 schreef klein is fijn:
Dan kom je al vrij snel uit bij de voeding. Alles netjes opgebouwd?
De voeding zit inderdaad misschien wel op z'n randje. Ik heb deze zelf gemaakt, dus het zou inderdaad daarmee iets te maken kunnen hebben.
Ik zal morgen eens op school met een labvoeding een testje draaien. Bedankt iig voor de tip!
[Bericht gewijzigd door Babylon op (28%)]
Op 16 december 2010 23:37:23 schreef Technokiddy:
buffer elcotje plaatsen en dan nogmaals testen?
Al geprobeerd. Hielp niet. Zowel van RESET naar GND als tussen VCC en GND. Had ik inderdaad even in de eerste post moeten zetten, maaar bedankt voor het meedenken!
Als je 'm ook voed vanuit je programmer: d'r zitten grenzen aan de hoeveelheid stroom die zo'n ding kan leveren. Heb wel eens een halve dag zitten prutsen voor ik ontdekte dat je een stk500 kunt overbelasten met een inschakelpiek.
Voor zover ik weet kan deze programmer niet voeden, dus heb ik een externe voeding. Anders zou dat zeker het probleem kunnen zijn, want ik zou de stroom voor die LED niet uit de USB kunnen trekken. Maargoed, dat is het dus niet.
Denk dat het inderdaad de voeding is. Volgens mij heb ik hier ooit op een beunmanier een 1.5A begrenzer ingebouwd. En de LED trekt 1A, dus komt al in de buurt.
SparkyGSX
Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Heb je behalve een buffer ook een ontkoppelcondensator bij de controller geplaatst?
In situaties waar je wat dipjes op de voeding zou kunnen verwachten, zet ik zelf meestal een buffertje met een diode in serie; het buffer werkt dan alleen voor de controller, en gaat de rest van de schakeling niet voeden. Vooral als je een voeding hebt met een slecht load regulation, die dus traag reageert op een toename van de stroom, kan dat wel helpen. Daarbij zijn lange draden naar de voeding en snel schakelen een slechte combinatie; de inductie van die lijnen kan een dipje veroorzaken waar het reset circuit in je controller op reageert.
Je zou een weerstandje in serie met de gate kunnen opnemen; dan schakelt de MOSFET net iets minder lomp, en je belast de uitgang van de controller ook minder zwaar.
Ik zal morgen eens je tips proberen. THX!
Maar de buffer met diode zie ik niet helemaal voor me. Ik stelde me dit voor:
http://img251.imageshack.us/img251/948/buff.gif
Maar dan draait het IC nog maar op 4.3V en dat gaat denk ik niet werken.
Ik heb het vast fout.
Excuses voor de slechte paint 
Ik heb een labvoeding aangesloten en deze vertoont hetzelfde gedrag. Maar de spanning blijft inderdaad niet constant, dus waarschijnlijk zijn de plotselinge veranderingen in de stroom wel de oorzaak. Ik heb al iets met een bufferelco geprobeerd, maar nog zonder succes.
Heeft iemand specifieke tips/uitleg over hoe ik dit het best kan doen?
Er staat nu een 470uF elco over de voeding bij de chip. Maar deze voedt dan natuurlijk ook de LED. Dit moet ik zien te voorkomen.
[Bericht gewijzigd door Henry S. op (43%)]
Je zou de geregelde uitgangsspanning kunnen verhogen naar 5,7 V, en vervolgens toch de truuk met de diode toepassen.
Je kunt ook een gescheiden voeding (eigen spanningsstabilisatortje) voor de controller nemen. Dit kan dan een kleintje zijn.
Dat had ik ook bedacht, maar dan loopt er heel de tijd uiteindelijk een paar A door die diode. Het worden 4 LEDs. Beetje zinloos om dat vermogen te verstoken alleen omdat de programmer m'n circuit reset. Ik wil de lamp ook een beetje zuinig maken. Bovendien ligt de 5V voeding al ergens klaar in de schuur 
Ik heb een lowpass filter geprobeerd bij de PWM uitput. Dit hielp niet. Een spoel in serie met de led om de stroom te filteren hielp ook niet en verlaagde de lichtopbrengst.
Bedankt voor het meedenken. Maar moet toch op 1 of andere manier de programmer bufferen (want deze geeft de reset). Als het teveel moeite is bouw ik uiteraard gewoon een knop in de resetlijn die ik indruk bij programmeren.
Wil een FFT in ASM gaan programmeren, dus dat wordt heel vaak op het knopje drukken 
Je hebt ook niet per ongeluk een watchdog aanstaan, of een brown-out reset? Je moet een hoop gekke dingen doen om een controller te laten resetten als het resetcircuit in orde is.
Een weerstand van 4k7 naar de + en een condensator van 100nF naar de gnd (reset op het knooppunt) zou absoluut voldoende moeten zijn.
Zit er ook een signaal op een ingang van de controller? Soms kan het gebeuren als je een spanning op een ingang zet die hoger is dan de voedingsspanning de controller in latch-up gaat.
Heb je beschikking over een oscilloscoop? Dan kun je eens de voeding bekijken. Maar misschien zit er ook wel gewoon een foutje in je programma waardoor deze een stack-overflow / underflow krijgt waardoor de boel gek gaat doen.
[Bericht gewijzigd door mbbneon op (19%)]
Maar het is dus niet de chip die reset, het is de programmer die het doet. Als ik daarvan de resetlijn loshaal gaat alles perfect. Dat is het vreemde. Die condensator en weerstand had ik al geplaatst, maar hebben het dus ook niet verholpen.
Aangezien ik nog heel veel moet programmeren wil ik liever dat dit gewoon in-circuit werkt.
Maar het eigenlijk ook niet zo raar, want de voeding was niet erg stabiel. Hij bleef niet netjes rond 5V. Dit gebeurde echter ook bij een dure labvoeding. Dit komt vast door het snelle schakelen van de stroom.. Niet echt ideaal dus aangezien ik die voeding wel stabiel wil hebben liever ivm analog input. Of de lowpass voor de NFET dit stabieler hield weet ik niet (vergeten te meten, heb hier geen scope), maar ik denk van niet aangezien de reset bleef komen.
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Het is een raar verhaal.
Ik heb ooit iets dergelijks meegemaakt met een ATmega32. Die ging regelmatig in reset om onverkaarbare redenen.
Voeding was OK. Spanning op de RESET-pin bleef netjes 5V. Geen watchdog, geen programmeerfout te vinden.
Uiteindelijk de oplossing gevonden: de AVR draaide op een 16MHz-kristal, maar in low-swing mode. Fuse-bit omgezet naar full-swing mode, en het ding draait dag na dag zonder haperen.
Dus, als je ATmega8 op een kristal of een resonator draait: activeer het CKOPT-bit in de h-fuse. Voor lagere frequenties is het geen noodzaak, maar het kan geen kwaad.
Weer wat geleerd! Maar dat zal het probleem niet zijn. Hij draait (in ieder geval nu nog) op een lage frequentie. Ik dacht 4MHz. Maar uiteindelijk moet ie ook op 16MHz draaien, dus dan kan dit zeker meespelen. Bedankt!
Nu is het echter toch iets met de voeding en te snel geschakelde stromen, denk ik.
Maargoed, ik heb voor voorlopig maar besloten om een knop in de resetlijn van de programmer te maken en te hopen dat de chip zélf niet gaat resetten als ik meerdere LED's tegelijk ga PWM-en.. Dat zullen we van het weekend waarschijnlijk wel merken..
Ik hou jullie op de hoogte 
Wat je wel eens tegenkomt is een jumper die je van 'run' mode in 'programming' mode moet zetten. In jouw geval kun je dus een tuimelschakelaar gebruiken die de reset onderbreekt. Dan hoef je het knopje ook niet ingedrukt te houden.
Maar je hebt geen oscilloscoop? Ik ben wel benieuwd naar de voeding van die programmer en de reset lijn.
hoe zit die N-fet aangesloten en welk type is het?
de poort van een ATmega kan maar een kleine stroom leveren (ik dacht uit mijn hoofd iets van 20 mA)
een N-fet heeft een gate capaciteit: in het begin gaat er dus een idioot grote stroom lopen, omdat de laadstroom logaritmisch afneemt
wie weet trekt die gate capaciteit de Atmel wel onderuit als er teveel uitgangen simultaan bestuurd worden...
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
De voedingspinnen van de AVR zullen toch wel fatsoenlijk ontkoppeld zijn? En zelfs als die gate-capaciteit erg groot zou zijn, pakweg 1000pF, dan is dat nog maar 1% van de meest-gebruikte ontkoppelcondensator (100nF).
Ik heb ooit zoiets gehad met het pwm-en van een gloeilampje via een NFET. Bij een duty cycle van 1/255 blijft de gloeidraad natuurlijk koud en loopt er telkens heel even een idioot grote stroom. En de dip op voedingsspanning resette de PIC. Een strategisch geplaatst C'tje loste het probleem op.
@pros: als je teveel stroom trekt gaat de AVR intern deels op zijn plaat: heb dit zelf ooit ook eens meegamaakt (kwam toen niet door te grote capaciteit, maar gewoon te grote belasting)
't ding liep vast of resette idd. Weet niet meer exact. zaten overal keurige ontkoppel C's van 100 nf opelke VCC