Atmega 16 loopt nog maar op max 4Mhz


Ja, 100nF tegen de chip aan.

Ik begrijp de reacties over de voeding, maar aangezien het met deze voeding al jaren zonder enig probleem gaat (en attiny AVRs op dezelfde voeding prima functioneren) kan het de voeding echt niet zijn. Zoals gezegd heb ik ook andere voedingen geprobeerd maar krijg hetzelfde resutltaat. Helaas heb ik geen tweede Atmega liggen dus daarmee vergelijken gaat nog niet.

[Bericht gewijzigd door Henry S. op 13 januari 2015 21:29:11 (40%)]

Andre van Swaaij
EricP

mét CE

Ja, 100nF tegen de chip aan.

En verder? Die adapter doet 5V? Met een draadje van 1m eraan?

Ik begrijp de reacties over de voeding, maar aangezien het met deze voeding al jaren zonder enig probleem gaat (en attiny AVRs op dezelfde voeding prima functioneren) kan het de voeding echt niet zijn.

Sherlock Homes wel eens gelezen? Ik sluit de voeding pas uit, als het danwel een dusdanig robuust ontwerp is dat het 'moet werken' (als in: anders is het chippie absurd gevoelig) of ik moet het kunnen meten en bevestigd zien. 'Een andere AVR draait er wel goed op' is geen argument. Wellicht gaat dat ook 'per ongeluk' goed.

Laatste open deur: wat doe je met je RESET? Los laten hangen gaat meestal wel goed, maar netjes is het niet. En van 'meestal' wil je graag af...

Maar goed, als het de voeding 'echt niet is' en je fuses staan goed... Dan kan ik er niks meer van maken dan dat je ergens iets stuk gemaakt hebt.

Op 10 januari 2015 11:23:38 schreef maxva:
Ik begrijp de reacties over de voeding, maar aangezien het met deze voeding al jaren zonder enig probleem gaat (en attiny AVRs op dezelfde voeding prima functioneren) kan het de voeding echt niet zijn.

De conclusie zal wel kloppen. Het zal de voeding wel niet zijn. Maar jou redenering ben ik op tegen.

"hij doet het al jaren". Prima. Die atmega deed het ook al een tijd, dus is er IETS veranderd. Waarom sluit je dan ineens die voeding uit?

Trouwens. Toch een hint om misschien toch naar de voeding te kijken... (effe het datasheet er bij gepakt): De atmega16 (zonder L) is maar 4.5-5.5V. De kans dat je attiny wel een 2.7-5.5V voedingsrange heeft is aanwezig....

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Je hebt helemaal gelijk, en mij aan het twijfelen gekregen. Dus ipv adapters maar een 'echte' gestabiliseerde voeding er aan. Ingesteld op 5.0V:

De reset hangt via 33K aan +5V. Helaas maakt het allemaal geen verschil. Tot en met 4Mhz gaat het goed, daarboven niet.

... Dan kan ik er niks meer van maken dan dat je ergens iets stuk gemaakt hebt.

Als dat zo is dan begrijp ik niet hoe. Ik had m'n programma net veranderd en daarbij INT0 ge-enabled. Toen ik na programmeren dat geknipper zag, dacht ik meteen, 'Stom: interrupt ge-enabled en niks aan die pin hangen. De chip is natuurlijk alleen maar interrupts aan het afhandelen'. De rest van het verhaal is bekend (zie eerste post).

Elektronica kan natuurlijk altijd kapot gaan, maar ook ik heb de ervaring dat die Atmel chips behoorlijk wat kunnen hebben.

Deze gaat nu in het bakje 'Max 4Mhz'....;-)

[Bericht gewijzigd door Henry S. op 13 januari 2015 21:29:50 (68%)]

Andre van Swaaij

....want op 4Mhz lijkt ie alles nog te doen. Ook I2C op 100Khz:

Andre van Swaaij

De Atmega heeft 2 GND pennen, VCC en AVCC. Zijn deze ook allemaal aangesloten ??
Op de foto is het moeilijk te zien maar daar heb ik het idee dat geen enkele ground is aangesloten buiten de ground van de programmer.

Ik zie dat de gnd aan de "naar de foto toe" kant is aangesloten. Kort zwart draadje. Maar die aan de overkant, naast AVCC mist de aansluiting en de ontkoppel C.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Op 11 januari 2015 11:27:02 schreef rew:
Ik zie dat de gnd aan de "naar de foto toe" kant is aangesloten. Kort zwart draadje. ......

Ben niet overtuigd, lijkt mij een draadje van de programmer. Maar we horen het wel van de TS :)

Op 11 januari 2015 11:47:58 schreef driessens_nl:
[...]
Ben niet overtuigd, lijkt mij een draadje van de programmer. Maar we horen het wel van de TS :)

Voeding VCC en GND waren aangesloten, en AVCC ook. Ik heb nog even de GND naast AVCC aangesloten en een extra C'tje geplaatst.

Eén klein verschil: het programma loopt nu 'af en toe', dus soms wel en soms niet als ik de fuses op interne klok van 8Mhz zet. Maar de led knippert even snel als op 4Mhz, en de data op het I2C display is dan soms incorrect. Als ik dan de programmer verwijder loopt hij niet meer. Fuses terug naar 4Mhz en hij doet het weer...

Andre van Swaaij

Dit moet je als hints gebruiken om te proberen het probleem te vinden. Het fysiek beter aansluiten van de voedingen resulteert in een beter resultaat (maar nog niet perfect).

Ik vraag me af hoe snel ie nu uiteindelijk draait. Dus programmeer (uitgaande van een 4MHz klok) het knipperen op 500ms aan, 500ms uit, en meet de tijd van tien knippers.

Je led zit op PB2?

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Op 11 januari 2015 14:39:23 schreef rew:Je led zit op PB2?

Scherpe blik ;-) Op de bovenste foto inderdaad op PB2, op de onderste foto (met de LCD erbij op PA5). Vanwaar die vraag? Zou het nog wat uitmaken welke poorten in gebruik zijn?

Op 11 januari 2015 14:39:23 schreef rew:Ik vraag me af hoe snel ie nu uiteindelijk draait. Dus programmeer (uitgaande van een 4MHz klok) het knipperen op 500ms aan, 500ms uit, en meet de tijd van tien knippers.

Je kunt het duidelijk zien dat hij op 4Mhz loopt omdat hij om de seconde aan gaat, op 1Hz dus. Maar meten is weten, dus dit is wat ik meet met de logic analyzer:

Dit bevestigt dat de frequentie om en nabij 1Hz is. Zoals gezegd loopt hij af en toe ook als ik de fuses naar 8Mhz interne klok zet. Dan meet ik ook dat hij op 4Mhz loopt.

[Bericht gewijzigd door Henry S. op 13 januari 2015 21:30:34 (19%)]

Andre van Swaaij

Mag ik vragen hoe jij op 4 MHz draait? Mijn atmega168 draait op 8MHz interne klok of op een extern kristal. Beide evt door 8 gedeeld.... volgens mij weinig andere opties....

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Ik zie een insteeek-breadboard, die kunnen nog weleens slechte verbindingen krijgen. Probeer het eens op een ander bord.

Heb geduld: alle dingen zijn moeilijk voordat ze gemakkelijk worden.

Is de frequentie definitie voor je delay functies wel goed?

Maak eens een lus die de status van een pin togglet. Geen delays, geen debugging statements, alleen maar pin=!pin; Daarmee sluit je eventuele configuratie problemen in je software omgeving uit.

[Bericht gewijzigd door mbbneon op 14 januari 2015 18:52:31 (14%)]

Op 14 januari 2015 13:29:38 schreef rew:
Mag ik vragen hoe jij op 4 MHz draait? Mijn atmega168 draait op 8MHz interne klok of op een extern kristal. Beide evt door 8 gedeeld.... volgens mij weinig andere opties....

Zo, fuses instellen via de programmer:

Als ik hem op 1Mhz zet draait hij een kwart van die snelheid, dus dat klopt allemaal wel.

[Bericht gewijzigd door maxva op 14 januari 2015 19:20:17 (12%)]

Andre van Swaaij

Op 14 januari 2015 14:16:53 schreef Jochem:
Ik zie een insteeek-breadboard, die kunnen nog weleens slechte verbindingen krijgen. Probeer het eens op een ander bord.

Hij zat eerst op een print waar alle verbindingen waren gesoldeerd. Toen de problemen begonnen ben ik teruggegaan naar 'simpel' door even een schakeling met slechts een ledje te gebruiken.

Andre van Swaaij

Op 14 januari 2015 18:47:57 schreef mbbneon:
Is de frequentie definitie voor je delay functies wel goed?

Ja, die blijkt exact. In het programma 4Mhz als frequentie opgegeven, en 500mS delay geeft ook 500mS delay zoals in het beeld van de logic analyzer is te zien.

Andre van Swaaij

Op 14 januari 2015 18:47:57 schreef mbbneon:
Maak eens een lus die de status van een pin togglet. Geen delays, geen debugging statements, alleen maar pin=!pin; Daarmee sluit je eventuele configuratie problemen in je software omgeving uit.

Dan togglet hij op 400Khz:

Dus zou de 'C' regel
PORTA = ~PORTA;
vijf klok cycles duren.

Andre van Swaaij

Dus zou de 'C' regel
PORTA = ~PORTA;
vijf klok cycles duren.

Nee, de "while (1)" kost ook tijd. Ik zou gokken 2 voor de "go back to the beginning" en 3 voor de porta inverteren (read/modify/write).

code:

.L3:
        in r24,0x5
        com r24
        out 0x5,r24
        rjmp .L3

(ik heb PORTB gebruikt omdat de ATMEGA168 geen porta heeft.) Vorige keer verzon de compiler om een loop-unroll te doen. Dan doe je dus 2x de "werk" instructies voordat je 1x de rjmp tegenkomt. Dan kost het dus 2x3+2 = 8 clocks voor 2 toggles inplaats van 10. In het onderhavige geval wordt je golfvormpje asymmetrisch.

P.S. Iedere instructie 1 clock, behalve de jump, die is twee.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Ik heb een paar nieuwe Atmega's besteld. Als ik die binnen heb dan laat ik nog weten of die het inderdaad wel goed doen op alle frequenties. Voorlopig kan ik op 4Mhz gewoon verder met m'n project.

Allemaal bedankt voor het meedenken en de adviezen. Toch weer e.e.a. geleerd.

Andre van Swaaij

Zit in die chip niet een register met calibratie bits om de interne RC oscillator af te regelen?

Is die misschien gewist waardoor het nu brak is?

Henri's Law 1: De wet van behoud van ellende. Law 2: Ellende komt nooit alleen.

Zet de brown-out eens aan op 4V oid, blijft ie lopen? Misschien zit er intern wel iets niet goed met de voeding. En Aref mag je geloof ik niet zomaar op VCC aansluiten, hangt die los?

En inderdaad OSCcal registers eens uitlezen, waarde opschrijven en dan midden in het bereik zetten kan ook nog helpen.

Kom eens langs bij RevSpace of één van de andere spaces! WORKSHOP!

Op 15 januari 2015 00:20:53 schreef henri62:
Zit in die chip niet een register met calibratie bits om de interne RC oscillator af te regelen?

Is die misschien gewist waardoor het nu brak is?

Eerlijk gezegd niet naar gekeken. De problemen begonnen toen hij (niet meer) op een 16Mhz kristal liep. Ik gebruik nu de interne 4Mhz oscillator maar omdat dat de enige klok is waar hij nog op loopt.

Zouden die kalibratie bits invloed kunnen hebben wanneer je een kristal gebruikt? Als je denkt dat dat mogelijk is dan wil ik dat nog wel proberen. Maar op 4Mhz loopt ie prima, dus tot de nieuwe binnen is doe ik het zo.

Andre van Swaaij

Nee, de oscal bits hebben geen invloed op de externe klok. Dus dat zou het niet moeten zijn.

AREF mag je best op VCC aansluiten. Maar dan is het niet aan te raden om in software "internal 1.1V" te selecteren. (anderzijds, het datasheet raad een 100nF condensator aan op AREF, die wordt tot 1.1V opgeladen door de interne referentie als je die selecteert en tot 5V als je "VCC" als referentie selecteert. Maar wat Atmel er niet bij verteld is dat de interne referentie echt 3-4 conversies nodig heeft om 100nF tot 1.1V te ontladen.... (Of de stroom die daar getrokken wordt door de ADC getrokken wordt, of dat de analoge referentie ook kan sinken weet ik niet!)

AVCC mag ook direct op VCC aangesloten worden, maar dan is zoals te verwachten valt, je digitale ruis wat te horen op de analoge metingen.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

De nieuwe zijn binnen en lopen prima op 'n 16Mhz kristal. Ik heb nog een laatste poging gewaagd door nogmaals de 0x99E1 fuses te zetten maar wederom hetzelfde: 4Mhz is de maximum snelheid.

Probleem is opgelost: vervangen. Nogmaals dank voor alle reakties.

Andre van Swaaij