IAR Embedded Workbench

Hallo!

Ich möchte einen 8051 uC (AT89C51SND1 von Atmel) programmieren. Dazu verwende ich Flip von Atmel und den IAR Embedded Workbench. Das Flip möchte ein hex File haben. Nun kann ich im Embedded Workbench verschiedene File Formate auswählen: output format: nec, mpds-i, msd-i, msd-m, msd-t, nec2, tektronix, zax-i

Alle diese Formate heißten *.hex. Aber welches von denen muss ich jetzt verwenden?

Noch eine zweite Frage bezüglich des SND1. Wie aktiviere ich hier das SPI als Master?

Ich habe es auf folgende Art und weise versucht, es gibt jedoch nichts aus: SPCON = 0xFE; Also SPR1 und SPR2 auf 1, SPR0 auf 0 -> Divide Faktor 128 SPEN auf 1 -> SPI Enable SSDIS auf 1 -> SS Pin disablen MSTR auf 1 -> Master CPOL und CPHA auf 1

Anschließend schreibe ich Daten ins SPDAT Register. Leider kann ich mit dem Oszi nichts an CLK des SPI messen. Habe ich was vergessen?

Wenn mir jemand bei den Fragen vielleicht weiterhelfen könnte wäre ich sehr dankbar!

Viele Grüße Steffen

Reply to
Steffen
Loading thread data ...

Steffen schrieb:

Ist irgendwas dabei das intel im Namen trägt?

Habe IAR leider nur für andere uCs am laufen.

Gerald

Reply to
Gerald Oppen

Flip kommt mit Intel-Hex klar. Schau mal, ob eines der Formate so aussieht:

:nnaaaaaadddd..ddcc

Also Textdatei, alles Hex-Ziffern, nn=Anzahl Bytes in Zeile, aaaaaa=Adresse, dd = Datenbytes, cc=Prüfsumme. Das sollte dann funktionieren.

Steng nach Datenblatt müsste es gehen.

Wie schreibst Du? Ein Byte? Das ist schwierig zu sehen am Oszi. Viele Bytes? Wartest Du dann auch immer, bis das vorige Byte rausgeschoben wurde? Wenn nicht, ist nicht so genau klar, was CLK machen soll, vermutlich ändert sich der Pegel dann nicht, wenn Du schneller neue Bytes nach SPDAT schreibst als ein CLK-Zyklus dauern sollte...

Gruß

Tassilo

--
µC Assembler-IDE für AVR, 8051, Z80, 8048 =>
http://www.theeg.de/aside/index.html
================================================================
de.sci.electronics FAQ: http://dse-faq.elektronik-kompendium.de/
Reply to
Tassilo Heeg

Als Format denke ich solltest du intel-standard auswählen.

hth, Thomas

Reply to
Thomas Mistelbauer

Hallo!

OK, werde ich mal schauen - ich melde mich dann wieder!

Das dachte ich auch

Ich schreibe ein Byte, dann warte ich mit einer while Schleife, bis das SPIF gesetzt ist und sende dann das Byte wieder. Also sollte eigentlich eine Endlosschleife mit immer dem selben Byte rauskommen. Ich dachte, es liegt evtl. daran, dass das Output Format nicht passt ... Viele Grüße

Steffen

Reply to
Steffen

Hallo!

Das hat als Ausgabeformat *.a03 - Ich probies jetzt einfach mal mit umbenennen.

Viele Grüße Steffen

Reply to
Steffen

Hm - es geht leider immer noch nicht. Hier mal mein Programmcode:

void main (void) { // set Ports P0 = 0x00; P1 = 0x00; P2 = 0x00; P3 = 0x00; P4 = 0x00; P5 = 0x00;

// SPI Config SPCON = 0xFE; // set SPR2, SPEN, SSDIS, MSTR, CPOL, CPHA, SPR1

do { SPDAT = 0xAA; do { } while (SPSTA

Reply to
Steffen

Hallo!

Ja - es gibt Intel Standard. Damit habe ich es jetzt versucht. Leider ohne Erfolg. Es dürfte aber wohl an etwas anderem liegen (nicht am Fileformat).

Danke für deine Hilfe! Steffen

Reply to
Steffen

Da müsste SPSTA < 128 stehen.

Das File ist ok, habs mal durch nen Disassembler gejagt, Format paßt und der Compiler macht auch was er soll (wenn auch ziemlich umständlich, jedes Paar { } wird ein Unterprogramm, Stack sparen ist wohl out...)

Das ist in der Tat merkwürdig, denn auch ohne Init sollte da high anliegen (wenn SPI disabled ist). Nach dem Programmieren mit FLIP, startest Du das Programm auch, entweder per Flip oder durch /ISP=high und RESET?

Gruß

Tassilo

--
µC Assembler-IDE für AVR, 8051, Z80, 8048 =>
http://www.theeg.de/aside/index.html
================================================================
de.sci.electronics FAQ: http://dse-faq.elektronik-kompendium.de/
Reply to
Tassilo Heeg

Hallo! Danke für deine Antwort!

Ja - das war einer der beiden Fehler. Ich habe den anderen auch noch gefunden. Ich setze Standardmäßig alle Ports auf 0 - beim 8051 muss man sie jedoch auf 1 setzen, wenn man die Special Functions nutzen will.

Jetzt geht wenigstens die SPI Ausgabe. Fehlt nur noch das Display. Aber das kriege ich schon noch geregelt, wenn ich dann mal mein Digital Oszi nächte Woche kriege ;-)

Schaut so aus :) Danke für die Mühe, die du dir gemacht hast!

ISP high und reset

Grüße Steffen

Reply to
Steffen

Oh je, da hatte ich wohl Tomaten auf den Augen, hätte mir auffallen können. Na Hauptsache es klappt jetzt bei Dir!!

Gruß

Tassilo

--
µC Assembler-IDE für AVR, 8051, Z80, 8048 =>
http://www.theeg.de/aside/index.html
================================================================
de.sci.electronics FAQ: http://dse-faq.elektronik-kompendium.de/
Reply to
Tassilo Heeg

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.