PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] ATtiny13 Probleme mit Timer



MB12
01.08.2015, 23:45
Hallo,

ich versuche mit einem ATtiny 13 ein einfaches Programm zur Steuerung eines Lüfters zu realisieren. Statt des Lüfters verwende ich allerdings bei den ersten Test nur eine LED, um die "Ausgabe" zu erkennen.
Dabei habe ich nun das Problem, dass der Tiny das im Anhang zu sehende, äußerst simple Programm (LED an, 100ms warten, LED aus, 100ms warten usw.) nicht zuverlässig ausführt. Die LED blinkt extrem unregelmäßig, teils 2mal sehr kurz hintereinander, dann mal eine längere Pause, dann wieder kurz gleichmäßig,... es ist kein System zu erkennen. An der LED liegt es nicht, die "Ausgabe" ist exakt das, was am Beinchen des Tiny anliegt. Auch am Tiny kann es eigentlich nicht liegen, da das selbe Problem auch bei einem anderen Tiny13 auftritt.
Ich habe in der Vergangenheit öfter mit dem ATmega8 gearbeitet und nie solche Probleme gehabt. Kann mir eventuell jemand einen Tipp geben, woran das liegen könnte bzw. wie ich das Problem beheben kann?

Gruß,
Marius

HeXPloreR
02.08.2015, 08:06
Hallo Marius,

das Problem kommt von Bascon und davon das Du eigentlich keinen Timer benutzt. Die "wait" sowie "waitms" sind einfach ungenau. Aber das solltest Du eigentlich garnicht merken bei 100ms. Bau mal 1Sekunde wartezeit ein und prüfe ob die LED wirklich im (ca) Sekundentakt blinkt. Damit prüfst Du ob der Crystal wirklich der programmierte ist.

Viel Grüße
Jörg

MB12
02.08.2015, 10:29
Hallo,

ich habe das gerade probiert, allerdings hat auch das nichts geändert. Ich habe mal 2 kleine Videos als Anhang angefügt, damit etwas klarer wird wie extrem diese ungenauigkeit ist. Ein Video zeigt das oben angehängte Programm, und ein Video das selbe aber mit 1 Sekunde Wartezeit.
Ich weiß nicht ob das von Bedeutung sein könnte aber ich schalte die LED mit einem BC637 Transistor.

Gruß,
Marius


https://youtu.be/tuRdHVSZCRM

https://youtu.be/EMpl2gH9kX0

oberallgeier
02.08.2015, 11:10
..dass der Tiny das..simple Programm..nicht zuverlässig ausführt..gerade probiert..nichts geändertHallo Marius,

Du hast WIRKLICH einen 1,2 MHz-Quarz dran? Zwar habe ich grad gar keinen Peil, was der zu dieser Instabilität beitragen sollte (kann auch WIRKLICH kein Bascom) - aber so eine Quarzfrequenz kommt doch ziemlich selten vor . . . ! Hast Du es mal mit mehr Stack probiert (wieder ohne jede Idee ob das die Ursache sein könnte) ?

MB12
02.08.2015, 11:15
Hallo,

ich habe gar keinen Quarz dran, die 1,2 MHz Einstellung für den Tiny hatte ich irgendwo in einem Forum gefunden, was ist denn die normale eingestellte interne Taktfrequenz von einem Tiny 13?

Gruß,
Marius

Edit:

Habe gerade mal 9,6MHz, 8MHz und 4MHz testweise eingestellt, das Problem bleibt leider trotzdem bestehen

oberallgeier
02.08.2015, 12:25
..keinen Quarz..1,2 MHz Einstellung..irgendwo in einem Forum gefunden..Gut, nicht schlecht.


..was ist denn die normale eingestellte interne Taktfrequenz..Tiny 13?..Standardeinstellungen lehrt mich das Datenblatt (mein doofer Spruch dazu Der Umgang mit Mikrocontrollern ohne das zugehörige Datenblatt zu haben und zu lesen ist eines der letzten großen Abenteuer unserer Tage). Das findest Du bei Atmel, hier, kostenlos, (http://www.atmel.com/products/microcontrollers/avr/default.aspx?tab=documents) stets ofenfrisch (trotzdem ohne Garantie auf Fehler *gg*) im aktuellen Datenblatt 8126F–AVR–05/12 (http://www.atmel.com/Images/doc8126.pdf) auf S 26 unter 6.2.4 Default Clock Source . Und dort stehen 9,6 MHz. mit prescaler 8 => also tatsächlich 1,2 MHz.

6.2.4 Default Clock Source
The device is shipped with CKSEL = “10”, SUT = “10”, and CKDIV8 programmed. The default clock source setting is therefore the Internal RC Oscillator running at 9.6 MHz with longest start-up time and an initial system clock prescaling of 8.
This default setting ensures that all users can make their desired clock source setting using an In-System or High-voltage Programmer.




..Habe gerade mal 9,6MHz, 8MHz und 4MHz testweise eingestellt, das Problem bleibt leider trotzdem bestehenKannst Du uns mal bitte erzählen mit welcher Stromquelle Du Deine Schaltung betreibst? Na ja, eigentlich bräuchten wir mal die tatsächliche Schaltung, KOMPLETT mit Stromversorgung - notfalls auf Papier mit Bleistift und eingescannt/fotografiert/eingesmartphont oder ähnlich.

malthy
02.08.2015, 12:27
Hallo,


Habe gerade mal 9,6MHz, 8MHz und 4MHz testweise eingestellt, das Problem bleibt leider trotzdem bestehen

Dir ist aber schon klar, dass die Einstellung des Taktes nicht über das "$crystal" erfolgt? Du könntest mal das Fenster von den Fuses aus dem BASCOM Flash-Tool zeigen. An BASCOM als solchem liegt das definitiv nicht.

Gruß
Malte

MB12
02.08.2015, 12:41
Kannst Du uns mal bitte erzählen mit welcher Stromquelle Du Deine Schaltung betreibst? Na ja, eigentlich bräuchten wir mal die tatsächliche Schaltung, KOMPLETT mit Stromversorgung - notfalls auf Papier mit Bleistift und eingescannt/fotografiert/eingesmartphont oder ähnlich.

Betrieben an einem Stabilisieren 12V Netzteil und für den Tiny ein 7805 dazwischen.
Schaltplan zeichne ich eben, kommt sofort.


Dir ist aber schon klar, dass die Einstellung des Taktes nicht über das "$crystal" erfolgt? Du könntest mal das Fenster von den Fuses aus dem BASCOM Flash-Tool zeigen.

Nein das war mir nicht klar, aber da 1,2 MHz Standard ist und ich die Fuses nicht verändert habe sollte es passen. Trotzdem im Anhang mal eben ein Screenshot aus dem AVR Burn o Mat mit dem ich flashe.

Gruß,
Marius

Edit: Jetzt auch der Schaltplan im Anhang

305403054130542

malthy
02.08.2015, 13:13
Dein 7805 braucht auf jeden Fall am Eingang und Ausgang jeweils einen 100 nF KerKo nach Masse, der kann im ungünstigen Fall sonst anfangen zu schwingen ...

MB12
02.08.2015, 13:36
am Eingang und Ausgang jeweils einen 100 nF KerKo nach Masse

Ist das so dann richtig?
30543

Gruß
Marius

- - - Aktualisiert - - -

Es lag tatsächlich an den fehlenden KerKo's.

Vielen Dank für die schnelle Hilfe!

Gruß,
Marius

021aet04
02.08.2015, 13:50
Elkos könntest du auch noch verwenden.
Normalerweise nehme ich jeweils einen kerko vor bzw nach dem Spannungsregler und einen an VCC bzw AVCC und an Reset (jeweils 100nF).

MfG Hannes