Moin, ich probiere mich gerade an der Programmierung eines 80c51 mit ext. ROM. Das Programm welches ich dafür benutze (benutzen muss) ist Keil. Kann mir jemand sagen wie ich damit eine Datei erstellen kann die ich direkt aufs ROM flashen kann? (was nimmt man da? .bin .hex .asm?) Brauche ich dafür ein weiteres Programm oder kann ich das auch mit Keil bewerkstelligen? Ich habe bisher nichts sinnvolles im Netz gefunden. ( immer nur simulationen und usw...) MfG Olaf
Die Frage ist nicht .bin, .hex oder .asm, sondern was für ein 8051 Derivat und was für eine Flash-Programmer Hardware.
Zum programmieren von externem ROM braucht man normaleweise einen Eprombrenner. Die KEIL-IDE bietet da keine Unterstützung. Wirst wohl einen Galep-Programmer brauchen (schweineteuer, hehe) oder was billiges für die LPT-Schnittstelle selber basteln müssen.
Olaf E. schrieb: > Moin, > > ich probiere mich gerade an der Programmierung eines 80c51 mit ext. ROM. > Das Programm welches ich dafür benutze (benutzen muss) ist Keil. > > Kann mir jemand sagen wie ich damit eine Datei erstellen kann die ich > direkt aufs ROM flashen kann? (was nimmt man da? .bin .hex .asm?) Also ein Hex-File sollte mit Keil leicht und ohne besondere Umstände gehen. Auf das externe ROM kann man in der Regel gar nicht flashen, denn es ist meistens EPROM. Dafür braucht man einen Programmer, mit dem man das Programm außerhalb der Platine in diesen Stein brennen kann. > Brauche ich dafür ein weiteres Programm oder kann ich das auch mit Keil > bewerkstelligen? Ich habe bisher nichts sinnvolles im Netz gefunden. > ( immer nur simulationen und usw...) Diese Boards haben aber oft eine Von-Neumann-Schaltung des Speichers (8051 ist von Haus aus Harvard), ein Monitor-ROM mit einem kleinen Betriebssystem oder Downloader, und viel RAM, und laden Testprogramme ins RAM, was dann ROM simuliert. Wie heißt denn das Board, und gibt es einen Schaltplan?
Derivat: 80c51 original, ROM: 28c64 Flasher: MiniPro (flasht ohne rücksicht auf verluste oder Dateiformate einfach aufs ROM)
28c64 ist kein Flash-ROM, sondern ein EEPROM. Dein "MiniPro" flasht daher auch nicht. Wenn das Ding "ohne rücksicht auf verluste oder Dateiformate" programmiert, dann ist anzunehmen, daß es jede Datei wie eine Binärdatei interpretiert. Also wirst Du Deinen Compiler dazu bringen müssen, eine solche zu erzeugen. Geht das nicht, lass ihn 'ne Hex-Datei erzeugen, und konvertiere die mit einem Tool à la HexToBin.
µC: 80c51 RAM: 2x 62c64 ROM: 1x 28c64 in einem Textool Sockel PIO: 8255 Harvard Architektur selbst gelötet Ich möchte einfach nur ein Assembler-Programm schreiben, aufs EEPROM brutzeln und in die Schaltung einsetzen. vielen Dank für die schnellen Antworten!
wie erzeuge ich mit keil den eine .HEX datei? Reicht doch sicherlich nicht nur die Dateiendung beim Speichern zu ändern oder?
Kann es sein dass in dem EEPROM ein Monitorprogramm mit Bootloader für eins der beiden RAMs sitzt? Dann würde ich auf's EEPROM brennen tunlichst verzichten. Oder ist das ganze System Marke Eigenbau? Dann zeig mal den Schaltplan. Wenn das Programm wirklich ins EEPROM muss, dann brauchst du wie von den anderen schon angedeutet einen EEPROM-Programmer. Ralf
Schaltplan bitte! Dann kann ich womöglich was dazu sagen. Auch Links oder Details, Quellcode, zum MiniPro, das scheint ein Loader zu sein.
Kompletter Eigenbau, Adressen 0-12 an ROM und RAM angeschlossen, 0,1 am PIO, Adressen 13-15 an einen Decoder für die CS Leitungen. Read und Write Leitungen verbunden, PSEN an OE des EEPROM, 12MHz und einen Resettaster und eine Spannungsversrgung mit 5V über ein Netzteil am 230V 50Hz Stomnetz... Der Programmer ist ein solcher: http://www.ebay.de/itm/USB-Universal-Programmer-Support-13000-ICs-EPROM-FLASH-CPLD-MCU-Adapters-/171008781232?pt=Wissenschaftliche_Ger%C3%A4te&hash=item27d0eaebb0
Olaf E. schrieb: > Kompletter Eigenbau, Adressen 0-12 an ROM und RAM angeschlossen, 0,1 am > PIO, Adressen 13-15 an einen Decoder für die CS Leitungen. Read und > Write Leitungen verbunden, PSEN an OE des EEPROM, 12MHz und einen > Resettaster und eine Spannungsversrgung mit 5V über ein Netzteil am 230V > 50Hz Stomnetz... Sieht so aus, als ob das die ganz gewöhnliche Schaltung für 8051 mit externem Bus ist, und du den programmierten Stein in die Schaltung einsetzen mußt, und zum Umprogrammieren jedes mal ausstecken, im Programmer programmieren, und wieder einstecken mußt. Ist das von mir so richtig verstanden? > Der Programmer ist ein solcher: > http://www.ebay.de/itm/USB-Universal-Programmer-Support-13000-ICs-EPROM-FLASH-CPLD-MCU-Adapters-/171008781232?pt=Wissenschaftliche_Ger%C3%A4te&hash=item27d0eaebb0 Das sieht nämlich nach (E)EPROM-Programmer aus, um den Stein außerhalb der Schaltung zu programmieren. In dessen Anleitung sollte drin stehen, welche Formate übertragen werden können. Keil macht üblicherweise Intel-Hex-Files auch mit der Dateiendung .hex, aber es gibt eine Menge anderer wie Motorola S1, S2, S3, oder auch reine Binärfiles, und Konverter, die von einem in ein anderes Format konvertieren.
ja, für den EEPROM verwende ich extra einen Textool-Sockel. Das Programm zum Programmer kann auch .hex-Dateien verarbeiten und in Keil hab ich inzwischen den Punkt gefunden den ich gesucht habe: unter "Options for Target" (der button mit dem Zauberstab) -> auf dem Reiter "Output" und dann den Haken bei "Create HEX File". Damit klappt das, vielen Dank für die Bemühungen.
Olaf E. schrieb: > Damit klappt das, vielen Dank für die Bemühungen. Nächstes mal, wenn du einen ollen 8051 aus gräbst, berücksichtige eine Von-Neumann-Schaltung mit ausreichend RAM auf dem Board, was auch als ROM arbeitet. Das erspart einen Programmer und Umsteckerei komplett, und man kann Testprogramme über RS232 oder USB direkt auf das Board flashen. Das Testprogramm läuft dann so lange, wie das Board Strom hat. Bei Stromabschaltung ist das Programm weg. Es sei denn, es hat einen Pufferakku für das RAM. So wie du fing ich mit dem 8051 vor über 20 Jahren auch an, kaufte einen Programmer, und die Umsteckerei mit den ROM-Bausteinen wurde mir schon sehr bald zu bunt. Dann fand ich aber auch ein Board, wo ins RAM geflasht wird, und baute selber noch solch ähnliche nach. Ein ROM mit Bootloader muß man sich dann nur ein einziges mal brennen. Wenn man das Board später für einen festen Zweck benötigt, brennt man das fertige Programm dann. Es ist da aber auch gut, selbst einen Brenner zu besitzen, oder jemanden mit Brenner in greifbarer Nähe zu haben. Infos über RAM als Programmspeicher erhält man schon, wenn man in einer Suchmaschine "8051 von Neumann" eingibt. Na ja, seit modernere µC mit Flash an Bord gängig sind, ist das alles ein wenig Schnee von gestern. Aber, wenns denn Spaß macht? Der externe Bus mit Bausteinen wie dem 8255 dran ist auch eine gute Übung.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.