Dag,
De internet klok frequentie van mijn mcu (atmega324) is 8MHz en omdat de fuse CKdiv8 aan stond is het uiteindelijk dus 1MHz. Zo heb ik het ook gedefinieerd #define F_CPU 1000000UL. Nu dacht ik als ik de CKdiv8 uitzet gaat het programma dan ook 8x zo langzaam lopen, dit had ik uitgeprobeerd en dat was het geval. Alleen nu kan ik hem niet meer programmeren denk dat het met de isp frequentie te maken heeft dat die nu te hoog is (omdat er niet meer door 8 wordt gedeeld), deze kan ik niet meer lager zetten omdat ik hem niet meer kan programmeren. Heeft iemand hier een oplossing voor?
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Als je CKDIV8 uitschakelt gaat de AVR op 8MHz draaien, en moet je hem zeker kunnen programmeren. Ook als het ding op 20MHz draait, kan je hem --zonder speciale voorzorgen-- gewoon programmeren.
Heb je enkel iets aan de Fuse High Byte veranderd?
ik denk dat je de interne klok bedoelt? maar als je clock divide 8 uitzet zou hij nou juist 8 keer sneller moeten lopen omdat hij dan op 8mhz loopt ipv 1mhz. en de isp klok kan je heel makkelijk instellen in avr studio, wat voor software gebruik je en welke versie?
Op 20 september 2011 21:14:01 schreef pros:Heb je enkel iets aan de Fuse High Byte veranderd?
Nou, ook de brownout detectie op 4.3V gezet, maar dit lijkt mij niet een probleem?
edit: ik gebruik avr studio 4.18, had 4.19 maar daar kreeg ik allemaal problemen mee.
Bart Hiddink
Bart Hiddink is Ideetron; electronics and projects, http://www.ideetron.nl. LoRaWAN Nutcase.
Bij Microchip kun je ze soms niet meer (her)programmeren als je de code protection aan hebt staan en je voedingsspanning is minder dan 4V.
Het is type afhankelijk.
De 16F886 heeft hier last van, de 16F690 niet.
Misschien heeft Atmel ook iets dergelijks?
Kun je de fuses nog wel inlezen en herschrijven? als dit niet het geval is zou het kunnen dat je de clock source ook veranderd hebt, en dan kan het moeilijk worden om hem dan nog te programmeren.
is er op alle data pinnen van de isp niet een directe verbinding naar de gnd of vcc? hierdoor kan hij ook niet geprogrammeerd worden.
ik kan de fuses ook niet meer uitlezen/schrijven. Ik gebruik dezelfde "bedrading" nu als dat ik eerste gebruikte, dit werkte goed.
Op 20 september 2011 21:26:42 schreef Jeffreynlnl:
is er op alle data pinnen van de isp niet een directe verbinding naar de gnd of vcc? hierdoor kan hij ook niet geprogrammeerd worden.
Ik zal morgen eens meten, dus alle data verbindingen moeten juist wel een verbinding hebben met vcc of gnd? Voor het correct programmeren? Is dit wanneer de programmer wel of niet is ingeschakelt? Ik gebruik de avr dragon.
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
@Emielzij: ik bedoelde de Fuse Low Byte. Daar is BIT7 CKDIV8. En daar stel je ook in, op welke klok de AVR moet draaien, hetgeen meermaals voor verwarring zorgt.
Het BODLEVEL stel je bij de ATmega324 in bij de Extended Fuse Byte. Daar kan je weinig mee mispeuteren.
Werkt de AVR nog? Dan moet je hem IMHO ook kunnen programmeren.
dus alle data verbindingen moeten juist wel een verbinding hebben met vcc of gnd? Voor het correct programmeren?
Welnee, je hebt enkel de programmeerpinnen nodig (en de voedingspinnen). Alle overige pinnen mogen zweven.
[Bericht gewijzigd door pros op (27%)]
@emielzij: Ik bedoelde dat op de data pinnen van de isp op de atmega geen ingangen naar de gnd of vcc kortgesloten mogen zijn, hierdoor kan de programmer de data pinnen van isp niet meer hoog of laag maken om de chip te programmeren, maar als je verder niks veranderd hebt in de 'bedrading' van en naar de chip zal dit niet het geval zijn.
Ik ben bang dat je de chip niet meer kunt programmeren met isp, miss HVP (zelf nog nooit gebruikt.)
edit: als hij het programma nog draait zou je hem iid zoals pros al zij nog wel moeten kunnen programmeren.
[Bericht gewijzigd door Jeffreynlnl op (11%)]
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Ik snap niet waarom niemand hierover begint:
Het meest voorkomende probleem is dat je de clock instelling hebt verandert zodat ie niet meer werkt.
Dat kan op twee manieren. Je kunt hem langzamer hebben gezet. De ICSP clock MOET minimaal 4x langzamer zijn dan je systeem clock. had je de ICSP clock op 1MHz, en liep je processor op 8MHz, dan werkt het niet meer als je nu de processor op 1MHz hebt ingesteld.
Aangezien je rapporteert dat ie inderdaad langzamer is gaan draaien, zou dit wel eens het geval kunnen zijn.
Je moet dan in je programmeer-ding instellen dat ie veel langzamer moet werken. Doe je 100x langzamer, dan weet je tenminste zeker dat het gaat werken.
De andere manier waarop het niet meer werkt, maar dat verwacht ik bij jou niet, is als iemand de clock op "extern" heeft ingesteld (onbedoeld). Dan werkt het niet totdat je echt een (voldoende snelle) externe clock aanlevert.
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
als iemand de clock op "extern" heeft ingesteld
Teneinde CO wat ludieker te maken, en --met een beetje geluk-- er wat geld aan te verdienen, zouden we weddingschappen voor zulke terugkerende problemen kunnen afsluiten.
Ik zet alvast een halve krat virtuele WTT op "externe klok"... 
Als ik probeer te connecten blijft er eerste een hele tijd "setting device parameter.." staan en na een tijdje komt er "Failed" achter te staan ook krijg ik een ISP fout melding met tips hoe je het kan verhelpen met onder andere dat de frequentie van de isp 1/4 of minder moet zijn van de klokfrequentie. In het tabblad fuses staat wel "Ext. Crystal Osc. 8.0- MHz; Start-up time: 16K CK + 65 ms" ( wat betekend dat 16 CK eigenlijk?) ik weet niet of dit de goeie fuses zijn omdat ik niet weet of hij deze heeft uitgelezen, ik denk het niet.
Ik kan nog steeds niet de ISP program frequentie aanpassen wat het probleem waarschijnlijk zou verhelpen, ik krijg dan de melding "Getting ISP frequency parameters... FAILED!".
Ik heb hier wel ex kristallen liggen, welke kan ik het best gebruiken? Juist een met een hele hoge frequentie zodat de (vaste) isp frequentie lager 1/4 van het ex kristal wordt?
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Doet de AVR zijn werk nog? Dat is geen terloopse vraag, het is zoiets als je polsslag meten, om na te gaan of je nog in leven bent.
Ik weet niet of hij het nog doet, heb hem ook geprobeerd te erasen, dus misschien is hij ook wel leeg. Is er nog hoop of moet ik hem tot dood verklaren?...is wel zonde
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
De meest-voorkomende fout bestaat er in, alle CKSEL-bits op 0 te zetten. De AVR verwacht dan een extern kloksignaal (géén extern kristal!) op zijn XTAL1-pin. De frequentie is niet zo belangrijk. Alles tussen 1MHz en 20MHz is bruikbaar.
Hoe je dat kloksignaal genereert, hang af van hetgeen je ter beschikking hebt. Een functiegenerator is het eenvoudigst, Maar met een zelfbouw-oscillator kan het ook.
Door de fuses fout in te stellen maak je een AVR nooit dood. In het ergste geval moet er een HV-programmer aan te pas komen, indien je de RESET-pin kan uitschakelen via ISP. Dat is bij de ATmega324 niet het geval, ga dus niet wanhopen...
ik heb al een aantal keer iets fout gedaan in atmega's waarvan ik geen idee had hoe ik het moest fixen.
na ff googlen kwam ik bij de fusefix:http://www.microcontrollerprog.com/fuseprog.html
kost wel 25 euro en je moet er nog een 13v+ voeding bij zoeken.
hij reset je atmega's/ attiny's naar de factory instellingen. Zelfs als je hem locked kan hij em resetten, gooit dan wel alle code er ook uit.
heeft mij al een aantal atmega's bespaard die ik anders gelock weg had kunnen gooien.
Er zijn vast nog meer(goedkopere/beter) oplossingen, maar dit is er in ieder geval 1.
gr Jeroen
hadv
Just find out what you like and let it kill you
Ik ben geen AVR deskundige, maar ik herinner mij dat er in de jongste HG van Elektor een zgn 'Deblokkeringsprobe voor AVR uC' stond.
Opgezocht, pagina 101/102. http://www.elektor.nl/artikelen-als-pdf/2011/juli-047-augustus/deblokk…
Op 20 september 2011 22:38:45 schreef pros:
Door de fuses fout in te stellen maak je een AVR nooit dood. In het ergste geval moet er een HV-programmer aan te pas komen, indien je de RESET-pin kan uitschakelen via ISP. Dat is bij de ATmega324 niet het geval, ga dus niet wanhopen...
De fuses voor low-frequency crystal instellen is nog wel een leuke. Wel eens waar niet dood, maar zonder horlogekristal of HVPP krijg je hem niet aan de praat; hij reageert niet op een extern kloksignaal uit bv. een functiegenerator zoals hij bij alle andere CKSEL instellingen wel doet.
Op 21 september 2011 00:01:15 schreef jeroenk50:
na ff googlen kwam ik bij de fusefix:http://www.microcontrollerprog.com/fuseprog.html
Dit lijkt me wel wat, wat is de ingangsspanning? hoger dan 13.5V? hoeveel hoger mag er dan op? Of moet er precies 13.5V op?
Ze hebben het over verschillende "modes" hoe kan ik deze dan zetten aangezien ik nergens iets zie zitten wat lijkt op een jumper of iets dergelijks.
En hoe weet ik in welke socket hij moet? In dit geval de atmega324? Kijken naar de pinout van de microcontrollers in die lijsten en dan hem in de socket doen waarbij de pinout hetzelfde is?
edit: Het is me gelukt, vraag me niet hoe. Ik heb eerst een andere uc gepakt kijken of die het wel gewoon deed een van het zelfde type(ATmega324). Deze deed het gewoon, toen heb ik weer die andere geprobeerd en hij deed het in eens. Het programma werd echt veel te snel uitgevoerd, maar na het inschakelen van de CKDIV8 fuse werkte alles weer correct. Kan iemand dit verklaren? Toch lijkt me zo'n fuse reset programmer niet verkeerd, kan iemand me daar nog verder mee helpen? die vragen die hier boven staan?
Als ik bijvoorbeeld een extern 16MHz kristal wil gebruiken bij deze uc welke SUT_CKSEL stetting moet ik dan gebruiken? Eentje met een lange opstart tijd (65 ms) maar 16MHz staat er niet tussen wel 16K CK wat betekend dit? maar er zijn meerdere met 16K CK, het verschil zit hem dan in de opstarttijd maar ook in het frequentie bereik bv. .4 -.4 MHz.
Alvast bedankt!
[Bericht gewijzigd door Emielzij op (40%)]
buckfast_beekeeper
Van Lambiek wordt goede geuze gemaakt.
Hij is al een aantal malen voorbij gekomen de fusecalculator.
Kies eerst de juiste AVR. 16MHz is duidelijk boven 8MHz. Dan kies je die optie. Ik gebruik meestal de langste opstarttijd. Daar heb ik nog geen problemen mee gehad. Onderaan zie je dan wat je in de meeste programma's moet aanvinken/uitvinken. Je ziet onderaan de high, low en extended waarde, die je vaak rechtstreeks kan invoeren in je programmeer software.
Op de website van de fusefix staan de ondersteunde AVR inclusief de socket waar ze in moeten. Voor de ATmega324 is dat socket 1, die waar de kleinere in staat.
13V5 is nodig omdat er een 78L12 opstaat. Die moet voldoende spanning krijgen om zijn uitgangsspanning te kunnen handhaven. 15V is ook geen ramp. De datasheet van de 78L05 geeft 14V5 op als minimale spanning en 27 als max.
Ik heb het bordje ook liggen. Nog niet nodig gehad. Maar zeg nooit nooit.
EDIT: als je iets verder naar beneden scrolt, zie je ook een ATtiny reset bordje. De eerste ondersteund maar een paar ATtiny. De ATtiny repair ondersteund de kleinere.
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Als je een 16MHz-kristal wil gebruiken, zet dan de Low Fuse Byte op 0xE7.
Wat CKDIV8 betreft: je kan ook softwarematig de systeemklok aanpassen. Daarvoor heeft de ATmega324 het CLKPR-register. Je moet dan wel eerst het CLKPCE-bit van dit register hoog maken, en onmiddelijk daarna het gewenste deeltal naar hetzelfde register schrijven.
Zo, dus:
int main(void)
{
CLKPR = (1 << CLKPCE); // Eerst het CLKPCE-bit hoog maken
CLKPR = 0; // Onmiddelijk daarna het gewenste deeltal opgeven
// Enz...
In plaats van de '0' kan je maximaal 0x08 opgeven. De systeemklok wordt dan door 256 gedeeld.
Het CKDIV8-bit in de Fuse Low Byte heeft hierbij geen enkele invloed.
En als je programma te snel loopt, kan je nog steeds delay's inbouwen of een timer gebruiken...
Op 21 september 2011 00:01:15 schreef jeroenk50:
na ff googlen kwam ik bij de fusefix:http://www.microcontrollerprog.com/fuseprog.html
kost wel 25 euro en je moet er nog een 13v+ voeding bij zoeken.
hij reset je atmega's/ attiny's naar de factory instellingen. Zelfs als je hem locked kan hij em resetten, gooit dan wel alle code er ook uit.
heeft mij al een aantal atmega's bespaard die ik anders gelock weg had kunnen gooien.
Inderdaad, ideaal ding!
Toen ik met een Tiny2313 bezig was is het ook enkele malen mis gegaan... dankzij dit ding (ik kocht het op ebay.com voor amper 15 euro incl. verzending) wist ik de chip iedere keer weer bruikbaar te krijgen.
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Ligt je AVR nog steeds op apegapen?
Misschien heb je hier wat aan.
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Als je een optie kan aanvinken als "Ext. Crystal Osc. 8.0- Mhz..." is dat onzin. Je kan de fuses helemaal niet instellen op een externe kristal-oscillator!
Ook die opmerking is bagger natuurlijk, want je kan wel degelijk de fuses programmeren voor een externe XTAL OSC (als je die hebt).
De spraakverwarring ontstaat door het woordje "Crystal". Maar er zijn twee mogelijkheden: Externe clock (maakt niet uit waar die vandaan komt) of een "externe xtal oscillator" in de volksmond het xtal osc blokje genoemd.
Dus eigenlijk hoort er in het menu te staan:
"Ext. Clock 8.0- Mhz..."
Dan vallen er minder mensen in die valkuil.
Wie over een functiegenerator beschikt, is er snel van af. Stel die in op een blokgolf van 8MHz, verbind dat met de XTAL1-pin van de AVR, en zet vervolgens de fuses naar wens.
Dit is een beetje linke soep want je moet er voor zorgen dat je we een DC offset van 1/2 VPP in je blok erbij kunt zetten anders is je avr zo naar de filistijnen door een negatieve spanning die de meeste functie generators afleveren. Maar die opmerking staat er niet bij! Misschien voor de meeste voor de hand liggend, maar als iemand de pagina moet gebruiken om zijn avr weer tot leven te wekken mag je niet verwachten dat ie daar aan denkt.