Forum: Mikrocontroller und Digitale Elektronik ISP Probleme mit Elektor-Flashboard und 89S8253


von Bernd W. (berndnw18)


Lesenswert?

Hallo,
Ich habe mir das Buch "Basisbuch Mikrocontroller" von Burkhard Kainka 
zugelegt (Basiert auf einem Elektor-Artikel aus 2001 od 2002 vom selben 
Autor) und das darin vorgestellte Elektor-Flashboard für 89S8252 
nachgebaut. Nun habe ich, da es keine 8252 mehr gibt, den Nachfolger 
89S8253 reingetan.
Das sollte problemlos gehen, siehe
http://www.b-kainka.de/basismi.htm

Nur funktionieren tut's leider nicht. Verwendetes Programm für ISP ist 
ATMELISP Ver.20050521 von Ulrich Bangert (DF6JB).
Zuerst ging nichts (0xFF jedes zweite Byte). Dann habe ich mit den 
Timings gespielt (Clockdelay 0.01ms, Delay after Byte 6ms) und einmal 
ein 15 Byte Programm laden können. Danach ein großes probiert (Basic52): 
ab ca Adr. 0x200 (variierend, mal erst ab 0x2ff, dann wieder ab der 2ten 
Zeile im Editor) statt der richtigen Werte einfach nur aufsteigende 
Werte (0x00, 0x01, 0x02 usw) das ganze wiederholend bis zum 
Speicherende.
Irgendwann kam der Zeitpunkt, wo nix mehr ging (auch nicht das 
miniprogramm) und nur noch 0xFF ausgelesen wurde. Also, neuen Chip rein 
(habe vorsorglich 5 gekauft). Das ganze spiel von vorne: irgendwann 
streikt der Chip: 0xFF!
->Speicheroszi her, Messung: Signal absolut sauber, schöner Abstand 
Datenflanke(MOSI, P1.5) zu Taktflanke(SCK, P1.7). RST sauber und 
rechtzeitig (100ms) vor ersten Datenbits auf VCC.
Trotzdem, wer weiss schon: -> hardware auf steckbrett nachgebaut (mit 
frischen ICs)-> dasselbe Problem, nur mehr Oberwellen (ca. 0,8Vpp bei 
Clockfreq) auf den Signalen als bei der gedruckten Schaltung. 
Kunststück, bei fliegenden Leitungen...
Habe über einen Protokollwechsel des ISP-Algorythmus von 8252 zu 8253 
gelesen, weiss aber nicht, ob ich das glauben soll, und wenn ja, ob Hr. 
Bangert das im Programm berücksichtigt hat.
Im obigen Link wird behauptet, den 53er erfolgreich getestet zu haben; 
hier wird von Protokollwechsel gesprochen:
Beitrag "Re: Probleme mit Elektor-Flash-Board"

Wäre super, wenn U. Bangert hier lesen würde und sich dazu äußern 
könnte...
PS die mit dem Basiskurs "mitgelieferten" Mikroflash.exe (neue Ver) und 
Mikroflash53 funktionieren auch nicht.
System XPpro, alle updates, Athlon X2 3Ghz, Com 1 nativ (kein 
USBconvertersch**ßzeug)

Hoffe, jemand kann helfen; wäre schade die investierte Zeit und das Geld 
wegschmeissen zu müssen. Ich baue zur not auch gerne eine zweite platine 
auf (hab eh von allen teilen mehr gekauft, ausser vom 
SRAM<-schweineteuer) und schicke sie einem Experten...
Gruß, Bernd

von Bernd (Gast)


Lesenswert?

ich kenne das board nicht aber ISP software gibts ne ganze menge. stellt 
sich die frage ob die anschlußbelegung stimmt.

läßt sich denn mit der beigefügten software ein 89s8253 auswählen ?

ansonsten schau mal:

http://www.kmitl.ac.th/~kswichit/IspPgm30a/ISP-Pgm30a.html

von Bernd W. (berndnw18)


Lesenswert?

Nun, DIESE ISP-Software arbeitet mit dem Seriellen Port (Com 1 bis 255 
kann man auswählen) UND funktioniert (oder soll funktionieren) mit dem 
Testsystem von Elektor, das ich nachgebaut habe. Ich möchte ja die 
Übungen in dem Buch auch alle durchspielen, von Basic bis zum 
angeschlossenen LCD-Display. Der Vorteil der ISP-Soft, wie es 
beschrieben wird, ist der, dass man wählen kann, welche RS232-Leitung 
mit MISO, MOSI, Clock und RST verbunden sind und ob das Signal jeweils 
invertiert werden soll. Daher kann man die Software theoretisch mit 
vielen Schaltungen verwenden, sofern diese die o.a. Signale auf eine 
DB9F-Buchse geführt sind. Die Software ist ausserdem frei und gibt's 
hier:
http://www.elexs.de/modulbus/mbnews/mbnews02/atmelisp.zip
Ich möchte 2 Dinge vermeiden:
1. aufgeben und mühsam gebaute hardware schrotten
2. CHIP-Jay spielen (chip in progger, proggen, chip in meine Platine, 
Übungsergebnis testen). Da hätte ich mir ja gleich einen Parallelprogger 
gebaut; ist ja Sinn von ISP (IN SYSTEM programming), das Wechseln zu 
vermeiden
Gruß, Bernd

von Rainer (Gast)


Lesenswert?

Hallo Bernd,

hier ist ein Link zu Ulrich Bangert: 
http://www.ulrich-bangert.de/index.html


MfG      Rainer

von schudi (Gast)


Lesenswert?

Hallo Bernd,

ich habe wegen Deines Problems mal wieder mein Elektor-Flashboard 
hervorgekramt um Deine Schwierigkeiten nachzuvollziehen. Ein 
Programmierversuch mit einem AT89S8252 und der neuesten Atmel 
ISP-Software von Ulrich Bangert (Vers 20080303) funktionierte 
problemlos. Dann habe ich einfach den AT89S8252 herausgenommen und den 
AT89S8253 eingesteckt. Auch hier funktionierte die Programmierung und 
das Verify einwandfrei. Es mussten auch keine Änderungen an den XTAL-Cs 
vorgenommen werden. Die serienmäßigen Werte von 22 pF funktionieren 
offensichtlich auch. Deinem ausführlichen und gut recherchierten Bericht 
nach bist Du offensichtlich kein Anfänger mehr und hast dich mit dem 
Problem schon ausführlich auseinandergesetzt. Deshalb will ich auch 
nicht alle üblichen Anfängertipps weitergeben.
Aber Checke mal folgende Dinge ab:

- Ist die Spannungsversorgung korrekt und richtig gepolt?

- Ist unter "Parameter" der richtige Com-Port ausgewählt (Du arbeitest
  ohne USB-RS232 Adapter wie du geschrieben hast)? Aber auch mit
  USB-RS232 Adapter müsste es funktionieren, aber schnarchlangsam, da
  bei USB nur alle 1 ms ein Frame gesendet wird.

- Ist unter "Parameter" der AT89S8253 selektiert?

- Ist unter "Parameter" die richtige Hardware selektiert (DK7JD für
  das Elektor Flash-Board)? Andernfalls stimmen die Leitungszuordnungen
  nicht.

- Als Baud Rate habe ich 9600 eingestellt.

- Achtung! Benutze ein normales (ungekreuztes) Rs232-Kabel, also KEIN
  sog. Nullmodem-Kabel!

- Schließe das Programmierkabel an Comm2 auf dem Flash-Board an.

- Ist im Buffer der gewünschte Hex-File geladen?

- Wenn all diese Punkte beachtet sind, dann sollte mit der Betätigung
  des Redo-Knopfes Dein Programm in den Flash des AT898253 geladen
  werden.

- Ein anschließendes Verify sollte dann auch keine Fehler liefern.

mit freundlichen Grüßen

Lothar

von Bernd W. (berndnw18)


Lesenswert?

Hallo Lothar!

> Deinem ausführlichen und gut recherchierten Bericht
> nach bist Du offensichtlich kein Anfänger mehr und hast dich mit dem
> Problem schon ausführlich auseinandergesetzt.

Danke für die Blumen :)  Ja, ich arbeite (sporadisch) schon länger mit 
8051er Derivaten. Habe sogar ein eigenes Entwicklungssystem auf USB 
Basis entwickelt (Bootloaderprogramm; PSEN auf low bei RST# dann kann 
man über USB proggen). Na ja, entwickelt hat eigentlich der Andreas 
Schibilla, nämlich seinen USB-progger, von ihm habe ich mir das Laden 
per USB gekupfert. Das ganze habe ich dann zu einem modularen 
Entwicklungssystem weiterentwickelt, mit ansteckbaren Modulen für 
analoge Ein- u Ausgänge, digitale E/A, Display, I2C... ach was ich 
schweife ab

Das jetztige Board habe ich gebaut, um die Übungen aus meinem neuen Buch 
komfortabel ohne große Anpassungen durchzuführen - und auch weil ich so 
richtig gerne baue!

> - Ist die Spannungsversorgung korrekt und richtig gepolt?

ja

> - Ist unter "Parameter" der richtige Com-Port ausgewählt (Du arbeitest
>   ohne USB-RS232 Adapter wie du geschrieben hast)? Aber auch mit
>   USB-RS232 Adapter müsste es funktionieren, aber schnarchlangsam, da
>   bei USB nur alle 1 ms ein Frame gesendet wird.
>

ja-sonst würde ich am oszi wohl nichts sehen

> - Ist unter "Parameter" der AT89S8253 selektiert?

jep

> - Ist unter "Parameter" die richtige Hardware selektiert (DK7JD für
>   das Elektor Flash-Board)? Andernfalls stimmen die Leitungszuordnungen
>   nicht.

wie bereits im o-posting beschrieben, liefern MOSI und SCK ein 
sinnvolles Signal - mit DSO am Chip-pin selbst abgegriffen

> - Als Baud Rate habe ich 9600 eingestellt.

wird wurscht sein oder? Hat ja nur mit dem Terminal was zu tun, nix mit 
ISP?!?

> - Achtung! Benutze ein normales (ungekreuztes) Rs232-Kabel, also KEIN
>   sog. Nullmodem-Kabel!

siehe sinnvolles Signal

> - Schließe das Programmierkabel an Comm2 auf dem Flash-Board an.

dto

> - Ist im Buffer der gewünschte Hex-File geladen?

ja - und selbst wenn nicht (0xFF), würde Verify nicht failen, wenn alles 
ok

> - Wenn all diese Punkte beachtet sind, dann sollte mit der Betätigung
>   des Redo-Knopfes Dein Programm in den Flash des AT898253 geladen
>   werden.

leider nein - nur 0xFF wird ausgelesen. Da P1 auch nicht blinkt (eg das 
programm nicht läuft) scheint es nicht nur ein Lesefehler zu sein...

> - Ein anschließendes Verify sollte dann auch keine Fehler liefern.

leider doch. Ich habe jetzt auch - nachdem ich von U. Bangert gelesen 
habe, dass er auf einem P II 400 entwickelt hat - die timings extrem 
hochgesetzt. Nach einer Ewigkeit spannungsgeladenen Wartens leider 
wieder nix. Bin auch schon bei Chip 5 von 5 angelangt -> Schätze, ich 
muss mir nun doch einen Parallelprogger zulegen/bauen - ich habe den 
Verdacht, dass vielleicht wegen zu schnellem ISP der Chip die Befehle 
falsch verstanden hat und daraus Lock-Bits gemacht hat...

trotzdem danke für die Anregungen,
mfG

Bernd

von Rainer (Gast)


Lesenswert?

Hallo Bernd,

hast du die aktuellste Version von ATMELISP installiert?

MfG   Rainer

von Bernd W. (berndnw18)


Lesenswert?

> hast du die aktuellste Version von ATMELISP installiert?

ja, ich habe mich bei dir noch gar nicht für den Link bedankt, Rainer. 
Was ich hiermit nachhole: danke!
Hatte bisher die Version aus 2005, jetzt die 2008er Version. Leider 
bleibt mein Problem unverändert. Ich würde ja auf einen Hardware-Fehler 
tippen, doch ich habe exakt nach den Elektor-Plänen nachgebaut, jedes 
Signal gemessen und auch die Waveforms an den entsprechenden Port-Pins 
passen (Speicheroszi). Dann habe ich, um Fehler restlos auszuschließen, 
das Ganze (natürlich nur die ISP-relevanten Teile der Schaltung, nicht 
auch den Adresslatch und den SRAM) auf einem Steckbrett nachgebaut - 
wieder ohne Erfolg.

Gruß, Bernd

von schudi (Gast)


Lesenswert?

Hallo Bernd,

was Du da auf USB-Basis gemacht hast könnte mich interessieren. 
Programmiere gerade selbst an einem USB-Progger Dongle, weil ich mir 
demnächst ein neues Notebook zulegen will und die haben ja keine LPT 
und/oder RS232-Schnittstelle mehr :-(
Die Oberfläche mache ich in VB6. Das ganze ist schon recht weit 
gediehen, aber eben noch nicht fertig.

Aber jetzt wieder zu Deinem Problem:

> - Ist im Buffer der gewünschte Hex-File geladen?

> ja - und selbst wenn nicht (0xFF), würde Verify nicht failen, wenn alles
> ok

Ja stimmt, die Baud-Rate betrifft nur das Terminal.

> leider doch. Ich habe jetzt auch - nachdem ich von U. Bangert gelesen
> habe, dass er auf einem P II 400 entwickelt hat - die timings extrem
> hochgesetzt. Nach einer Ewigkeit spannungsgeladenen Wartens leider
> wieder nix. Bin auch schon bei Chip 5 von 5 angelangt -> Schätze, ich
> muss mir nun doch einen Parallelprogger zulegen/bauen - ich habe den
> Verdacht, dass vielleicht wegen zu schnellem ISP der Chip die Befehle
> falsch verstanden hat und daraus Lock-Bits gemacht hat...

Wenn es am Timing liegen würde, sollte es auch bei mir nicht gehen, da 
ich ein sehr schnelles System verwende.

Wenn der Chip gelockt wäre, so sollte das auch kein Problem sein, da der 
Schreibschutz durch ein Erase aufgehoben wird. Bei jedem Schreibvorgang 
über Redo wird höchstwahrscheinlich vorher von AtmelISP automatisch ein 
Erase gemacht.
Bei meinem Board gibt es da jedenfalls keine Probleme. Habe es gerade 
eben ausprobiert.

Möglicherweise schwingt der Quarz nicht korrekt. Hast Du einen 
Grundwellenquarz eingebaut, da Oberwellenquarze möglicherweise ein 
Anschwingproblem haben. Ich habe da schon schlechte Erfahrungen gemacht 
und mir deshalb ein paar Standardquarze ausgetestet, von denen ich weiß, 
daß sie funktionieren.

Ansonsten werde ich Dir bei Deinem Problem jetzt kaum mehr weiterhelfen 
können, da mir die Ideen ausgegangen sind. Da bleibt m.E. nur noch ein 
Hardwareproblem als Ursache übrig. Falls Du aber die original Platine 
von Elektor verwendet hast, sollte es da keine Probleme geben. Bei mir 
hatte jedenfalls alles auf Anhieb funktioniert als ich es vor Jahren 
aufgebaut hatte.

mit freundlichen Grüßen

Lothar

von Bernd W. (berndnw18)


Lesenswert?

> Möglicherweise schwingt der Quarz nicht korrekt. Hast Du einen
> Grundwellenquarz eingebaut, da Oberwellenquarze möglicherweise ein
> Anschwingproblem haben. Ich habe da schon schlechte Erfahrungen gemacht
> und mir deshalb ein paar Standardquarze ausgetestet, von denen ich weiß,
> daß sie funktionieren.

Also, mein Quarz ist ein 11,0592 MHZ von Conrad. Hier das Datenblatt:
http://www2.produktinfo.conrad.com/datenblaetter/150000-174999/155238-da-01-en-QUARZ_11_0592MHZ_HC49.pdf

allerdings habe ich 22pF verbaut, wie im Schaltplan von Elektor, und 
nicht 18pF wie im Datenblatt angegeben. Ob es das sein kann?!?

Wäre echt krass, zumal ich von der Ausbildung in Erinnerung habe, dass 
es bei den Anschwingkondensatoren nicht sooo genau ist (nimmst du 33pF, 
des passt scho)

Ich sehe schon wieder Versandkosten auf mich zukommen, wegen ein paar 
Quarzen grr in Ö kriegt man echt nix auf dieser "Insel der Seligen" - 
und Ihr schimpft über eure vermeintliche Servicewüste kopfschüttel
Und wenn ich mir was aus DE schicken lasse kostet das ungeschaut mal 
locker  15 EUR Versand

Gruß Bernd

von Rainer (Gast)


Lesenswert?

Hallo Bernd,

moeglicherweise kannst du mit diesem "Brenner" die Bausteine auf 
Funktion testen.

http://dybkowski.net/elka/ispprog_en.html

von Rainer (Gast)


Lesenswert?

Nachtrag:

Aehnliches projekt http://www.ikalogic.com/isp.php

(was die Bastelkiste hergibt :-)


MfG   Rainer

von schudi (Gast)


Lesenswert?

Hallo Bernd,

das mit dem Quarz ist ein heißes Eisen.
Man kann nicht generell sagen, wieviel pF ein bestimmter Quarz als 
Kapazität braucht, da dieser Wert IMMER im Zusammenhang mit dem 
Schwingkreis zu sehen ist, in dem der Quarz arbeitet. Zu den 22 pF 
kommen ja auch noch die Kapazitäten deiner Steckbrett-Kontakte, bzw. 
Deines Platinenlayouts dazu. Der Quarz sollte ohnehin so dicht als 
möglich an den CPU-Pins montiert werden. Hier erinnere ich mich, daß 
Atmel für den AT89S8252 ca. 22 pF für den Quarz vorgeschlagen hat, die 
auch im Flash-Board verbaut sind. Der AT89S8253 dagegen ist im 
Oszillatorbereich von Atmel geändert worden und benötigt meiner 
Erinnerung nach nur 5 pF mit +-  5 pF Toleranz für einen korrekten 
Betrieb, d.h. du könntest die beiden 22 pF Kondensatoren mal entfernen 
und schauen ob es funktioniert. Bei mir funktioniert es jedenfalls mit 
den eingebauten 22 pF Kondensatoren.

Daß die Bauteilversorgung in Österreich so suboptimal ist, ist natürlich 
bedauerlich. Ich habe jedenfalls das Glück, daß ein sehr gut sortierter 
Elektronikladen in meiner Nähe ansässig ist. Das ist sehr hilfreich, da 
man mal ganz auf die Schnelle das eine oder andere Teil holen kann ;-))

Noch ein Wort zu dem Vorschlag, einen anderen Brenner (z.B. am LPT-Port) 
mit anderer Software zu benutzen. Das ist ein zweischneidiges Schwert, 
denn auch hier berichten andere Forumsteilnehmer von großen Problemen. 
Es gibt hier im Forum Threads dazu. Suche mal nach AT89S8253 hier im 
Forum.

Allerdings habe ich mit dem vorgeschlagenen Programm auch schon 
erfolgreich gearbeit. In diesem Fall müsstest Du aber noch noch einen 
ISP-Anschluß an Dein Flash-Board anfrickeln.

aber wie ich Dir schon geschildert habe, die AtmelISP-Software von 
Ulrich Bangert funktioniert genauso gut.

Grüße

Lothar

von Bernd W. (berndnw18)


Lesenswert?

@ Lothar:

> was Du da auf USB-Basis gemacht hast könnte mich interessieren.
> Programmiere gerade selbst an einem USB-Progger Dongle, weil ich mir
> demnächst ein neues Notebook zulegen will und die haben ja keine LPT
> und/oder RS232-Schnittstelle mehr :-(
> Die Oberfläche mache ich in VB6. Das ganze ist schon recht weit
> gediehen, aber eben noch nicht fertig.

guckst du hier:
http://www.andinet.de/technik/elektronik/usb_programmer/usb_programmer.php
Geniales Projekt, war der Anstoss für mein Modulares Entwicklungssystem 
- meine Mechatronikermeisterarbeit, für die ich eine Auszeichnung und 
bestes Projekt bekommen habe.

Ich denke, es müsste eigentlich keine große Sache sein, die Hardware 
(=anderen ZIF-Sockel verbauen, PIN-Belegung fürs Proggen) und die 
Firmware (Programmieralgorythmus -> Datenblattstudium) anzupassen, da 
die Quellen frei sind.

Ich würde das gerne machen! Willst du mitmachen? Ich bin nämlich nicht 
sooo erfahren in PC-Programmierung (also VB usw; C geht ein wenig, nur 
habe ich noch nie was mit Oberflächen, sprich Windows gemacht)

Gruß, Bernd

von schudi (Gast)


Lesenswert?

Hallo Bernd,

Danke für Dein Mitmachangebot. Ich werde mich mal anhand des Links in 
die Materie einlesen und mich dann über diesen Thread melden.

Was macht Dein Problem? Hast Du neue Erkenntnisse?

Wäre nett, wenn Du bei Erfolg eine Rückmeldung liefern würdest.

Ich persönlich tippe jetzt auf ein Hardware- oder ein Quarzproblem. Bei 
der Softwarebedienung hast Du ja einen Fehler ausgeschlossen, da die 
Signale Deiner Meinung nach beim messen richtig anliegen.

Ich selbst habe mein System nochmal getestet und es funktioniert mit der 
Konfiguration auf DK7JD und der Auswahl des AT89S8253 ohne Probleme und 
ohne Änderung an irgendwelchen Timingeinstellungen.

Grüße, Lothar

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