Archiv verlassen und diese Seite im Standarddesign anzeigen : AT89C52 und Programm ins RAM
Import-Script
26.04.2003, 16:08
Hallöchen! <BR> <BR>Hab da mal ne Frage an Controllerspezialisten: <BR> <BR>Kann es klappen, wenn ich eine Laderoutine ins Flash eines 89C52 schreibe, die ein über RS232 gesendetes HEX-File in ein 128kByte RAM schreibt? Danach soll beim 1. externen Lesevorgang ein FlipFlop kippen, welches das /EA-Signal auf LOW zieht. Soweit so gut. Ich mache mir Sorgen wegen des Timings, ich möchte den A16 des RAMs = /PSEN machen? Klappt das, oder übersehe ich da irgendetwas großes?!? <BR> <BR>Thx
Import-Script
26.04.2003, 17:33
Also ich kenne es vom 68000er her, da wird auch z.B. ein FlipFlop genommen um das ROM an Adresse 0 einzublenden wegen Resetvektor. Schreib einfach 100 oder 200 mal NOP an den Anfang nach der Einsprungadresse, dann ist es egal in welcher RAM-Bank die CPU ist und ob das FF synchron zum nächsten Befehl kippt oder erst einen später, es ist ja egal, die CPU bekommt auf jeden Fall NOP und macht keinen Operandenfetch, an dem sie sich verhaspeln könnte. Kleiner Trick...
Import-Script
26.04.2003, 18:28
Das geht und zwar sehr gut. Ich hab das mal mit einem C515 gemacht, weil der nur OTP ist. <BR> <BR>Und nach jedem Versuch einen wegschmeißen wollte ich nicht. <BR> <BR>Wichtig ist, daß der interne Flash / OTP kleiner als 64kB ist und das Du nicht die Lockbits setzt. Sonst kann man den EA-Pin nicht umschalten. <BR> <BR>Ich habe EA einfach mit einem Pin von P1 verbunden. Nach dem Reset sind alle Ports = 1 und somit der interne Speicher aktiv. <BR> <BR>Dann wird eine Routine nach ganz oben (z.B. 0F000h) geladen, die diesen Pin auf 0 setzen kann. <BR> <BR>Nachdem Deine Bootroutine sich vergewissert hat, daß ein ausführbares Programm im externen Speicher ist, springt es diese Routine an. Da diese Routine außerhalb der Größe des internen Speichers ist, ist der EA-Pin egal und es wird immer vom externen Speicher ausgeführt. Somit gibt es keinerlei Timing Probleme. Die Routine setzt EA = 0 und springt zu 0000h zurück, wo nun der externe Speicher ausgeführt wird. <BR> <BR> <BR>Peter <BR>
Powered by vBulletin® Version 4.1.12 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.