Hallo Forum,
bin nun etwas verwirrt.
ich habe einen ATMega 32
Ich kann mein Programm übertragen, alles ohne Fehlermeldungen.
Allerdings passiert nichts :-( programm passt zu 100% wenn ich den
Controller in eine andere Platine stecke funktioniert alles soweit.
an meinem Reset liegen "0V" an. passt das oder benötige ich dort eine
"1"?
dAZU GUCKT MAN INS dATENBLATT
http://ww1.microchip.com/downloads/en/devicedoc/doc2503.pdf
UND FINDET
RESET Reset Input. A low level on this pin for longer than the minimum
pulse length will generate a
reset, even if the clock is not running. The minimum pulse length is
given in Table 15 on page
37. Shorter pulses are not guaranteed to generate a reset.
Mit 0 bleibt der uC also im RESET stehen.
Sven schrieb:> an meinem Reset liegen "0V" an. passt das oder benötige ich dort eine> "1"?
Google mal bitte nach einem Pull-Up Wieeeederstand. ( ;-) ) Vielleicht
bringst Du dann ein wenig Selbstinitiative ein, anstatt hier von
Benutzern zu erwarten, dass sie Deinen Lehrer spielen.
VG
Jörg
Also nochmal ausführlich: (der Rest ist für Leien schwer veständlich)
Der Reset wird aktiviert, wenn 0V am Pin anliegen, bei Vcc arbeitet der
Kontroller normal.
=>
Reset = Logisch 1 = 0V
kein Reset = Logisch 0 = Vcc
Dieses verhalten ist anders als normal und wird als Invertierter eingang
Beszeichnet. (aus 0V wird Logisch 1 und umgekehrt)
Diese Pins gibt es öfters bei Sonderfunktionen. Weiß auch nicht warum,
ist halt so. ;-)
Hoffe ich habe micht verständlich ausgedrückt,
LG
Route 6. schrieb:> Hallo "kluchscheisser", die 0 als ASCCI 0 (0x30) oder binär 00?
Ein Byte oder 2 Bits auf einen digitalen Eingang, lol.
Eine 1 aktiviert den Eingang, eine 0 deaktiviert ihn, wie an jedem
anderen digitalen Eingang auch.
Dümmlicherweise ist das hier 1 entsprechend 0V (oder auch Low genannt)
und 0 entsprechend VCC (oder High).
Aber so grundsätzliche Sachen stehen im Datenblatt und einer Million
Tutorials im Netz. Keine Ahnung warum man das nicht findet...
Route 6. schrieb:> Jens M. schrieb:>> Du musst 0 anlegen, ist doch klar: "Reset active? False">> Hallo "kluchscheisser", die 0 als ASCCI 0 (0x30) oder binär 00?
Dazu müsstest du erstmal erklären, wie du ein ASCII-Zeichen an einem Pin
"anlegen" willst.
ElektroHeini schrieb:> Dieses verhalten ist anders als normal und wird als Invertierter eingang> Beszeichnet.
Das erkennt man übrigens auch an dem Strich über der Bezeichnung des
Pins. Dieser Strich kennzeichnet in der binären Logik eine Invertierung.
Es ist also eigentlich nicht der "RESET"-Pin, sondern der "nicht
RESET"-Pin.
Jens M. schrieb:> Eine 1 aktiviert den Eingang, eine 0 deaktiviert ihn
was soll denn das heissen?
eine 0 am Reset aktiviert den reset ja wohl, deswegen ist der ja auch
negiert gekenzeichnet!
Nope.
1 = aktiv = Reset.
Das du nicht lesen kannst das der Eingang invertiert ist ist nicht meine
Schuld.
Es gibt einen Unterschied zwischen 1/0 und High/Low.
0V hält den jedenfalls dauerhaft im reset, egal was du glaubst zu wissen
und das ist der Fehler beim TO
Sven schrieb:> Allerdings passiert nichts :-( programm passt zu 100% wenn ich den> Controller in eine andere Platine stecke funktioniert alles soweit.> an meinem Reset liegen "0V" an.
vielleicht lernst du erst mal lesen!
0V ist aktiv am reset, deine Spitzfindigkeiten helfen dir nicht.
Jens M. schrieb:> Nope.> 1 = aktiv = Reset.
Das widerspricht dem Datenblatt. Aus der Anleitung, wie man
Programmierung per SPI macht:
Both the Flash and EEPROM memory arrays can be programmed using the
serial SPI bus while R̅E̅S̅E̅T̅ is pulled to GND.
[…]
1. Power-up sequence:
Apply power between VCC and GND while R̅E̅S̅E̅T̅ and SCK are set to “0”.
[…]
8. Power-off sequence (if needed):
Set R̅E̅S̅E̅T̅ to “1”.
Turn VCC power off.
Die Zahlen stehen hier in Anführungszeichen, weil es in dem Kontext
eigentlich gar kein 1 und 0 gibt. Der Pin kann low oder high sein. Low
heißt Reset, high heißt kein Reset. Eine Interpretation des Reset als
Zahl ist nur mäßig sinnvoll.
Man kann auch alles zerreden.
@Sven: Der Reset-Eingang ist negiert, deswegen ist er bei LOW pegel
aktiv. Negierte Eingänge erkennst du in Datenblättern daran, daß ihr
Name einen Überstrich hat, oder mit einem "/" beginnt oder mit einem
kleinen "n" beginnt.
Manchmal halten sich Chiphersteller nicht an diese Konverntion, deswegen
rate ich dazu, auch den Beschreibungstext zu elsen.
Oder im Symbol ist ein Kringel vor dem Eingang.
Ändert aber alles nichts dran, das ein Eingang seine Funktion ausübt,
wenn er aktiv ist. Also logisch 1 hat. So wie jeder andere digitale
Eingang auch.
Was bei Kringel, Strich drüber, / oder n vor dem Namen bedeutet, das der
Pin mit GND/0V/Masse/Minus/VEE/VSS verbunden werden muss, damit er
logisch 1 wird und Reset damit aktiv ist.
Denn das so gemalte Symbol bedeutet, das eine übliche nichtinvertierte 1
= High an diesem Pin die Funktion nicht ausübt, daher auch das kleine
n vor Reset: nReset heißt NotReset. Also High = Not Reset.
Entsprechendes gilt für die anderen Darstellungsweisen.
Alles voller Profis hier....
Jens M. schrieb:> Was bei Kringel, Strich drüber, / oder n vor dem Namen bedeutet, das der> Pin mit GND/0V/Masse/Minus/VEE/VSS verbunden werden muss, damit er> logisch 1 wird und Reset damit aktiv ist.
und das schrieb der TO: (für Leseschwache)
Sven schrieb:> an meinem Reset liegen "0V" an
was du da interpretierst weisst nur du!
Jens M. schrieb:> Also logisch 1 hat. So wie jeder andere digitale> Eingang auch.
Du verwechselst "wahr" oder "true" mit "1".
Es gibt keine logische "1".
Es gibt nur "true" oder "false". Also Aussage ist wahr oder falsch.
Erst in der boolschen Algebra wird dann "wahr" durch eine "1" und
"false" durch eine "0" repräsentiert.
Jens M. schrieb:> Alles voller Profis hier....
Diese Aussage ist "falsch".
Sie kann nur falsch sein.
Denn:
Die Aussage "Jens M. ist in diesen Forum" ist wahr.
Die Aussage "Jens M.s Beitrag war inhaltlich korrekt" ist falsch.
Mit der Bedingung, dass Profis KORREKTE Aussagen machen gilt:
Jens M. ist kein Profi.
Wenn nun Aber Jens M. kein Profi ist UND in diesem Forum ist, dann ist
die Aussage "Alles voller Profis hier" falsch.
Diesen logischen Zusammenhang darfst jetzt gerne in Boolscher Algebra
darstellen. Denn erst dann kommen die "1" und "0" ins Spiel!
scnr
TO schrieb
Sven schrieb:> an meinem Reset liegen "0V" an. passt das oder benötige ich dort eine> "1"?
0V ist Low. 1 ist true. Beides bedeutet an einem Pin mit invertierter
Logik, das er aktiv ist.
Nicht Spannungspegel und Logikpegel vermischen.
Es würde somit genau gar keine Änderung eintreten, wenn man den
Low-Aktiven Eingang der mit 0V verbunden ist mit einer logischen 1
beschaltet.
Den Unterschied in der Booleschen Algebra mit dem 0/1 und True/False
musst du mir mal erklären bitte.
Das eine ist zum rechnen, das andere zum schreiben, z.B. in Programmen.
Ansonsten aber Bedeutungsgleich, da auf binäre Werte bezogen.
Low/High dagegen bezieht sich auf Spannungspegel.
Die an invertierten Aus- und Eingängen eben nicht mehr die
0=Low-Beziehung haben.
Kuckstu Flipflop: Q und /Q. Wenn /Q nicht "nicht Q" durch H anzeigt,
warum heißt es dann nicht z.B. P?
Jens M. schrieb:> Nicht Spannungspegel und Logikpegel vermischen.> Es würde somit genau gar keine Änderung eintreten, wenn man den> Low-Aktiven Eingang der mit 0V verbunden ist mit einer logischen 1> beschaltet.
Nicht Spannungspegel und negative Logik vermischen.
ElektroHeini schrieb:> Also nochmal ausführlich: (der Rest ist für Leien schwer veständlich)>> Der Reset wird aktiviert, wenn 0V am Pin anliegen, bei Vcc arbeitet der> Kontroller normal.>> =>> Reset = Logisch 1 = 0V> kein Reset = Logisch 0 = Vcc>> Dieses verhalten ist anders als normal und wird als Invertierter eingang> Beszeichnet. (aus 0V wird Logisch 1 und umgekehrt)>> Diese Pins gibt es öfters bei Sonderfunktionen. Weiß auch nicht warum,> ist halt so. ;-)>> LG
Weil 0V immer definiert ist, während VCC gerade beim Einschalten
irgendwas zwischen 0V und 5,5V sein kann.
Somit werden 0V den low aktiven Reset immer sicher aktivieren, während
ein high aktiver Reset immer relativ zur anliegenden Versorgungsspannung
gesehen werden müsste.
Gruß
Axel
Axel L. schrieb:>> Diese Pins gibt es öfters bei Sonderfunktionen. Weiß auch nicht warum,>> ist halt so. ;-)>> Weil 0V immer definiert ist, während VCC gerade beim Einschalten> irgendwas zwischen 0V und 5,5V sein kann.>> Somit werden 0V den low aktiven Reset immer sicher aktivieren, während> ein high aktiver Reset immer relativ zur anliegenden Versorgungsspannung> gesehen werden müsste.
Beim AVR könnte es vielleicht auch was damit zu tun haben, dass dieser
Pin auch elektrisch speziell ist, da er noch eine dritte Option kennt:
+12V für High-Voltage-Programming. Das ist der einzige Pin, bei dem es
erlaubt ist, mehr als Vcc+0,5V anzulegen.
Warum hier so viel auf 0 und 1 rumgeritten wird, ist mir nicht klar. Es
ist doch ganz einfach: Low-Pegel heißt, dass der µC im Reset-Zustand
ist, high-Pegel heißt, dass er es nicht ist. Ob man diese Zustände jetzt
zusätzlich 1 und 0, wahr und falsch oder Asterix und Obelix (*) nennen
will, spielt dafür gar keine Rolle. Allerdings wäre ich schon neugierig,
wie die Diskutanten wohl den dritten Zustand nennen.
*) ich musste grad amüsiert feststellen, dass meine Rechtschreibprüfung
zwar Asterix kennt, nicht aber Obelix.
Rolf M. schrieb:> Die Zahlen stehen hier in Anführungszeichen, weil es in dem Kontext> eigentlich gar kein 1 und 0 gibt.
Völlig richtig. Deswegen vermeiden die Datenblätter der meisten
Digitalbausteine diese Bezeichnungen und verwenden stattdessen H und L.
Zu numerischen Werten werden die Spannungspegel erst dann, wenn sie in
einem der I/O-Register des Mikrocontrollers ankommen und damit für
Rechenoperationen wie z.B. Addition oder Subtraktion verfügbar werden.
Das geschieht beim Reset-Eingang aber nicht, es sei denn, man
konfiguriert ihn (wie bei vielen AVRs möglich) als digitalen I/O-Pin.
In diesem Fall entspricht ganz klar low der 0 und high der 1.
Jens M. schrieb:> 1 = aktiv = Reset.
Wenn man die Aktivität unbedingt mit Zahlenwerten beschreiben muss oder
will, ist auch das richtig.
Aus
RESET = 1 (1)
folgt
R̅E̅S̅E̅T̅ = 0 (2)
Da der Eingang nicht RESET, sondern R̅E̅S̅E̅T̅ heißt, muss gemäß
Gleichung 2 zur Auslösung eines Resets eine 0 hineingeschickt werden.
Durch die (reale oder virtuelle) Invertierung im Inneren des AVR wird
daraus eine 1 (= aktiv, Gleichung 1).
Entsprechend muss am Eingang im normalen Betrieb eine 1 anliegen, damit
der interne Reset 0 (= inaktiv) wird und die CPU des Mikrocontrollers
losmarschieren kann.
Ich bin mir aber sicher, dass dir das alles völlig klar ist und du
lediglich die falschen Schlüsse daraus gezogen hast.