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
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
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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.