Forum: Mikrocontroller und Digitale Elektronik Boeard flashen


von Heinz B. (hez)


Lesenswert?

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.

von Heinz B. (hez)


Lesenswert?

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.

von Heinz B. (hez)


Lesenswert?

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?

von Christian P. (pfoertner)


Lesenswert?

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

von Matthias K. (matthiask)


Lesenswert?

>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

von Heinz B. (hez)


Lesenswert?

@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?

von Matthias K. (matthiask)


Lesenswert?

>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.

von Matthias K. (matthiask)


Lesenswert?


von Heinz B. (hez)


Lesenswert?

>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?

von Matthias K. (matthiask)


Lesenswert?

Der µC kann im Bootloader-Mode oder im Normalmode betrieben werden. Wird 
beim starten bzw. Reset festgelegt.

Hast Du den Schaltplan von dem Board?

von Heinz B. (hez)


Lesenswert?

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?

von Heinz B. (hez)


Lesenswert?

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?

von Matthias K. (matthiask)


Angehängte Dateien:

Lesenswert?

>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

von Heinz B. (hez)


Lesenswert?

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??

von Heinz B. (hez)


Lesenswert?

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 :)

von Matthias K. (matthiask)


Lesenswert?

>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

von Heinz B. (hez)


Lesenswert?

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.

von Matthias K. (matthiask)


Lesenswert?

>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.

von hez (Gast)


Lesenswert?

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?

von Matthias K. (matthiask)


Lesenswert?

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.

von Heinz B. (hez)


Lesenswert?

Woah!! 150 dollar. Bissl teuer.

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
Noch kein Account? Hier anmelden.