mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega32-Programmierung schlägt mit externem Takt fehl?!


Autor: Martin Lawitzky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mein Problem sieht folgendermaßen aus:
Ich habe ein paar Atmega32 16PU. Mithilfe eines Programmiergerätes,
dass wie folgt aussieht, kann ich die MCU auch im jungfräulichen
Zustand programmieren:
http://www.oxed.de/index.php?open=6&sub=30&side=av...

An XTAL1 habe ich nun einen solchen Taktgeber installiert:
http://www.hosonic.com/pdf/frequency/f25.pdf (16.000MHz)

Wenn ich nun die CKSEL-Fuses vom Default-Zustand 0001 auf 0000 ändere,
um den externen Takt zu verwenden funktioniert die Applikation auf der
MCU entsprechend. Nun kann ich die MCU nicht mehr mithilfe des
Programmieradapters programmieren. PonyProg meint "bad device or
device locked".

Da mit zeitweise aber noch ein T51Prog zur Verfügung stand, habe ich
mich davon überzeugen können, dass die Fuses alle korrekt gesetzt
wurden. Die Applikation funktioniert ja auch. Nur das Programmieren via
ISP funktioniert dann nicht mehr.
Wenn ich mit dem T51Prog die Fuses zurücksetze, geht das Spiel wieder
von vorne los.

Wo kann das Problem denn liegen?
Meine Schaltung ist denkbar einfach:

Programmer an MISO, MOSI, SCK, +5V, GND
AVR VCC,AVCC an +5V, GND und GND an 0V
HOSONIC an XTAL1
10k Pull-up zwischen Reset und +5V
100nF jeweils zwischen VCC und GNC am AVR, zwischen Reset und GND und
zwischen +5V und GND an der Programmer-Buchse, sowie einmal zwischen +
und - des HOSONIC.
ein 22µF Elko zwischen +5V und GND.
überall einigermaßen kurze Leitungen verwendet, also 10-20mm.

An der Reset-Leitung liegt es nicht. Wenn ich die Fest auf Masse
verbinde, erhalte ich den gleichen Effekt.

Es muss also irgendeinen Grund geben, weshalb zwar die Applikation mit
dem 16MHz-Takt funktioniert, aber das ISP nicht.
Ich habe 2 baugleiche Taktgeber getestet, daran liegt es nicht.

Hat irgendjemand eine Idee?

Vielen Dank!

Gruß,

Martin

Autor: Profi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmmm,
wie lange ist das Programmierkabel?
versuche mal:
 - den R1 (100k) an MISO zu verkleinern
 - den 100nF am Reset auf 10 nF zu verkleiner oder wegzulassen.
 - bei den Leitungen auf der Treiberseite 10..68 Ohm serielle
Dämpfungswiderstände zum Verhindern von Ringing einzufügen

Autor: Martin Lawitzky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Profi,

vielen Dank für die Tips.
Also das Kabel zwischen Parallelport und Programmer ist ca. 1m Lang,
der Programmer steckt direkt am MCU-Board, also ca. 3-5cm.

Die 3 Tips werde ich mal ausprobieren. Also einen Kondensator zwischen
Reset und Masse brauche ich, weil sonst funktioniert das Programmieren
nichtmal mehr mit dem internen Takt (Glitch). Aber ich werden den auf
jeden Fall mal verkleinern.

Was würdest du für den MISO-R1 vorschlagen? 10k?

Wo überall soll ich die Dämpfungswiderstände unterbringen?

Würdest du mir den Gefallen tun und mir noch kurz Kommentieren, was die
Vorschläge bewirken sollen? Ich würde gerne verstehen, was ich tue. :)

Vor allem würde mich interessieren, was sich für den Programmiervorgang
ändert, wenn der externe Taktgeber verwendet wird. Das Programmieren
funktioniert ja im Prinzip, der Taktgeber ja auch (Software läuft).
Also wo kann denn das Problem bestehen?
Hat der Taktgeber möglicherweise Rückwirkungen auf meine 5V oder so?

Vielen Dank für die Unterstützung!!

Gruß,

Martin

Autor: Martin Lawitzky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achja, zu dem Kondensator am Reset: Der dürfte ja keine Rolle spielen,
da das Programmieren auch fehlschlägt, wenn ich manuell den Resetpin
auf Masse verbinde. (Schalter)

Autor: Profi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ehrlich gesagt sind es nur Vermutungen:
Ein 100nF direkt am Ausgang eines ICs ruft einen hohen Strom beim
Umschalten hervor, der alles mögliche bewirken kann.

Ein R zwischen einem Ausgang und einer Leitung begrenzt den Umladestrom
der Leitungskapazität, welcher zusammen mit der Leitungsinduktivität ein
Überschwingen (Ringing) verursacht.
Verwende ich sehr oft, außerdem schützt er den Ausgang im
Kurzschlussfalle.

Kannst Du versuchen, den Adapter direkt am PC einzustecken?

Wenn der µC mit internem Takt läuft, ist er langsamer.

10k ist schonmal gut. Ich weiß nicht, ob der R eine PullUp-Funktion hat
oder nur, um die Leitung auf definierten Pegel zu legen, falls nichts
angeschlossen ist.

Autor: Martin Lawitzky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke! Das war der entscheidende Tip:

Kannst Du versuchen, den Adapter direkt am PC einzustecken?

Ja, und dann geht es auch.
Ich muss sagen, ich bin erstaunt, dass ein 1m langes Kabel zwischen LPT
und Programmer so drastische Auswirkungen hat.
Und wieso funktioniert es, wenn man ohne externen Takt zugreift?
Ist die Datenrate mit externem Takt auch höher?

Vielen vielen Dank!

Gruß,

Martin

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

dafür gibt es mehrere Gründe: Kabelqualität zu schlecht, speziell
irgendwelche dünnen Strippen aus der Kramkiste
Kabel nicht voll beschaltet, nicht jede Druckerverlängerung verlängert
wirklich alle Leitungen 1:1
Rechner mit ungünstigem Verhalten am Parallelport, je neuer, je
kritischer ist meine Erfahrung

Ja, die Datenrate ist offenbar höher, wenn der AVR-Takt höher ist.
Ich habe mit dem STK200-Dongle (das ist Deine Schaltung) auch schon 2m
1:1 dazwischen gehabt ohne Probleme, allerdings ein zeimlich dickes
offenbar gut abgeschirmtes Kabel. Ich kenne aber auch Deinen Effekt.
ISP-Kabel hatte ich bis 1m Flachbandkabel noch keine Probleme, wenn es
wirklich unbedingt länger sein soll, als Parallelport-Verlängerung auch
Flachbandkabel nehmen und Stecker und Buchse anquetschen.

Gruß aus Berlin
Michael

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.