Forum: Mikrocontroller und Digitale Elektronik Programmieren eines AT89S8252 auf Mac OS


von Stephan K. (skuenstler)


Angehängte Dateien:

Lesenswert?

Hallo,

  vielleicht kann mir jemand helfen. Ich versuche seit 2 Tagen einen 
AT89S8252 Controller mittels eines Mac OS zu programmieren. Leider bis 
jetzt ohne Erfolg.

verwendete Hardware:
- USB-to-Serial-Adapter von Keyspan (Typ USA-19HS)
- Serial-to-ISP-Adapter von AVR (Typ AVR-PG1B)
- AVR-89S8252 Flash Microcontroller Board
Das Flash-Board habe ich ganz leicht abgeändert und die ISP-Verbindungen 
wie im Anhang-File gezeigt, verbunden. Um saubere Pegel zu bekommen, 
habe ich zwei drei Widerstände/Dioden auf dem Flashboard ausgelötet. Die 
Verbindungen ahbe ich mit grossen Zahlen vermerkt und können 
(hoffentlich) wie gesagt im Anhang-File nachgesehen werden. Ich hoffe, 
dabei ist noch nichts falsch...

verwendete Software:
Tag1: Ich habe versucht, das Linux-SW-Tool uisp zu verwenden. Dabei bin 
ich ziemlich weit gekommen. Aber leider bleibt bis zu letzt die Meldung, 
dass die Initialisierung nicht richtig durchläuft.

Tag1:
Ich habe folgendes probiert:

uisp -v -dprog=dasa2 -dserial=/dev/cu.KeySerial1 -dspeed=1200 --erase 
--upload --verify if=test.txt

Dabei kommt dauernd die Fehlermeldung:
"AVR Direct Parallel Access failed after 32 retries.
An error has occurred during the AVR initialization.
 * Target status:
   Vendor Code = 0xff, Part Family = 0xff, Part Number = 0xff
 Check if the programmer is properly connected.
 The wiring may be incorrect or target might be 'damaged'."

Wenn ich bewusst einen Verbindungsfehler provoziere (z.B. eines der 
Kabel ziehen, dann kommt folgende Fehlermeldung:
"AVR Direct Parallel Access failed after 32 retries.
Probably the AVR MCU is not in the RESET state.
Check it out and run me again."

Daran sehe ich, dass zumindest der Target-status irgendwie gelesen 
werden kann. Aber leider funktionniert noch nicht mehr !!1

Frage 1: Weiss jemand Rat zum getanenen von Tag1 ???? Was ist falsch ? 
An was könnte es liegen, dass die uisp-Geschichte nicht funktionniert 
???? Die Hardware scheint zu stimmten oder ist da etwas zu 
berücksichtigen in Zusammenhang mit uisp ???


Tag2:
Ich habe folgendes mit anderer Software probiert:
Und zwar habe ich die SW "Avrdude" installiert/konfiguriert auf meinem 
Mac und dazu das Tool "AVR8-Burn-O-Mat" mit schönem user-interface 
verwendet"

Im Moment hängt es glaube ich noch an den Fuses.

Frage2: Kann mir jemand die Einstellungen im xml-Config-File zum 
Burn-O-Mat geben zum AT89S8252 oder AT89S8253 ??? Ich verstehe nicht, 
wie die Einstellungen der Fuses für den obigen Microcontroller-Typen 
gemacht werden sollten ??? Irgend eine Idee ??


Weiter im Burn-O-Mat habe ich folgendes gemacht:

Ich habe das avrdude.conf File angepasst:
und zwar habe ich den Programmer für dasa2 eingefügt:
# unknown (dasa2 in uisp)
# reset=!txd sck=rts mosi=dtr miso=cts
programmer
  id    = "dasa2";
  desc  = "serial port banging, reset=!txd sck=rts mosi=dtr miso=cts";
  type  = serbb;
  reset = ~3;
  sck   = 7;
  mosi  = 4;
  miso  = 8;
;

Ausserdem fehlte noch die Part-Definition, welche ich wie folgt im 
avrdude.conf-File eingefügt habe:
#------------------------------------------------------------
# AT89S8253
#------------------------------------------------------------
part
    id               = "8253";
    desc             = "AT89S8253";
    chip_erase_delay = 20000;
    pgm_enable       = "1 0 1 0  1 1 0 0    0 1 0 1  0 0 1 1",
                       "x x x x  x x x x    x x x x  x x x x";

    chip_erase       = "1 0 1 0  1 1 0 0    1 0 0 x  x x x x",
                       "x x x x  x x x x    x x x x  x x x x";

    timeout      = 200;
    stabdelay      = 100;
    cmdexedelay      = 25;
    synchloops      = 32;
    bytedelay      = 0;
    pollindex      = 3;
    pollvalue      = 0x53;
    predelay      = 1;
    postdelay      = 1;
    pollmethod      = 0;

    memory "flash"
        size            = 12288;
        paged           = no;
        min_write_delay = 4000;
        max_write_delay = 9000;
        readback_p1     = 0xff;
        readback_p2     = 0xff;
        read            = "  0   0   1   0    0   0   0   0",
                          "  x   x a13 a12  a11 a10  a9  a8",

                          " a7  a6  a5  a4   a3  a2  a1  a0",
                          "  o   o   o   o    o   o   o   o";

        write           = "  0   1   0   0    0   0   0   0",
                          "  x   x a13 a12  a11 a10  a9  a8",
                          " a7  a6  a5  a4   a3  a2  a1  a0",
                          "  i   i   i   i    i   i   i   i";
     mode      = 0x21;
     delay      = 12;
    ;

    memory "signature"
        size            = 2;
        readback_p1     = 0x1E;
        readback_p2     = 0x73;
        read            = "0  0  1  0   1  0  0  0   x  x  x  x   x  x 
x  x",
                          "x  x  1  1   0  0  0 a0   o  o  o  o   o  o 
o  o";
   ;
;


Frage3: Fehlt noch irgend etwas ???? Muss noch eine Anpassung im 
avrdude.conf-File gemacht werden ?? (z.B. Typendefinitionen oder 
sonstiges ??)


Leider kommt beim Benützen des AVR8-Burn-O-Mat immer eine Fehlermeldung 
beim schreiben eines Flash-Files. Und zwar steht folgende Fehlermeldung:
"/Users/stephankorner/Programs/AVR_Microcontroller/avrdude-5.5/avrdude 
-q -u -C 
/Users/stephankorner/Programs/AVR_Microcontroller/avrdude-5.5/avrdude.co 
nf  -p 8253 -P /dev/cu.KeySerial1 -c dasa2 -E noreset,novcc -F -U 
flash:w:/Users/stephankorner/Desktop/test.txt:a
avrdude: WARNING: -E option not supported by this programmer type

avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0xffff
avrdude: Yikes!  Invalid device signature.
avrdude: Expected signature for AT89S8253 is FF FF FF
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be 
performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: AVR device not responding
avrdude: reading input file "/Users/stephankorner/Desktop/test.txt"
avrdude: input file /Users/stephankorner/Desktop/test.txt auto detected 
as invalid format
avrdude: invalid input file format: -1
avrdude: write to file '/Users/stephankorner/Desktop/test.txt' failed

avrdude done.  Thank you."

Frage4: Versteht dies jemand ??? Was ist da zu tun ??? Wie kann ich die 
-E Option ausschalten ??? Kennt sich jemand aus ?


So das wärs fürs erste ;)

Ich bin ziemlich verzweifelt und bin dankbar für jeden brauchbaren Tipp 
wie ich doch noch zum Programmieren meines AT89S8252-Microcontrollers 
mittels eines Mac komme...

Vielen Dank für jegliche Hilfe.

  skuenstler

von Henning (Gast)


Lesenswert?

versuchs mal mit dem avrmacpack 
http://www.obdev.at/products/avrmacpack/index.html hatte es bei mir 
installiert und es funktionierte zu meinem eigenen erstaunen auf anhieb

Grüße Henning

von Henning (Gast)


Lesenswert?

nachtrag: also damit konnte ich die standard makefiles, die unter winavr 
funktionieren problemlos auf dem mac ausführen..

von BerndB (Gast)


Lesenswert?

Hallo,

der ATMEL AT89S8252/53 ist KEIN AVR sondern ein 8051 comp. Controller.
Der 8252 lässt sich mit den gängigen (dummen) AVR Programmieradaptern 
und z.B. Ponnyprog programmieren, aber Programmiersoftware die nur AVR 
Controller unterstütz funktioniert nicht.

Gruß BerndB

von skuenstler (Gast)


Lesenswert?

Danke für Eure Antworten.

  Bei dem Vorschlag von Henning bräuchte ich noch dieses standard 
makefile, welches auf dem winavr funktioniert. Ausserdem bin ich mir 
nach BerndB´s Antwort nun nicht sicher, ob denn AVRMacPack auch mit dem 
AT89S8252/53 funktioniert, da es ja scheinbar kein AVR uC ist, sondern 
ein 8051er.

Henning hast Du mir dazu vielleicht eine Antwort ??

Und zu der Antwort von BerndB: Ich habe das Program Ponyprog 
heruntergeladen. Aber habe nun keine Ahnung wie ich das Ding unter Mac 
OS zum laufen bringen kann. Hast Du vielleicht irgend einen Input dazu ?

Vielen Dank für die Hilfe !!

Gruss

von BerndB (Gast)


Lesenswert?

Hallo,

auf der Seite http://www.lancos.com/ppwin95.html gibt es eine Version 
für LINUX und sogar den Quellcode zum download.

Ich kann dir bei MAC OS Sachen sonst leider nicht weiterhelfen.


Gruß BerndB.

von Mano W. (Firma: ---) (manow)


Lesenswert?

Hallo Stephan,

da ich auch unter OS X meine AVRs programmieren, habe ich mich mal kurz 
mit deinem Problem beschäftigt. Mit uisp sollte es eigentlich 
funktionieren, nur was ich komisch fand, dass einmal von AT89S8252 die 
rede ist und dann er nicht mehr auftaucht... (kann man bequem über 
Macports installieren).

In der avrdude.conf habe ich auch nix gefunden, dafür soll ponyprog ihn 
unterstützten,aber auf die schnelle  habe ich keine Version von PonyProg 
für OS X gefunden (gegoogelt und bei Macports).

"Vendor Code = 0xff, Part Family = 0xff, Part Number = 0xff" Sowas 
ähnliches hatte ich bei einen ATmega8 auch schon mal. Signatur und so 
war immer ff... Über die High-Voltage Programming Method (in AVR Studio 
dann) funktionierte das Flashen wieder. Da habe ich wohl die Fuse-Bits 
verstellt und mich ausgesperrt. Seltsamerweise konnte ich es aber nicht 
mehr richten. Darum, funktioniert das Flashen unter Windows eigentlich?

viel Erfolg!!!

mano

von Oliver (Gast)


Lesenswert?

Hallo Stephan,

ich habe genau das gleiche Problem, allerdings mit einem 
USB2Serial-Adapter von Conrad-Elektronik und einem ATMEGA8 auf einem 
OLIMEX-Programmer. Ich habe mir das Verbindungskabel zwischen serieller 
Schnittstelle und Pogrammer selber gebaut.
Das Problem scheint mir zu sein, dass der Reset-Pin nicht LOW gelegt 
wird, nur dann reagiert wohl der AVR auf Programmierversuche. Woran das 
nun liegt, kann ich nicht sagen. Ich bin mit dem Debugger durch avrdude 
durchgesteppt, ein entsprechender ioctl()-Aufruf zum HIGH-setzen von TxD 
(Pin 3, wird mit Kollektor-Schaltung zu LOW am Reset-Pin) existiert, 
scheint aber nicht zu funktionieren.

Ein grundsätzliches Problem scheint es ja nicht zu sein, es finden sich 
im Netz genug Hinweise, dass es mit USB2Serial-Adaptern klappt 
(insbesondere dem von Dir erwähnten Keyspan-Adapter), auch mit avrdude 
und anderer Software.

Hat noch jemand Hinweise?

Als "last resort": Gibt es einen bezahlbaren AVR-Programmer mit 
USB-Schnittstelle für die ISP-Programmierung, der mit einem iMac 
funktioniert?

Gruß
Oliver

von Mano W. (Firma: ---) (manow)


Lesenswert?

Welchen Programmer hast Du den von Olimex? Den AVR-PG1 vielleicht?

von Oliver (Gast)


Lesenswert?

Hallo Mano Wee,

nein, den AVR-PG1 habe ich nicht, ich habe das AVR-P28. Ok, das war 
nicht so präzise ausgedrückt, es handelt sich dabei natürlich um ein 
Prototypen-Board. Den Schaltplan vom Verbindungskabel habe ich von der 
Homepage von Olimex. Ich sehe grade, es ist der vom AVR-PG1.

Gruß
Oliver

von Mano W. (Firma: ---) (manow)


Lesenswert?

Also Du hast den wo "connects to PC via RS232 port (note it will not 
work with USB-RS232 converters!)" steht, aber das hast Du ja schon 
selber bemerkt.

von P. S. (Gast)


Lesenswert?

Oliver wrote:

> Als "last resort": Gibt es einen bezahlbaren AVR-Programmer mit
> USB-Schnittstelle für die ISP-Programmierung, der mit einem iMac
> funktioniert?

Die verschiedenen USB-ASP funktionieren sehr gut und sehr schnell.

Das Problem hier ist IMO, dass mal wieder versucht wird mehrere 
problematische Komponenten gleichzeitig zum Laufen zu bekommen. 
Exotische Platform, exotischer Programmer, exotische Verkabelung 
(USB-Adapter...), exotisches Board und alles auch noch selbst geloetet.

Zum Debuggen am Besten erstmal auf einen "alten" PC mit echter serieller 
Schnittstelle wechseln, Standardsoftware hernehmen und am Besten auch 
einen gaengigen Programmer. Wenn das alles laeuft und das Board sicher 
funktioniert, kann man mit den anderen Experimenten weiter machen...

von Oliver (Gast)


Lesenswert?

Hallo Peter,

naja, ganz sooooo exotisch ist der Ansatz mit dem Mac nicht, immerhin 
gibt es einige Erfolgsstories im Internet zu finden. Letzendlich hat 
mich das veranlasst, auch diesen Weg zu gehen. Anyway, es sieht nicht so 
aus, als meine Geschichte eine Erfolgsstory wird.

Kann noch jemand einen konkreten Hinweis auf einen USB-Programmer geben, 
den er erfolgreich am Mac einsetzt? Und mit welcher Software?

Gruß
Oliver

von P. S. (Gast)


Lesenswert?

Oliver wrote:

> naja, ganz sooooo exotisch ist der Ansatz mit dem Mac nicht, immerhin
> gibt es einige Erfolgsstories im Internet zu finden.

Deswegen bleibt es dennoch ein Exot, bei dem du damit rechnen musst, 
dass dein neues Spielzeug (was auch immer es gerade ist) nicht damit 
funktioniert, obwohl alle deine Kollegen total zufrieden damit sind und 
keine Probleme haben... als Mac-User sind wir hier wirklich eine kleine 
Minderheit.

> Letzendlich hat mich das veranlasst, auch diesen Weg zu gehen. Anyway, es
> sieht nicht so aus, als meine Geschichte eine Erfolgsstory wird.

Vieleicht nicht in allen Details deines Loesungsansatzes. Wie gesagt, es 
gibt  da im Moment zu viele Unbekannte. Zu guter Letzt ist ja 
anscheinend auch noch dein Controller ein Exot - mir ist aus diesem 
Thread zumindest nicht klar geworden, welche der Tools ihn nun korrekt 
unterstuetzen und welche nicht.

> Kann noch jemand einen konkreten Hinweis auf einen USB-Programmer geben,
> den er erfolgreich am Mac einsetzt? Und mit welcher Software?

Wie gesagt, der usbasp funktioniert sehr gut. Gibt's billig von Jemandem 
hier im Forum (sorry, vergesse den Link auf deine Seite immer) oder von 
eBay aus Thailand oder Hong Kong.

Laeuft bei mir tadellos mit avrdude. Ich muss aber einschraenken, dass 
ich mir avrdude mal selbst uebersetzt habe - ob das mit dem MacPack so 
einfach geht, weiss ich nicht und ob der usbasp deinen Controller 
untertuetzt, auch nicht - aber der Atmega8 sollte eigentlich kein 
Problem sein. Ich flashe damit Atmega2560 und Atmega2561 (uebrigens 
irgendwie auch Exoten - die waren in den ersten 2 Standardinstallationen 
von avrdude nicht drin...)

Ich habe uebrigens frueher mit einem Avr910 geflasht, ueber verschiedene 
USB-seriell-Adapter, das ging auch gut - aber grauenhaft langsam.

von Oliver H. (Firma: --) (oliverhb)


Lesenswert?

Um die Sache (hoffentlich) abzuschliessen: Ich habe mir einen usbprog 
von embedded-projects gekauft (mittlerweile habe ich gesehen, dass es 
das Original von ATMEL zum gleichen Preis gibt). Der tat's an meinem Mac 
auch erst nicht, gleiches Verhalten wie mit dem seriellen Adapter, der 
AVR wurde nicht erkannt. Aber es gibt eine Lösung hierfür:

1) Der usbprog muss direkt am MAC eingestöpselt sein, nicht über einen 
Hub - auch nicht den am MAC-Keyboard

2) Bei avrdude muss "-B 10" mit auf der Kommandozeile stehen, hiermit 
wird die Länge der Datenpulse eingestellt (o.s.ä.)

Nummer 2) habe ich noch nicht mit dem SUB2Serial-Adapter ausprobiert, 
das dürfte doch recht interessant sein, insbesondere für Mano Wee :-)

Schöne Grüße
Oliver

von Udo (Gast)


Lesenswert?

Hi,

auch ich programmiere AVRs mit einem Mac.
Als Programmierer habe ich problemlos
- STK 500 mit Usb-Serial-Adapter
- Selbstgebauter Usbasp
- STK 600 (braucht ein sehr aktuelles avrdude aus dem avrdude cvs)
benutzt.

Der einzige problematische Adapter ist bei
mir der usbprog gewesen, es gibt bei mir genau
eine Firmware (nicht die aktuelle), mit der es
an meinem Mac funktioniert.

Das mit dem usbprog direkt am Mac kann ich auch
bestätigen, sonst geht er bei mir überhaupt nicht.
-B 10 habe ich allerdings noch nie gebraucht (mit keinem
Programmierer), hängt vielleicht von der Taktfrequenz
des zu programmierenden Prozessors ab.

ciao
   Udo

von Mano W. (Firma: ---) (manow)


Lesenswert?

Oliver H. wrote:
> ...
> das dürfte doch recht interessant sein, insbesondere für Mano Wee :-)
> ...

Mano Wee hat leider ein anderes Problem. Sein AVR Template für Xcode 
funktioniert zwar, aber noch nicht alles. Beim drücken vom Run-Buttom 
soll geflasht werden, aber das muss man immer selber einstellen. Gewisse 
Sachen beim Neu-Anlegen sollen ersetzt werden (z.B. aktuelles Datum, 
Namen vom Ersteller, Name vom Projekt ...), das funktioniert auch noch 
nicht.

von Ruedi H. (Firma: prim) (ruediheimlicher)


Lesenswert?

Hi
Ich habe den SMD-Programmer von Tuxgraphics. Der hat einen 
USB-Anschluss.
http://shop.tuxgraphics.org/electronic/index-avr-programmer.html
Das Programmieren des AtmegaXX funktioniert problemlos mit OSX, auch 
10.5.6 und Xcode 3.
Tuxgraphics hat auch andere Dinge im Angebot, ua. einen einfach an 
eigene Wünsche anzupassenden Webserver. Lieferung aus Canada ist 
schnell, und die Beratung ist super.
Es gibt zu Xcode auch Templates, die ein Makefile enthalten, so dass der 
Flash-Vorgang mit dem Build-Button gestartet werden kann.
Das Ganze lässt sich auch vom Terminal aus bedienen. Setzen der Fuses 
geht ebenso.

von Mano W. (Firma: ---) (manow)


Lesenswert?

Ruedi Heimlicher schrieb:
>
> Es gibt zu Xcode auch Templates, die ein Makefile enthalten, so dass der
> Flash-Vorgang mit dem Build-Button gestartet werden kann.

Und wer es noch etwas bequemer haben möchte, der kann Xcode so 
einrichten dass bei "Build" (Hammer) der Code übersetzt wird und bei 
"Run" (grüner Startknopf) geflasht wird.

Für den Flash-Button schreibt man sich ein zweizeiler-Script, dass 
nichts anders macht als ausser "make flash" und fügt dieses Script in 
Xcode als "add->new custom executable..." ein.

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.