www.mikrocontroller.net

Forum: Compiler & IDEs ATmega168 verhält sich mit ISP anders


Autor: SaschaGast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich benutze einen ATmega168. Port C PC4 und PC5 sind mit LEDs 
beschaltet, wobei die LED an PC5 unter bestimmten Umständen (z.B. Fehler 
im Gerät) blinken soll. Die LED's hängen mir 470R in Reihe an 5V und 
werden direkt vom µC-Port getrieben (Port=0->LED leuchtet, Port=1->LED 
leuchtet nicht). Die restlichen Port C's werden als ADC genutzt mit 
4,096V externer Referenz. DDRC hat PC4 und PC5 auf 1 damit Output 
gewählt ist, die restlichen DDRC's lasse ich im Init-Zustand den der µC 
bein hochfahren hat.  Der Quarz ist 8MHz mit 2x10pF. PC6 (Resetleitung) 
hat einen 4k7 Pull-Up. MOSI, MISO und SCK gehen direkt zum µC, ohne 
Pull-Ups.
Die Steuerung für die Blinkerei ist im Timer 1.

Folgendes Problem:

Mit angestecktem ISP-Kabel funktioniert das Blinken der LED an PC5 
bestens. Wenn ich das ISP-Kabel nicht angeschlossen habe, blinkt die LED 
an PC5 nicht.  Ob das Debug-Wire enabled ist oder nicht ändert nichts an 
diesem seltsamen Verhalten. Es muss noch nicht einmal der AVR-Dragon 
USB-seitig angesteckt sein damit die LED blinkt, es reicht das ISP 
anzustecken. Wenn ich bei abgezogenem ISP-Kabel den Zustand herstelle wo 
die LED blinken soll, es aber nicht tut, und dann im Betrieb das 
ISP-Kabel anstecke beginnt die LED zu blinken und blinkt auch weiter 
wenn ich das ISP-Kabel wieder abziehe.

Was könnte der Fehler sein ?

MfG, Sascha

Autor: Lukas K. (carrotindustries)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SaschaGast schrieb:
> Port C

JTAG ausschalten

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Luk4s K. schrieb:
> JTAG ausschalten

Am Mega168?  Da hat Pawlow einen Hund zuviel gehabt.  Und der hat prompt 
gebissen.

Autor: SaschaGast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab im Datenblatt gesucht und finde nichts zum JTAG ... bin einfach 
zu dämlich ... das DebugWire hab ich schon disabled/enabled, hat keinen 
Einfluss .... was ich eben noch gefunden habe ist das ein Pull-Up am SCK 
zu gehen scheint ... was heisst scheint, mit Pull-Up an SCK gehts ... 
habt Ihr eine Erklärung dafür ? Ich freue mich zwar wenn es geht, aber 
allein schon des Lernens wegen möchte ich verstehen warum der Pull-Up 
hilft. Hängt es vielleicht mit den internen Pull-Ups zusammen ?

Autor: SaschaGast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab jetzt den PortB DDRB PB5 (SCK) auf Input geschaltet und PORTB, PB5 
auf 1 gesetzt so dass der interne Pull-Up eingeschaltet ist (?) und nun 
blinkt die LED auch ohne ISP-Kabel. Ich vermute mal im AVR-Dragon ist 
ein Pull-UP an SCK und durch den geht es (muss ich bei Gelegenheit mal 
durchmessen, der Dragon ist im Moment in einem Gehäuse eingebaut). 
Verstehen tue ich das aber leider nicht, schon garnicht wie die 
Beschaltung an PortB Einfluss auf den PortC nehmen kann ?

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu JTAG konntest Du nichts finden, da der ATmega168 keinen hat.  Deshalb 
meine Anspielung auf den Pawlowschen Beißreflex, der Dir die 
JTAG-Antwort eingebracht hat.  (Der kommt vom ATmega32 + Verwandte.)

Was ist sonst an PORTB?  Wird PINB im Programm verwendet und vielleicht 
ein bestimmter Pegel am SCK-Pin angenommen?

Autor: Lukas K. (carrotindustries)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie ist denn der Reset-Pin beschaltet? Der Zustand von SCK sollte dem µC 
eigentlich ziemlich egal sein. Wahrscheinlicher ist, dass der Resetpin 
in der Luft schwebt.

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Reset hat einen internen Pullup und kann deshalb nicht in der Luft 
hängen.

Autor: SaschaGast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
An den PortB Leitungen die zum ISP gehen ist nur MOSI, MISO und SCK 
dran. Alle direkt zum Stecker, ohne Pull-Ups und ohne dass weitere 
Signale geschaltet werden. PB0,PB1 und PB2 steuern Signale meines Geräts 
und an PB6 und PB7 hängt der Quarz. Reset (PC6 an PortC) ist mit 4k7 an 
5V verbunden, der ist auch bestueckt, hab ich grade nochmal geprüft (es 
sei denn der ist kaputt und hochohmig).

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eventuell Kondensatoren am Quarz zu klein, sollten 12 - 22 p sein.

Autor: Micro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
masse.....

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.