Archiv verlassen und diese Seite im Standarddesign anzeigen : Reset und +5V
Moin.
Um bei nem AVR den Reset auszulösen, muss man ja den Reset-Pin kurz auf Masse legen. Wie würde ein AVR theoretisch reagieren, wenn man stattdessen +5V anlegt?
Anscheinend hab ich das heut mal geschafft; mich würd jetzt interessieren, ob da dann Schäden zu erwarten sind bzw. ob dies etwas damit zu tun hat, dass der AVR nach dem einschalten ca. 1-2 Minuten fehlerfrei läuft und dann nur noch Mist macht.
MfG
S.C
linux_80
19.11.2006, 01:17
Hallo,
auf 5V liegt der ja standardmässig sowieso, also ist da nur zu erwarten das der ohne erkennbares Zeichen so weiter macht ;-)
@Jaecko
ob dies etwas damit zu tun hat, dass der AVR nach dem einschalten ca. 1-2 Minuten fehlerfrei läuft und dann nur noch Mist macht.
Wenn du schreibst der Reset-Pin war mal kurzfristig mit 5V verbunden, hast du ihn offensichtlich nicht immer mit 5 Volt verbunden: Das dürfte schon eher die Ursache dafür sein, dass dein Controller Mist macht.
Wenn der Reset-Pin nicht auf 5V liegt, liegt an dem PIN eine "zufällige" Spannung an und dein Controller macht vermutlich öfter mal nen Reset als dir lieb ist.
Ok... *g* hätt ich eigentlich auch wissen müssen. Dachte nur irgendwie, dass der Pin intern schon auf 5V gezogen wird. Aber kaum hab ichs von "aussen" noch gemacht, läuft der AVR.
Passiert mir aber irgendwie öfter, dass ich das beschalten einzelner Eingänge vergesse und mich dann wunder, dass hinten nur Grütze rauskommt.
Ok... *g* hätt ich eigentlich auch wissen müssen. Dachte nur irgendwie, dass der Pin intern schon auf 5V gezogen wird.
das wird er auch, allerdings über eine Widerstand von etwa 80 Kiloohm. Das kann in Schaltungen mit großem Störpegel schon zu wenig sein. Am besten den Pin über nen Widerstand von eingen Kiloohm an 5V anschließen.
Also ich hab jetzt nen 4,7k zwischen 5V und Reset; der AVR läuft zwar jetzt jedes Mal sicher an, macht aber trotzdem nur so 1-3 min das, was er soll.
(LED im Sekundentakt ein/ausschalten sowie Laufzeit per USB ausgeben).
Nach 1-3 min hört die Ausgabe auf und die LED bleibt entweder wo sie ist oder blinkt/blitzt unkontrolliert.
An sich ist das Programm nur eine leere Do-Loop-Schleife und ein Unterprogramm, dass eben vom Timer aufgerufen wird. Softwarefehler isses also auch nicht.
linux_80
19.11.2006, 13:11
Servus,
Softwarefehler isses also auch nicht.
Das kann aber nur ein Programmierer über sein eigenes Programm behaupten :-)
Dürfen wir das mal anschauen, hört sich nach Interrupt usw. an ?
naja, habs mir lang angesehen und keinen Fehler gefunden...
$prog , 255 , &B11011001 ,
$regfile = "m2560def.dat"
$hwstack = 82
$framesize = 68
$swstack = 68
$crystal = 16000000
Config Pind.5 = Output
Led Alias Portd.5
Config Com4 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Config Timer1 = Timer , Prescale = 1024
On Timer1 Isrtimer1
Enable Interrupts
Enable Timer1
Timer1 = 49910
Open "com4:" For Binary As #4
Dim Thour As Integer
Dim Tmin As Integer
Dim Tsec As Integer
Dim Tday As Integer
Do
Loop
Isrtimer1:
Timer1 = 49910
Toggle Led
Tsec = Tsec + 1
If Tsec = 60 Then
Tsec = 0
Tmin = Tmin + 1
End If
If Tmin = 60 Then
Tmin = 0
Thour = Thour + 1
End If
If Thour = 24 Then
Thour = 0
Tday = Tday + 1
End If
'Print "RT: " ; Thour ; ":" ; Tmin ; ":" ; Tsec
Print #4 , "RT: " ; Thour ; ":" ; Tmin ; ":" ; Tsec
Return
End
linux_80
19.11.2006, 16:45
Ja, scheint da ist doch noch ein Hardwareproblem, ich hab das jetzt zwar auf einem T2313 probiert, der bekanntlich deutlich weniger SRAM als der M2560 hat, aber es läuft schon 30Min.
Jetzt wären doch noch ein paar Details zur Hardware nötig, welche Stromversorgung, und was hängt da sonst noch dran,
welches Board, Layout, evtl. Schaltplan, usw. ?
Also vom Layout her ist es jetzt nur ein "Experimentalaufbau", d.h. die AVR-Platine (Fertigmodul ATMega2560 von Robotikhardware) steckt auf einem Stück Lochrasterplatine, die Anschlussklemmen liegen auf Platinenresten und sind per Kabel an die "Hauptplatine" angeschlossen.(erst mal rumtesten bevor ich da ne "richtige" Platine mach bzw. machen lass)
http://mitglied.lycos.de/grafkrolock82/avr/avr_1.jpg
Als Stromversorgung dient ein AT-Netzteil; an den Anschlussklemmen der Stromversorgung (links) liegt zwischen 5V und Reset der 4,7K-Widerstand. Vom AVR-Board werden alle VCC-Pins mit 5V versorgt, ebenso alle GND mit Masse. AREF liegt auf 5V.
Die per Kabel rausgeführten Ports A und B (rechts im Bild) sind "leer", also nichts angeschlossen; aber die werden ja in der Software eh noch nicht angeschaut. (Die restlichen Ports kommen, wenn der Controller mal soweit mind. 24h durchläuft)
digitali
21.11.2006, 00:26
Was mir so nebenbei auffaellt: Meines Wissens gehoert das "end" direkt nach der do loop Schleife vom Hauptprogramm. Wird gerne vergessen oder falsch gesetzt.
Irgendwo habe ich mal gelesen das das unter unguenstigen Bedingungen auch zu kuriosen Fehlern fuehren kann.
Mfg Digitali
dennisstrehl
21.11.2006, 00:38
Kleine Info: Bei vielen AVRs wird der Reset per Pullup auf 5V gezogen.
Es gibt aber auch AVRs, bei denen das nicht erfolgt, auch nicht über noch so große Widerstände. Ein AtTiny15 zum Beispiel macht ohne externe Reset-Beschaltung überhaupt nix.
Gruß,
Ich
Wegen dem END:
in dem kleinen Programm wird dieses END ja nicht erreicht.
Wenn es fehlt und das Programm dann einfach weitermacht, dann wird doch einfach irgendwas gemacht, was grad noch so im Speicher rumliegt...
Dann hab ich jetzt auch den Grund für die Störungen gefunden: Das USB-Kabel hat anscheinend irgendwie "Antenne" gespielt. Hab nen 470pF-Kerko direkt am Board zwischen Reset und Masse und schon war Ruhe. der AVR lief über Nacht fehlerfrei durch.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.