www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 12 LEDs an ATMega32 (Port A + C)


Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe an meinem ATMega32 an PortA 8 LEDs und an PortC 4 LEDs (an PC0, 
PC1, PC2, PC3). JTAG ist deaktiviert.
An PortB hängt ein LCD (HD44780), das funktioniert problemlos. Ich 
denke, das ist für das Problem nicht relevant.

Meine Schaltung betreibe ich über das ATMEL Evaluations-Board 2.0 über 
das IDE-Kabel (J4) auf meinem Steckbrett.

Mein Testcode sieht so aus:
int main(void)
{
  DDRA = 0xFF;
  DDRB = 0xFF;
  DDRC = 0xFF;
  DDRD = 0b11100000;  
  
  PORTA = 0xFF;
  PORTC = 0xFF;  
  while(1) {}
  return 0;
}
Das funktioniert, alle LEDs leuchten und an allen Pins liegen ~5V an.

Schalte ich jetzt PortC komplett aus, habe ich schon das erste seltsame 
Verhalten.
DDRA = 0xFF;
  DDRB = 0xFF;
  DDRC = 0xFF;
  DDRD = 0b11100000;  
  
  PORTA = 0xFF;
  PORTC = 0x00; 

An PortC leuchtet jetzt wie erwartet nichts mehr, allerdings sind auch 
PA4 und PA5 betroffen. Diese leuchten nur noch ganz schwach (es liegen 
etwa 2.5V an)

Nächster Test: PortA komplett aus, PORTC komplett an.
DDRA = 0xFF;
  DDRB = 0xFF;
  DDRC = 0xFF;
  DDRD = 0b11100000;  
  
  PORTA = 0x00;
  PORTC = 0xFF; 

Jetzt leuchten ausschließlich die hintern 2 LEDs an PortC (PC2 + PC3). 
PortA scheint aus zu sein, doch das trügt. Denn PA4 und PA5 erhalten 
etwa 2,3V => LEDs leuchten ganz schwach.

Ich habe vorher ein einfaches Lauflicht an PORTA betrieben und auch 
damit festgestellt, dass es irgendwelche Zusammenhänge zw. PA4/PA5 und 
PC2/PC3 geben muss. Die haben immer gleichzeitig geleichtet (PA4 + PC2 
und PA5 + PC3)

Leider weiß ich jetzt nicht mehr weiter. Habt ihr eine Idee? Ist mein 
Controller kaputt?

MfG
Simon

Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe gerade nochmal das Lauflicht getestet:
DDRA = 0xFF;
  DDRB = 0xFF;
  DDRC = 0xFF;
  DDRD = 0b11100000;  
  
  PORTA = 0x01;
  PORTC = 0x00; 

while(1)
  {   
    PORTA = PORTA << 1;
  _delay_ms(75);
}

Zusätzlich zum Problem, dass scheinbar ein Zusammenhang zw. diesen Pins 
besteht, leuchtet mein LCD-Display ein bisschen heller, wenn PA4 bzw. 
PA5 aktiv sind.

Es gibt also auch einen Zusammenhang mit PortB....

Autor: GrobiG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann es sein das deine 12 LEDs einfach zuviel Strom über die Ports des 
avr ziehen? 12 * sagen wir mal 20mA, sowie ich weiss ist bei den meisten 
avrs bei 200mA Schluß. Versuch doch einfach irgendeinen Treiber z.B. 
ULN2803 oder sowas zwischen PortA und die 8 leds zu schalten dann kanste 
n Strom problem schonmal ausschließen.

Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das sind low-current-LEDs mit nur 2mA (also 24mA gesamt)

und wenn ich alle gleichzeitig aktiviere, dann leuchten sie ja... Also 
das Stromproblem schließe ich mal aus.

Autor: GrobiG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm ok, mal probiert es umzudrehen? So dass die LED leuchtet wenn der 
Pin low ist? Kann mich dunkel erinnern das es schon einen Unterschied 
macht. Des weiteren gibts da auch noch pullups aber die dürften 
eigentlich nach deinem code nicht eingeschaltet sein

Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe leider keine Möglichkeit, das umzudrehen. Ich kann mir aber auch 
nicht vorstellen, dass es daran liegt.

Haben denn die oben beschriebenen Pins irgendwelche Zusatzfunktionen, 
die man abschalten kann? Das Datenblatt verwirrt mich an der Stelle...

Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sehr interessant: Ist das gesamte Board inkl. Schaltung stromlos und ich 
gehe mit dem Durchgangsprüfer einmal an A5 und einmal an C0, erhalte ich 
ein Durchgangssignal. Das selbe bei A4 und C1. ALle andere Kombinationen 
bieten keinen Durchgang. Als Widerstand zeigt mir mein Multimeter bei 
Durchgang ca. 2 Ohm an.

Stecke ich das 40polige Kabel (J4) vom Pollinboard ab, erhalte ich 
keinen Durchgang mehr. Somit lässt sich ein Lötfehler auf meinem Adapter 
(fürs Steckbrett) ausschließen. Jetzt teste ich noch, ob ich ebenfalls 
einen Durchgang habe, wenn der Controller vom Board genommen wird.

Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Ergebnis vom Test: Auch ohne Controller auf dem Board gibt es einen 
Kontakt zwischen den Pins. Meine Vermutung: Platine (Pollin-Platine) 
defekt?

Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sooo, das Problem wurde lokalisiert und behoben!!!
Es lag tatsächlich am Pollin-Board. Mein Code war die ganze Zeit korrekt 
(zum Glück)

Ich bin mit dem Multimeter an die Platine und hab die Pins direkt am 
Board nachgemessen. Es gab eine Verbindung zwischen den besagten Pins. 
Also machte ich mich auf die Suche nach dem Fehler und schaute ins 
Handbuch.

Das war der entscheidende Schritt, denn dort sah ich, dass es 2 Jumper 
gibt (JP11 und JP12), die scheinbar eine Verbindung mit den Pins haben. 
Diese Jumper habe ich entfernt und jetzt funktioniert es.

Die Frage ist jetzt: Ist das Verhalten erwünscht oder habe ich einfach 
schlampig gelötet? Die Kontakte sehen eigentlich alle sauber aus.

Es wäre hilfreich, wenn von euch jemand auf seinem Board nachschauen 
könnte :-)

Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat wohl keiner die 2.0er :-)

Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe das gerade mit dem Board von einem Freund getestet. Er hat 
genau das selbe Problem, ohne die 2 Jumper funktioniert es.

Ein Lötfehler kann also ausgeschlossen werden.

Hat jemand eine Idee, ob das von Pollin bewusst so gemacht wurde?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.