Hallo zusammen,
Ich hab da mal ne Frage zum Thema I/O. Ich kaufe 10 AVRs von Reichelt
und nur die Hälfte schafft es seine I/O Pinst auf echte 5V zu schalten.
Der Rest bringts nur auf knappp 2,5 V und bei minimaler Belastung durch
eine LED z. B. bricht die die Spannung auf 0.8 V zusammen.
Beim Tiny 13 hatte ich das Problem schon des öffteren und beim Mega 32
bis jetzt einmal.
Hatte schon jemand die gleiche Erfahrung?
Egal welches Programm oder welche Beschaltung. Ich Flashe AVR-A mit
einer Software (egal welche) und dann Flashe ich AVR-B mit der gleichen
Software nur einer schaffts auf die 5V und der andere ned. Fuse bits
sind bei beiden Controllern gleich.
Ich glaub das die vielleicht nen ESD schaden haben.
Peter schrieb:> Egal welches Programm oder welche Beschaltung.
Ist aber nicht egal ;-)
Vielleicht hast Du einfach vergessen, den jeweiligen Pin auf Ausgang zu
schalten. Wenn die Spannung bereits beim Anschluss einer Simpelst-LED
(ich nehme mal an, dass es sich nicht um eine High-Power-Variante
handelt) zusammenbricht, sieht das so aus, als ob der Pin weiterhin auf
Eingang geschaltet ist. Allenfalls hast Du es gerade noch geschafft, die
internen Pullups einzuschalten.
> Ich Flashe AVR-A mit> einer Software (egal welche) und dann Flashe ich AVR-B mit der gleichen> Software nur einer schaffts auf die 5V und der andere ned. Fuse bits> sind bei beiden Controllern gleich.
Du testest beide AVRs in derselben oder in der gleichen Schaltung?
Vielleicht hat die Schaltung für AVR-B ja einen Kurzschluss am
betroffenen Pin? Wird der AVR vielleicht heiß?
Ohne Programm und Schaltplan ist das alles aber nur Spekulation.
Peter schrieb:> Data Direktion Register passt. LEDs sind low power leds.
Du schreibst 6 bits in ein 8 Bit Register was sind mit den zwei anderen
Bits? Die bleiben sich selbst überlassen?
wiso 8... der Attiny hat 6 i/o pins davon ist einer der Reset.
Und ob der Widerstand 220 Ohm ist oder mehr ist egal da laut Datenblatt
der AVR diese Last Problemlos treiben kann.
Peter schrieb:> Der Rest bringts nur auf knappp 2,5 V und bei minimaler Belastung durch> eine LED z. B. bricht die die Spannung auf 0.8 V zusammen.
Das ist merkwürdig, LEDs leiten nicht unter 1,6V.
Peter schrieb:> Hatte schon jemand die gleiche Erfahrung?
Definitiv nein.
Allerdings sind nur 100nF für die 5V etwas schwach, schalte mal einen
220µF parallel.
Und das BOR mußt Du enablen. Vielleicht kriegst Du kein richtiges Reset
und der Programcounter startet irgendwo.
Peter
der ADC Pin ist keinesfalls offen. Er bekommt seine Spannung von R9
(Spannungsteiler mit dem NTC). Die Schaltung funktioniert so auch schon
in anderen Schaltungen.
Definitiv Mist ist es, den Reset fest auf 5V zu legen.
Möglicherweise führt der Controller dadurch keinen ordentlichen Reset
durch und startet in einem nicht definierten Zustand. Der eine
Controller läuft trotzdem, der andere nicht.
Zumindest ist es das einzige, was ich an Fehlern im Schaltplan erkennen
kann.
Die 5V vom Reset solltest du schleunigst wegnehmen und einen Pullup von
10k reinhängen. Oder ganz offen lassen. Das schadet auch nicht.
mfg.
Thomas Eckmann schrieb:> Definitiv Mist ist es, den Reset fest auf 5V zu legen.>> Möglicherweise führt der Controller dadurch keinen ordentlichen Reset>> durch und startet in einem nicht definierten Zustand. Der eine>> Controller läuft trotzdem, der andere nicht.> Zumindest ist es das einzige, was ich an Fehlern im Schaltplan erkennen> kann.>> Die 5V vom Reset solltest du schleunigst wegnehmen und einen Pullup von>> 10k reinhängen. Oder ganz offen lassen. Das schadet auch nicht.>> mfg.
Meine Rede Beitrag "Re: AVR schafft keine 5V"
Moin!
Scheint hier ein gern begangener Fehler zu sein, den *Reset-Eingang
nicht ordentlich zu beschalten. Da gehört ein Kondensator nach Masse
'ran, sonst nix! Ich bevorzuge gutes Material wie X7R und die Größe ist
fast irrelevant. Hier nutze ich 100n wie das andere Vogelfutter zum
Verblocken der Betriebsspannungen, um die Zahl der unterschiedlichen
Bauteile zu reduzieren. Da freut sich die Lagerhaltung, der Besteller
usw..
Alternativ kann man zusätzlich einen Widerstand nach +5V ziehen - aber
eben nur zusätzlich. AVRs enthalten bereits einen festverdrahteten
Pull-up-Widerstand.
So, das Thema ist hoffentlich langsam ausgestanden.
Gruß - Wolfgang
Thomas Eckmann schrieb:> Definitiv Mist ist es, den Reset fest auf 5V zu legen.
Das ist kein Mist, sondern erlaubt. Damit kann Reset keine Antenne für
Störungen bilden.
Ich mach das auch, wenn ich keinen ISP-Anschluß vorsehe.
Thomas Eckmann schrieb:> Die 5V vom Reset solltest du schleunigst wegnehmen und einen Pullup von> 10k reinhängen. Oder ganz offen lassen. Das schadet auch nicht.
Genau das ist großer Mist. Damit ist Reset nämlich eine super Antenne.
Wenn nicht direkt an VCC, dann müssen 100nF gegen GND ran.
BOR = Brown-out Reset
Peter
also das mit dem 5V an reset sehe ich auch nicht als fehler, läuft bei
mir auch ohne Probleme.
Ich denke immer noch das der Pin als eingang mit PullUp geschaltet ist,
das würde so ein verhalten erklären.
Wolfgang schrieb:> Scheint hier ein gern begangener Fehler zu sein, den *Reset-Eingang> nicht ordentlich zu beschalten. Da gehört ein Kondensator nach Masse> 'ran, sonst nix!
Komisch nur, dass Atmel das in den AppNotes AVR040 und AVR042 gar nicht
so sieht.
Wenn man ISP nicht benötigt, dann am besten einfach Reset direkt an Vcc
legen. Weitere Beschaltung kann man sich dann getrost sparen. Steht auch
so in einer der AppNotes drin.
Peter schrieb:> Ich lese ADC2 aus und nicht ADC1 wie> du behauptest aber da bin ich wohl um ein bit verrutscht.
Du solltest doch wissen, was Du ausliest. Auch ein korrektes Schaltbild
wär' nicht schlecht, bei dem die Pin-Funktionen mit dem Datenblatt
übereinstimmen.
Laut DB des Tiny13 ist ADC3 an PB3 und ADC2 an PB2. Im Schaltbild ist's
falsch. Wo genau hängt der Sensor denn dran ? Ist wenigstens Beinchen
Nummer 3 richtig ?
Bei 3 wär's der ADC2 und der hat 'nen Pullup, vorausgesetzt der Compiler
fügt die nicht vorhandenen Nullen vorn und nicht hinten ein.
Bei Ports mit <8 Pinsgelten die nicht vorhandenen Bits als "reserved"
> For compatibility with future devices, reserved bits should be written> to zero if accessed.
und haben mit 0 geschrieben zu werden. Also kein Grund so 'nen Krampf zu
machen:
> DDRB = 0b010111;
Wie hast Du die Spannung am LED-Pin eigentlich gemessen? Mit Multimeter
oder Oszi?
Es könnte ja sein, daß in deiner WHILE(1)-Schleife das Portpin ständig
gesetzt und rückgesetzt wird und du demzufolge bei Tastverhältnis 1:1
2.5V mit dem Multimeter misst.
Und je nach ADC-Ergebnis und Toleranz kann das bei verschiedenen Tiny
variieren...
Ahoi, Martin
Peter schrieb:> @Ich wie wärs mit sinnvollen Beiträgen?>> Da hab ich den header noch nicht aktuallisiert da es ursprünglich mal 2>> Leds waren und nur 2 Transistoren.
Meine Sinvollen Beiträge kannst du weiter oben lesen