Manche PC-Software bringen Assemblerprogramme auf einem *51er zum laufen, ohne dafür den Eprom / Flash Rom programmieren zu müssen. Es ist klar, das das ganze in den Ram geschrieben wird. Nach dem Einschalten eines µC muss doch eine Routine ablaufen, die irgendwann zu dem Assemblerprogramm im Ram kommt (ORG xxxxh). Er könnte ja z. B. auf dem Eprom oder auch dem RAM bei 0000h anfangen. Meine Fragen: 1. Nennt man diese Routine Bootloader? 2. Und für was steht ISP? Auf jeden Fall nicht nur für Internet Service Provider, wie Google mich glauben lassen will. 3. Wie sieht z. B. der Code ungefähr aus, der über die Tx und Rx Pins übertragen wird? 4.Darf ich denn, wenn ich den Eprom / Flashrom programmiere, bei Adresse 0000 anfangen? 5. Was macht ein PC-Programm, wenn er ihm über die Tx und Rx Pins sagen möchte, dass er jetzt auf z.B. 8000h springen möchte? Den Jumpbefehl bitweise über die Rx Leitung träufeln lassen? Ich wäre über jede noch so kleine Information froh, die mich weiterbringen könnte. Entweder habe ich es überlesen, oder die Datenblätter erwähnen meine Fragen nicht mal ansatzweise. MfG
2. ISP = In System Programable, heißt du kanst den Controller in deiner Zielschaltung programieren ohne ihn mit einem SPeziellen Programmiergerät zu beschreiben.
Da es es etwa 700 verschiedene 8051-Derivate gibt, wirds wohl auch 700 verschiedene Wege zum Programmieren geben. Du must also erstmal speziell werden (welcher 8051 genau). Ganz allgemein: Die meisten 8051 mit Bootloader haben den Bootloader in einem extra Flash oder ROM-Bereich stehen, der durch bestimmte Signale an den Pins angesprungen wird. Der Bootloader kriegt dann die Daten als Intel-Hex übertragen. Für spezielle Kommandos (Rücklesen, Fuses setzen, Programm anspringen) gibt es dann spezielle Records. Als Programmierschnittstelle werden UART, CAN, USB, SPI oder JTAG verwendet. Peter
Super! Gut zu wissen, dass sich die Microcontroller in diesen Punkten unterscheiden. Ich habe es extra ziemlich allgemein gehalten und vereinfachend geschrieben, da ich bisher dachte, dass solche Grundzüge bei allen ungefähr gleich ist. Der verwendete Microcontroller ist ein 89C51RD2HBA von Reichelt. In System programmable wiederbeschreibbarer Flash-Speicher vier 8-Bit I/O-Ports/ drei 16 Bit-Timer Interner RAM(Bit): 512x 8 Leider steht im Datenblatt von Reichelt nicht, wie der RAM oder der Flash gehandhabt werden muss. Ursprung meiner Anfrage ist u. a., dass ich meine Programme testen will, ohne sie aufwändig in den Flash schreiben zu müssen. Da käme mir der Ram sehr gelegen, aber ich muss dem Prozessor auch beibringen, dass er auf genau diese Stelle im Ram springen soll, wo auch mein Programm steht.
Ist doch nicht aufwendig ins flashrom zu schreiben! .. wie stellst du dir das vor?
Ich dachte bisher immer, einige Teile des Flashrooms sind durch Sachen wie z. B. dem Bootloader schon vorbelegt. Ich wollte dort nicht reinschreiben, sonst lösche ich am Ende noch etwas.
Es gibt nen T80C51RD2 (Atmel) und den P89C51RD2 (Philips). Du brauchst nur die Software runterladen (Flip bzw. Flashmagic) und los gehts. In den App-Notes steht alles nötige drin. In den RAM laden geht grundsätzlich nicht, da die 8051 nur RAM für Daten haben. Die Chips werden also geflasht und das ist gar nicht aufwendig. Peter
Wie ATmels 8051er zum proggen anschliessen ? http://www.atmel.com/dyn/resources/prod_documents/C51_Hardware_Connections.pdf
Ginge theoretisch nicht auch, dass man ein externes RAM anschließt und das beschreibt und dann den µC startet, der von externem Speicher (glaub mit /EA = low), in diesem Fall vom RAM das Programm läd? Bräuchte man natürlich einen weiteren IC zum beschreiben des RAMs. Das ginge doch auch, .. oder?
"Das ginge doch auch, .. oder?" Ginge schon. Aber was nützt es Dir, einfach mal 18 IO-Pins für so einen Unsinn zu verschwenden ? Ich habe früher mal sowas auf nem DS80C320 gemacht. Da war das Problem, daß schnelle Flashs damals sehr teuer waren. Ich habe dann nach jedem Reset langsam vom Flash in einen schnelle Cache-SRAM geladen und dann den Flash abgeschaltet und DS80C320 auf 32MHz hochgesetzt. Nebeneffekt war, da es ja keine 64KB SRAMs gibt, daß ich auch noch 64KB Data-SRAM hatte (128kB-Chip). Und da nochn paar SJA1000 und anderes drauf war, war der Verlust der IO-Pins nicht ganz so schlimm. Würde ich heute aber nicht mehr machen. Peter
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.