Hallo Forum,
habe hier einen Atmega1284p, den ich auf einem Steckbrett
grundbeschalten habe (Reset mit 10kOhm Pullup, 3xGND, 3xVCC, 100nF Kerko
zw. VCC und GND). Getaktet ist er intern mit 8 MHz. Das Programm setzt
einen Portpin auf Ausgang und auf High. Befeuert wird er mit einem
Netzteil und 3,3 V. Ich messe am auf "high" gesetzten Portpin einen
Spannungsverlust von etwa 0,8 V (gegenüber VCC). Dieses Verhalten wurde
bei mittlerweile 3 getesteten Controllern festgestellt und ich weiß mir
keinen Reim darauf. Bei einem Atmega328 liegt die Verorgungsspannung
komplett am Pin an. Kennt jemand das Problem? Was mache ich falsch?
Womit hast du gemessen? Vielleicht liegt es am Programm, das was anderes
tut, als du willst, und den Pin immer mal wieder auf Low schaltet.
Hast du ein Oszi? Dann mess mal damit.
Stefan schrieb:> Ich messe am auf "high" gesetzten Portpin einen Spannungsverlust von> etwa 0,8 V (gegenüber VCC).
Unüblich, eine Spannung gegenüber Vcc zu messen und noch unüblicher ist
es, dass die dann noch positiver, also höher als Vcc ist.
Welche Spannung misst du denn (so wie alle Welt misst) gegenüber GND?
Und was passiert, wenn du den Pin mit einem 10k Widerstand mal gegen GND
und
mal gegen Vcc "belastest"?
Lothar M. schrieb:> Stefan schrieb:>> Ich messe am auf "high" gesetzten Portpin einen Spannungsverlust von>> etwa 0,8 V (gegenüber VCC).> Unüblich, eine Spannung gegenüber Vcc zu messen und noch unüblicher ist> es, dass die dann noch positiver, also höher als Vcc ist.
Ich verstehe das so, dass er meint, dass der Spannungsverlust von 0,8V
gegenüber VCC heißt, dass der Pin um 0,8V niedriger liegt als VCC.
Abgesehen davon:
Bist du sicher, dass der Pin als AUSGANG geschaltet ist? - Misst du
nicht vielleicht einen (floatenden) Eingang?
Stefan S. schrieb:> Bist du sicher, dass der Pin als AUSGANG geschaltet ist? - Misst du> nicht vielleicht einen (floatenden) Eingang?
Würde gut passen:
- altes Mulitmeter, analog, mit 50kΩ/V im 5V-Bereich (=250kΩ)
- Pin ist Eingang, Pullup intern aktiv, ca. 40kΩ
- ergibt dann rund 4.3V gegen GND in der Anzeige
Stefan schrieb:> Das Programm setzt> einen Portpin auf Ausgang und auf High
liest sich wirklich so als wenn du nur den pullup eingeschaltet hast
statt ddr auf out zu stellen und belastest
Ich arbeite mit der Arduino IDE:
setup()
{
pinMode(28, OUTPUT);
}
loop()
{
digitalWrite(28, HIGH);
}
Ich messe mit einem DMM von Portpin 28 gegen GND und erhalte 2,5 V (0,8
V weniger als VCC). Wie bereits erwähnt, funktioniert es mit einem
Atmega328. Es ist hierbei unerheblich, welchen Portpin ich setze.
Arduino F. schrieb:> Bei 3,3V Versorgung?> Sehr optimistisch!> Evtl. zu optimistisch.
Du hast ja recht - warum auch immer ich die 3.3V übersehen habe und von
5V ausging ...
>AVCC is the supply voltage pin for Port A and the Analog-to-digital
Wenn AVCC nicht angeschlossen ist kann es also durchaus sein
dass an PORTA nur Schrott rauskommt.
holger schrieb:> Wenn AVCC nicht angeschlossen ist kann es also durchaus sein> dass an PORTA nur Schrott rauskommt.
Habe ich schon versucht zu sagen...
Wurde aber ignoriert.
Joachim B. schrieb:> vielleicht ist der JTAG noch aktiv, der könnte bei manchen Ports stören!
Wurde auch schon gesagt, und ebenso ignoriert.
Das Problem mit dem "Spannungseinbruch" hatte ich auch mal erlebt.
Das passierte bei mir, wenn der Port nicht richtig als Ausgang definiert
wurde.
Also kontrollieren!
> Wurde auch schon gesagt...
Noch nicht gesagt wurde, was denn dieser Arduino-Pin Nr. 28 in der
wirklichen Welt ist.
(und nein, ich begebe mich jetzt nicht auf die Suche)
S. Landolt schrieb:> Noch nicht gesagt wurde, was denn dieser Arduino-Pin Nr. 28 in der> wirklichen Welt ist.
Och...
Vom UNO(ATMega328P), z.B. weiß ich, dass er keinen Pin 28 hat.
Und vom TE weiß ich, dass es trotzdem funktioniert.
Das "Wie" wird wohl ein Geheimnis bleiben.
Nun ja - wenn sich die Nummer auf PDIP bezieht, kann der Fehler weder an
JTAG noch an nicht angeschlossenem AVcc liegen; bei den anderen Gehäusen
wäre 28 GND, kann also gar nicht sein.
Arduino F. schrieb:> Och...> Vom UNO(ATMega328P), z.B. weiß ich, dass er keinen Pin 28 hat.> Und vom TE weiß ich, dass es trotzdem funktioniert.> Das "Wie" wird wohl ein Geheimnis bleiben.
weil er den ATmega1284p nutzt
JTAG Port C
Pin 28 C6
spess53 schrieb:>>Vom UNO(ATMega328P), z.B. weiß ich, dass er keinen Pin 28 hat.>> Lt. Datenblatt schon.
ist PC5
aber der TO nutzt ja einen ATmega1284p
Arduino F. schrieb:> Vom UNO(ATMega328P), z.B. weiß ich, dass er keinen Pin 28 hat.> Und vom TE weiß ich, dass es trotzdem funktioniert.> Das "Wie" wird wohl ein Geheimnis bleiben.
Der TE ist offensichtlich der irrigen Meinung dass die Arduino
Pins (pinMode(28, OUTPUT); ) den Prozessor-Pins entsprechen.
S. Landolt schrieb:> Na, wenn nicht einmal ein "Fanboy" weiß, welcher das ist ...
Tja....
Da mir die verwendete Board Definition nicht bekannt ist, kann ich auch
nur raten....
Also: Vermutlich mit dem Arduino Mega identisch.
Joachim B. schrieb:> weil er den ATmega1284p nutzt
Naja...
Darum sagt er auch:
Stefan schrieb:> Bei einem Atmega328 liegt die Verorgungsspannung> komplett am Pin an.
???
Joachim B. schrieb:> erschliesst sich Steckbrett für mich nicht und es gibt 4x GND und 3x VCC> + 1x AVCC
Nunja...
Ein bisschen Abenteuer muss ja auch mal sein...