Hey CO'ers,...

Als ik mijn ATmega16 geprogrammeerd heb en ik hem vervolgens test door via de schakelaars de leds aan te sturen doet de ATmega16 precies wat ik beschreven heb.
Maar als ik hem er vervolgens uithaal doet hij niet meer wat ik geprogrammeerd heb.
Waarschijnlijk sluit ik een aantal essentiele pinnen niet aan waardoor hij het niet doet.

-ik sluit de vcc en avcc aan
-de GND
-ik gebruik een extern kristal
-en de reset heb ik met een weerstand naar de vcc
-de uitgangen B0 t/m b7 heb ik via een weerstand en een led naar de GND

kent iemand dit probleem of heeft iemand hier een oplossing voor, hoor ik dat graag.

dennis

Heb je de ATmega ook geconfigureerd voor gebruik met een extern kristal? Misschien draait 'ie op de STK500 wel vanaf een externe klok op de STK500, maar staat in de config de instelling voor kristalgebruik uit.

Dat zou best wel eens kunnen. Ga ik meteen even naar kijken. De atmel draait op dat Bord natuurlijk met een interne clockpuls van de STK500.

Tnx alvast.

Met configureren van het kristal bedoel je dan de clock die onder de TAB Chip staat? Of moet het gebruik van een extern kristal ergens anders ingesteld worden?

Welke programmeersoftware gebruik je?

Ik gebruik Code Vision AVR als programmeer programma.

Kun je ff een screenshot maken van dat venster?
Welke frequentie heeft je externe kristal?

[Bericht gewijzigd door MNM(tm) op ]

Ik gebruik een 3.6864 Kristal

http://expand.xs4all.nl/uploadarchief/download.do?file=sreenshot.PNG

Nope, dat is niet wat ik bedoel.
Je moet tegen de ATmega16 zeggen wat voor type clock source je gebruikt. Daar zijn een aantal configuratie-registers voor. Check de datahseet van de ATmega16 op pagina 23 bij 'clock sources' hoe je het ding goed moet instellen.

Heb je er rekening mee gehouden dat het STKbordje alles inverteerd ?
Bij een 0 op de uitgang gaat er dus een ledje branden. Hetzelfde gelt ook voor de schakelaars hoewel ik dat niet zeker weet.

Heb ik ook een tijdje mee ziten stoeien

Oww okee,... ik had er al wat over gelezen. Maar worden die schakelaars ook geinverteerd? Dus als ik goed begrijp, denk ik dat ik 5 volt op de ingang zet, komt er in werkelijkheid 0 volt op te staan?

Heb je een oscilloscoop? Dan kun je ff kijken of de kristal-oscillator wel loopt als je de ATmega16 op je eigen bordje hebt zitten. Weet je meteen of 't aan de instellingen voor de clock source ligt of niet. ;)

Denk dat ik gevonden heb waar de externe kristal ingesteld moet worden

http://expand.xs4all.nl/uploadarchief/download.do?file=screenshot1.PNG

Ik denk dat die vinkjes bij de CKSEL 1t/m3 aangevinkt moet worden. Ik hoor graag jullie mening

LET OP!!! Door een vinkje aan te zetten, maak je de naaststaande vergelijking actief. Een vinkje aanzetten voor bijv. "CSEL1=0" heeft dus als resultaat dat het CSEL1 bitje juist op 0 wordt gezet! Als je het vinkje uit laat, wordt dat bit op 1 gezet.

Volgens de datasheet moet je CSEL3..0 als volgt instellen als je een extern kristal gebruikt: 1111. Dus alle vinkjes voor CSEL0 t/m CSEL3 moeten dus uit.

Op 30 juni 2005 17:22:51 schreef Rene87:
Heb je er rekening mee gehouden dat het STKbordje alles inverteerd ?
Bij een 0 op de uitgang gaat er dus een ledje branden. Hetzelfde gelt ook voor de schakelaars hoewel ik dat niet zeker weet.

Heb ik ook een tijdje mee ziten stoeien

Lijkt me nogal onwaarschijnlijk. Een 0 op een uitgang wordt veel logischer geassociëerd met een gedoofd LEDje en een 1 met een brandend LEDje. Het kan wel zijn dat de echte uitgangen van de ATmega eerst nog door een buffer-IC gaan die het signaal inverteert, maar dan komt het altijd weer goed door nogmaals een inversie door de driver-transistor die de LED aanstuurt.

Op 1 juli 2005 12:18:42 schreef MNM(tm):Lijkt me nogal onwaarschijnlijk. Een 0 op een uitgang wordt veel logischer geassociëerd met een gedoofd LEDje en een 1 met een brandend LEDje. Het kan wel zijn dat de echte uitgangen van de ATmega eerst nog door een buffer-IC gaan die het signaal inverteert, maar dan komt het altijd weer goed door nogmaals een inversie door de driver-transistor die de LED aanstuurt.

En toch is het zo, voor school heb een ATmega8 geprogrammeerd. Programma werkte perfect op het STKbordje tot we het op een breadbordje teste. Toen bleek toch echt dat alles geinverteerd was.

Hoe had je de LED's op het breadbordje dan aangestuurd?

uitgang -> weerstand -> led -> GND

simpeler kan niet

Ja zo heb ik dat dus ook gedaan. Werkt perfect alleen,... doet hij nog niet wat ik wil.

Lees jij ook de adc ingangen in rene?

Want ik lees zeg maar een waarde in op de adc ingang en als die boven een bepaalde waarde komt maak ik één uitgang bijv. portb.1 hoog. Maar voor als nog werkt dat niet op mijn breadbord. Maar ga even kijken wat hij dus doet als ik het inverteer.

Op 1 juli 2005 12:56:57 schreef dewie:Lees jij ook de adc ingangen in rene?

Nee, gebruikte alleen digitale signalen.

Hoe heb jij je externe kristal ingesteld met programmeren? en zou je misschien die source code naar mij willen e-mailen? kan ik namelijk even zien hoe jij dat gedaan hebt

[Bericht gewijzigd door dewie op ]

Op 1 juli 2005 13:06:13 schreef dewie:
Hoe heb jij je externe kristal ingesteld met programmeren?

Niet, ik heb AVRStudio voor het programmeren gebruikt en hoefde niks in te stellen voor een extern kristal. Hoewel ik er nu wel eens naar ga kijken of dat nodig is ...

Heb je al geprobeerd de Atmel op zijn eigen interne clock te laten draaien?
Gewoon een beetje rommelen met de fuse instellingen.

Is het programma dat werkt op de stk500 ook aangepast voor op je eigen print?
Want zoals al gezegt is inverteerd de stk500 alles.
Als de led is aangesloten op deze manier:
uitgang -> weerstand -> led -> GND
Dan moet je dus zorgen dat de uitgang hoog word om de led te laten branden.
Op de stk500 heb je de uitgang laag moeten maken om hem te laten branden.

Mjah, en dan kun je wel heeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeel lang wachten tot er eens een LEDje aan gaat. ;)

Maar daarom vroeg ik eerder al: heb je een scoop? Dan kun je iig ff uitsluiten of de clock een probleem is.

Ja okee,... morgen ben ik in de gelegenheid om met een scoop te gaan meten. Maar ik moet dan dus gewoon meten over het kristal op het moment wanneer ik de uC aan heb gesloten?
Als de scoop op dat moment niks aangeeft dan vraagt de uC dus niet om een externe kristal.

Je moet de meetprobe van je scoop dan op XTAL2 prikken.
Als je externe kristal-oscillator wordt gebruikt, moet daar een sinusvormig signaal op staan.