hello kurz eine Frage zu http://triindia.co.in/shop/product_info.php?cPath=25&products_id=57 Wie funktioniert denn das mit dem Laden von Programmen? Der uC ist doch ein dummes Ding, wenn er ausgeliefert wird. Wie kommt das Assembler-Programm vom PC in den uC? Kann man auch einen dummen uC direkt via RS232 laden? Gibt es direkte Verbindungen in den uC? Ich finde leider kein Datasheet zu dem uC.
Ich bin mir nicht sicher, aber ich glaube, ich habe eine Antwort gefunden. http://www.nxp.com/documents/data_sheet/P89V51RB2_RC2_RD2.pdf The ... program memory consists of an ... block. ISC capability, in a second 8 kB block, is provided to allow the user code to be programmed in-circuit throug the serial port. Außerdem habe ich noch gesehen: ALE/PROG: ... This pin is also the programming pulse input for flash programming. However, if AO is setz to 1, ALE is disabled. Allerdings frage ich mich, was dieses AO sein soll. Aber ich glaube, das ist ein Register. Aber ich verstehe immer noch nicht, wie der uC unterscheiden kann, ob über die RS232 ein zu ladendes Programm kommt oder irgendwelche Daten für den laufenden Betrieb kommen.
Kann es sein, dass das bei diesem Board gar nicht geht, dass man über die RSS232 einerseits das Programm lädt, andererseits dann im laufenden Betrieb Daten hin- und herschickt? Brauche ich ein Testboard mit 2 RS232 oder eines mit einem uC und ein EEPROM?
Hallo Heinz, die Informationen die du brauchst stehen unter 6.3.3 ISP und 6.3.4 Using ISP im Datenblatt. ISP (In System Programming) Gruß Christian
>Includes Philips 89V51RD2 Microcontroller with 64kB flash.. Das ist ein 8051er mit internen Flash und seriellen Bootloader. Der kann also über die UART geflasht werden. Das Tool dazu (Flashmagic) ist kostenlos: http://www.flashmagictool.com/supporteddevices.html
@pfoertner Das Datenblatt ist für mich leider ziemliches fachchinesisch. ISP heißt für mich Internet Service Provider :( @matthiask Ich brauche aber unbedingt eine RS232, über die ich dann im laufenden Betrieb Daten schicken kann. Wenn ich auf meinem PC in meinem Programm eine Eingabe mache, soll diese Info über die RS232 zu dem uC geschickt werden und der soll dann z. B. eine LED einschalten. Das geht dann aber nicht mehr, oder? Über die RS232 kann man ausschließlich nur ein Programm in den uC flashen. Stimmt das?
>ISP heißt für mich Internet Service Provider :( anderer Film >Ich brauche aber unbedingt eine RS232, über die ich dann im laufenden >Betrieb Daten schicken kann. Wenn ich auf meinem PC in meinem Programm >eine Eingabe mache, soll diese Info über die RS232 zu dem uC geschickt >werden und der soll dann z. B. eine LED einschalten. Kein Problem, dass wird tausendfach so geamacht. Wenn Du den µC über die RS232 programmiert hast, dann trennst Du die Verbindung zu Flashmagic/Programmiertool und nun kann das µC-Progamm auch auf die UART zugreifen, während auf dem PC Dein eigenes Progamm läuft.
Hier mal sehen: http://www.nxp.com/#/pip/pip=[pip=P89V51RB2_RC2_RD2_5]|pp=[t=pip,i=P89V51RB2_RC2_RD2_5]
>Kein Problem, dass wird tausendfach so geamacht. Wenn Du den µC über die >RS232 programmiert hast, dann trennst Du die Verbindung zu >Flashmagic/Programmiertool und nun kann das µC-Progamm auch auf die UART >zugreifen, während auf dem PC Dein eigenes Progamm läuft. Das hört sich ja interessant an. Aber woher weiß ich, ob das beim http://triindia.co.in/shop/product_info.php?cPath=25&products_id=57 auch möglich ist? Oder ist das grunsätzlich immer so bei diesem Controller? Kann man da gar nicht anders machen? Aber wie kann denn der uC wissen, ob die Daten, die nun reinkommen, vom Flashmagic oder von meinem selbstgeschriebnen Programm kommen? Woher weiß er denn, ob die Daten in den Flash-Speicher programmiert werden sollen oder ob er sein Assembler-Script ausführen und z. B. eine LED einschalten soll?
Der µC kann im Bootloader-Mode oder im Normalmode betrieben werden. Wird beim starten bzw. Reset festgelegt. Hast Du den Schaltplan von dem Board?
Nö. Auf http://triindia.co.in/shop/product_info.php?cPath=25&products_id=57 sind so gut wie 0 Infos ... leider. >Der µC kann im Bootloader-Mode oder im Normalmode betrieben werden. Wird das über einen Switch auf dem Board festgelegt? Bei eingeschalten: Mootloader-Mode? Bei ausgeschalten: Normalmode?
Was ich ebenfalls nicht verstehe: wenn man den uC über seine serielle Schnittstelle flashen kann, muss doch schon ein Programm vorhanden sein, das die serielle Schnittstelle konfiguriert. Wenn ich nun ein eigenes Programm hochlade, könnte ich die Konfiguration der seriellen Schnittstelle ruinieren. Was zu folge hätte, dass ich womöglich nie wieder Zugriff auf den uC habe und das Board wegwerfen kann. Oder?
>Nö. Auf http://triindia.co.in/shop/product_info.php?cPath=... sind >so gut wie 0 Infos ... leider. Ein Grund das Board nicht zu nehmen. Frage: Muss es unbedingt ein 8051er µC sein? Die sind in der Industrie und kommerziellen Produkten zwar weit verbreitet und bewährt, zum basteln jedoch nur bedingt geeignet. Für Einsteiger währen AVR 8-Bit eine Überlegung wert. Da findest Du hier massenhaft Beispiele, deutsche Tutorials und Hilfe von Benutzern. http://www.mikrocontroller.net/articles/AVR http://www.mikrocontroller.net/articles/AVR-Tutorial http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial Wenn es bei den Ursprungsboard bleibt, dann noch soviel: Auf dem µC ist ein Programm (Bootloader) in einem speziellen Codebereich bereits werksmäßig programmiert. Der eigentliche Flash ist dagegen leer. Beim Einschalten wird über den Pegel (L) an einen bestimmten PIN (PSEN) ausgewählt, ob der µC zu der Startadresse des Bootloaders springt, oder zur Adresse 0000H, wo der eigentliche Flash beginnt. Der Bootloader hat alle Routinen drin, zB. Autobaud-Erkennung und Programmierroutinen. Er legt also die Daten vom PC in den eigentlichen Flash ab. Wenn das erledigt, musst Du den µC neu starten, ohne das diesmal PSEN auf L liegt. Damit wird das nun im Flash vorhanden Programm gestartet. Dieses weiß dann auch praktisch nichts mehr von dem Bootloader und kann die serielle Schnittstelle mit eigenen Initialisierungen benutzen. Meist sind auf solchen Boards 2 Taster (RESET und PSEN), womit man den µC in den Bootloadermode versetzen kann. Es gibt auch Variaten mit AutoISP, wo dies FlashMagic übernimmt. siehe Anlage, Seite 3 Für FlashMagic gibts auch eine App-Note dazu: http://www.flashmagictool.com/assets/resources/ISPHardwareEntryAppNote.pdf
Auf http://www.futurlec.com/T89C51DevBoard_Technical.shtml gibt es diese beiden Buttons reset und psen. Scheint also genau das zu sein :) Was ich allerdings bei diesem Board wieder nicht verstehe: >Program download and run is easily executed in-system by an RS232 connection to >the computer parallel port, no programmer is required. Was meinen die mit parallelem Port??? Rs232 ist seriell. EDIT: http://www.futurlec.com/DevBoardAccessories.shtml Die wollen anscheinend tatsächlich, dass man das beim PC an die parallele Schnittstelle hängt ... Mein Gott, ist das alles ein Mist! Gibts nur Schrott auf dem Markt??
Also wenn ich dieses Flash Magic richtig verstanden habe, braucht man auf dem PC ein ganz spezielles Programm zum Flashen. Dieses spezielle Programm muss dann bestimmte RS232-Pins gezielt ansteuern, damit das alles funktioniert. Wenn ich also so ein spezielles Programm nicht habe, geht nichts mehr. Habe ich das richtig verstanden? Bei http://triindia.co.in/shop/product_info.php?cPath=25&products_id=57 finde ich nur einen reset-button, aber keinen psen-button. Also müsste dort diese Technik zum Einsatz kommen. Ob das aber wirklich der Fall ist, kann ich aber allein aufgrund des Fotos und ohne zusätzliche Doku nicht erkennen. Richtig? Auf http://www.futurlec.com/T89C51DevBoard_Accessories.shtml hingegen gibt es die beiden buttons. Allerdings soll der Datenverkehr über die PC-RS232 laufen. Dafür gibt es nämlich im C#.NET die Klasse System.IO.Ports (http://msmvps.com/blogs/coad/archive/2005/03/23/39466.aspx) Fazit: da ich nur diese 2 (bezahlbaren) Boards im Internet gefunden habe, muss ich jetzt wohl versuchen herauszufinden, ob das zuerst genannte Board diese spezielle Funktion beherrscht. Ich schick denen mal eine E-Mail und frag nach. Vorerst mal DANKE :)
>Auf http://www.futurlec.com/T89C51DevBoard_Technical.shtml gibt es diese >beiden Buttons reset und psen. Scheint also genau das zu sein :) Da ist aber ein ATMEL 8051er drauf. Der wird mit FLIP (findest Du auf den Atmel-Webseiten) anstelle von Flashmagic prgrammiert, funktioniert praktisch genau so, über Bootloader und RS232. LPT-Kabel braucht man dafür nicht. Wahrscheinlich kann man auch andere µC auf das Board setzen, zB. AT89S... Baureihe. Diese werden über ein SPI-Interface programmiert, wobei das meistens noch über LPT-Port des PC läuft. >Dafür gibt es nämlich im C#.NET die Klasse System.IO.Ports Andere Baustelle
Was meinst du mit "andere Baustelle"? Über diese Klasse sollen dann nämlich im laufenden Betrieb Daten zwischen PC und uC ausgetauscht werden können. Muss ich ja schon bei der Hardwareauswahl darauf Rücksicht nehmen.
>Muss ich ja schon bei der Hardwareauswahl darauf Rücksicht nehmen. UART ist genormt, musst nur auf beiden (PC und µC) geleiche Werte einstellen, zB. 9600Baud, 8N1. Ansonsten ist für die µC-Auswahl wichtig, wieviele Daten verarbeitet werden müssen, wo/wie Zwischenspeicherung, Verarbeitung, was ist noch zu tun usw. Danach richtet sich die erforderliche Rechenleistung des µC. Die richtige Auswahl des µC ist immer wieder eine heikle Frage, setzt schon genaue Kenntnisse der Projektanforderungen voraus. Dann spielt auch noch eine Rolle, ob man schon Erfahrungen mit einer µC-Familie hat, was für Entwicklungsumgebungen/Compiler, Programmieradapter usw. zur Verfügung stehen. Letztlich müssen die µC auch lieferbar sein. Manche Super-Typen kriegt man dann nur im 100er Pack bei 12 Wochen Lieferzeit! Als Bastler/Einsteiger kommen wir da immer wieder zu den AVR s zurück, zB. ATmega16/32/64. Ansonsten empfehle ich Dir erstmal etwas mehr Basiswissen anzueignen. µC-Programmierung, also sehr hardwarenah, ist schon etwas anderes als C++ auf dem PC. (C++ wirst Du da auch kaum nutzen, in dem Bereich läuft fast alles auf Ansi-C). Da die Resourcen, vorallem der Speicher, bei µC sehr begrenzt ist, ist ein ganz anderer Programmierstil erforderlich.
http://triindia.co.in/shop/product_info.php?cPath=25&products_id=57 Ich habe mir das Foto jetzt einige Zeit lang angeschaut. Ich finde für die RS232-Schnittstelle weder einen Switch zum Umschalten zwischen den Modis (flashen bzw. laufender Betrieb), noch irgendwelche sonstige Hardware woraus man schließen könnte, dass das Umschalten automatisch ablaufen könnte. Jetzt habe ich aber noch etwas interessantes gefunden: http://www.pantecheshop.com/index.php?main_page=product_info&cPath=69&products_id=200 Wie schauts damit aus? Was meint ihr?
Die 8051 Boards gibts wie Sand am Meer. Kannst drauf vertrauen, dass die sich alle auch flashen lassen.. Atmel hat auch ein recht gut gemachtes mit AutoISP: http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3568 Schaltplan: http://www.atmel.com/dyn/resources/prod_documents/doc7676.pdf Sowas kann man sich auch selber bauen, zum lernen ideal.
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.