Forum: Mikrocontroller und Digitale Elektronik AT90USB1287 PORT A reagiert seltsam


von Alexander T. (alext)


Lesenswert?

Hallo allerseits,

ich habe einen AT90USB1287. Vcc=5 VDC. Angeschlossen nach Datenblatt.

Jetzt möchte ich an Pin3 vom Port A ein high, sprich 5 V, ausgeben. Die 
Leitung führt zu einem HT2015, das sollte aber egal sein.
Ich kann die Verbindung durch Jumper-Ziehen unterbrechen.

Und jetzt kommts:
Liegt die Versorgungsspannung am Atmel an, habe ich 1,3 V bei 
geschlossener Verbindung zum HT2015 und 5 V, wenn ich die Verbindung 
unterbreche, am Port 3 anliegen. Trotzdem zeigt mir mein Multimeter eine 
leitende Verbindung zum Massepotential an (sprich: Kurzschluss). Jeweils 
auf Seiten des Atmel, sodass HT2015-seitig kein Kurzschluss vorliegen 
kann.

Nehme ich die Versorgungsspannung weg, ist auch der Kurzschluss zur 
Masse verschwunden. Muss also am Atmel liegen. Irgendwie Chip-intern.

Bei Pins 6 und 7 funktioniert es wie gewollt. Pin 4 und 5 verhalten sich 
ähnlich wie der Pin 3.

Ich habe gelesen, dass der Port A spinnt, wenn man die AREF nicht 
angeschlossen hat, auch wenn man den ADC nicht benötigt. Hab ich also 
AREF=5V gelegt - blieb aber alles gleich.

Kennt noch einer Macken vom Port A?

Danke schonmal im voraus

Alex

von Stefan Salewski (Gast)


Lesenswert?

Hast Du irgendwelche Grundkenntnisse in Elektronik?
Nur damit es keine Missverständnisse gibt.

Der AT90USB ist grundsätzlich schon in Ordnung, ich habe damit einige 
Platinen aufgebaut, siehe
http://www.ssalewski.de/AVR_USB_gEDA.html.de
Anschluss nach Datenblatt -- ich denke auch, dass man AREF nicht einfach 
unbeschaltet lassen darf -- müssste ich aber nachlesen. Bei mir ist er 
beschaltet.

Aber: Dir ist schon klar, dass man mit einem Multimeter in Stellung 
Widerstandsmessung nicht an einen spannungsführenden Pin gehen darf?
Damit macht man in der Regel dann einen Kurzschluss. Ebenso macht man 
einen Kurzschluss, wenn man an einen Spannungsführenden Pin geht, wenn 
das Multimeter in Stellung Strommessung steht. Du kannst in Stellung 
Spannung unbesorgt die Spannung des Pins messen. Wenn Du den 
Ausgangsstrom messen willst, must Du stets einen geeigneten 
Vorwiderstand verwende, der den Strom auf einige  mA begrenzt. Mehr kann 
ein Pin nicht liefern -- ohne Vorwiderstand kann der Chip im Prinzip 
sogar kaputt gehen.

Gruß

Stefan Salewski

von Stefan Salewski (Gast)


Lesenswert?

Noch ein Nachtrag:
Pin AREF kann man wohl schon offen lassen, was man aber nicht darf: Ihn 
mit VCC oder GND verbinden, wenn man die interne Referensspannung des 
ADC verwendet! Dann macht man auch einen Kurzschluss.

Was Du vielleicht meintest: Pin AVCC sollte man auch dann mit VCC 
verbinden (direkt oder über Tiefpass), wenn man den ADC nicht verwendet.

Wenn Du einen Pin als Ausgang verwenden willst, musst Du ihn natürlich 
auch als Ausgang programmieren, siehe Datenblatt oder Tutorial.

Wenn Du mehr Hilfe brauchst, gib möglichst einen Schaltplan im PNG- oder 
PDF-Format.

Gruß

Stefan Salewski

von Alexander T. (alext)


Lesenswert?

Hi,

ich gab ja zu, dass ich da nicht der Meister der Elektronik bin, aber 
mit dem Multimeter komm ich schon ganz gut zurecht.
Ich hab auch herausgefunden, woran es lag: ich hatte beim nachträglichen 
Anschließen von AREF einen Kurzschluss zwischen VCC und GND fabriziert. 
Ich mach jetzt mal ein neues Board, bei dem AREF gleich entsprechend 
angeschlossen ist. Mal schauen.

Das mit der Programmierung ist mir schon klar. Ich denke, da hab ich 
wohl bisher nix falsch gemacht.

Danke trotzdem

Alex

von Alexander T. (alext)


Angehängte Dateien:

Lesenswert?

Hallo nochmal,

@Stefan:
ich habe mir mal Deine Seite und die Boards angesehen.
AREF hast Du über einen Kondensator an Masse angeschlossen (beim AT90). 
Ich gehe also davon aus, dass Du - wenn überhaupt - die interne VREF 
nutzt.
Laut Datenblatt sollte aber AVCC=VCC und VRef zwischen 1 V und AVCC=VCC 
liegen (siehe Anhang Ausschnitt aus Datenblatt). Das hab ich. Allerdings 
will ich den ADC gar nicht nutzen.
Hab ihn schon ausgeschaltet:

ACSR &= ~(1<<ACIE);
ACSR |= (1<<ACD);
ADCSRA &= ~(1<<ADEN);

Trotzdem habe ich jetzt auf dem neuen Board einen Kurzschluss zwischen 
VCC und GND (i=3 uA) wenn VCC=5V anliegt. Klemme ich VCC ab, d.h. das 
ganze Board ist spannungsfrei habe ich zwischen dem VCC-Pin und dem 
GND-Pin einen Widerstand von 5,2 kOhm.
Somit liegt es wohl am AT90. Der ist scheints falsch eingestellt.
AREF=AVCC=VCC. Das sollte aber eigentlich zweitrangig sein, da ich den 
ADC ja nicht nutzen will.

Was ist zu tun?
Löttechnisch habe ich keine Kurzschlüsse ermitteln können (mit 
Mikroskop). Mein Betreuer meint auch, das sähe "ganz ok" aus.

Viele Möglichkeiten bleiben ja nicht mehr. Kann man da 
programmiertechnisch etwas machen?

Danke schonmal vorab für Eure Hilfe.

Alex

von Florian D. (fdsurfer)


Lesenswert?

Hi,

ich denke mal das die Ports nicht richtig programmiert sind. Gib doch 
mal den Code, wo du die IO-Richtung festlegst an...

AREF kannst du offen lassen oder mit einem C gegen Masse schalten. 
Spielt aber keine Rolle für die Ausgänge... Zumindest habe ich noch nie 
probleme damit gehabt.

Gruß,
Florian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.