Labortagebuch November 2009

 Elektronik-Labor  Notizen  Projekte  Labortagebuch

9.11.09: ISP-Programmierung und Leitungs-Übersprechen

Um das Pingpong-Spiel bequem programmieren zu können sollte ein einfacher ISP-Adapter mit passender Software für die RS232 entwickelt werden. Zunächst bin ich vom Lernpaket Mikrocontroller ausgegangen. Ein paar Änderungen in der Software, das passende Kabel, damit sollte es gehen. Aber die Entwicklung war schwieriger als gedacht. Controller wie Tiny13 und Tiny25 konnte ich programmieren, aber im Mega8 kam immer nur Müll an, wie sich beim Auslesen mit dem STK500 zeigte. Tagelang rumgetestet, immer dasselbe Ergebnis.

Also mal ganz anders: Das ES-M32 von AK Modul-Bus kann als Programmiergerät verwendet werden, wenn man den Mega32 aus der Fassung nimmt. Die Programmiersoftware verwendet denselben Algorithmus, allerdings über USB und den BitBang-Modus des FT232R. Also wieder nur eine kleine Änderung für den Mega8, ISP-Kabel ans PingPong und ein Test: Es funktionierte sofort völlig problemlos. Damit war ein Softwarefehler beim ersten Versuch praktisch ausgeschlossen.

Grübel, grübel, was hat das ES-M32, das die Platine zum Lernpaket Mikrocontroller nicht hat? Vielleicht irgendwas mit der Geschwindigkeit? Den Tiny13 habe ich bei 1,2 MHz getestet, den Mega8 aber bei 8 MHz. Also noch ein Versuch: Der Mega8 wurde mit veränderten Fuse-Bits mit 1 MHz getaktet. Dann ein Test mit der Platine aus dem Lernpakt Mikrocontroller: Funktioniert problemlos!

Und dann hat es Klick gemacht. Das zu lange Kabel und die hochohmige Ansteuerung der ISP-Leitungen sind schuld! Das hätte ich auch gleich drauf kommen können: SCK und MOSI habe ich über 100 k angesteuert. MISO allerdings ist niederohmig und liefert als Rückantwort des Controllers Signale mit steilen Flanken. Damit kommen natürlich über die Kabelkapazitäten Impulse auf die anderen Leitungen. Zufällig lag MISO bei meinem Aufbau direkt eben SCK. Der Mikrocontroller sieht damit zusätzliche Taktimpulse und alles versinkt im Chaos. Außer wenn er langsam getaktet ist, dann übersieht er die Störimpulse.

Also Kabel kürzer und Widerstände kleiner, dann klappt's auch mit dem Mega8! Jetzt muss ich nur noch die Software rund machen, damit möglichst keiner sich versehentlich den Controller abschießen kann. Aus demselben Grund wird eine kleine Platine entwickelt, die dann im ELO-Shop angeboten werden soll. Wer also noch kein Programmiergerät hat, findet dann hier den leichten Einstieg.

 


13.11.09: Nachtrag zum Thema ISP, von Ralf Beesner

Nach meiner Erfahrung tritt der Effekt auch beim LP Microcontroller gelegentlich auf, wenn man den Attiny 13 mit 9,6 MHz statt 1,2 MHz flasht. Ich hatte mir mit LPmikroISP.exe zwei oder drei Attiny13 verfused und sie mit einem anderen ISP- Programmer (SP12) auch nicht wieder zum Leben erwecken können. Ich schob es damals auf die serielle Schnittstelle meines Notebooks, weil die nur so gerade eben +- 5V ausspuckt. Vielleicht ist es sinnvoll, darauf hinzuweisen, dass nicht alle seriellen Schnittstellen für die sichere Programmierung mit 9,6 Mhz geeignet sind.


 Elektronik-Labor  Notizen  Projekte  Labortagebuch