www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Boeard flashen


Autor: Heinz B. (hez)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hello

kurz eine Frage zu 
http://triindia.co.in/shop/product_info.php?cPath=...

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.

Autor: Heinz B. (hez)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin mir nicht sicher, aber ich glaube, ich habe eine Antwort 
gefunden.

http://www.nxp.com/documents/data_sheet/P89V51RB2_...

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.

Autor: Heinz B. (hez)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Christian Pförtner (pfoertner)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias K. (matthiask)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Heinz B. (hez)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Matthias K. (matthiask)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Matthias K. (matthiask)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Heinz B. (hez)
Datum:

Bewertung
0 lesenswert
nicht 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=... 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?

Autor: Matthias K. (matthiask)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Heinz B. (hez)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nö. Auf 
http://triindia.co.in/shop/product_info.php?cPath=... 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?

Autor: Heinz B. (hez)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Matthias K. (matthiask)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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/ISP...

Autor: Heinz B. (hez)
Datum:

Bewertung
0 lesenswert
nicht 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??

Autor: Heinz B. (hez)
Datum:

Bewertung
0 lesenswert
nicht 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=... 
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 :)

Autor: Matthias K. (matthiask)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Heinz B. (hez)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Matthias K. (matthiask)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: hez (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://triindia.co.in/shop/product_info.php?cPath=...
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=pr...
Wie schauts damit aus? Was meint ihr?

Autor: Matthias K. (matthiask)
Datum:

Bewertung
0 lesenswert
nicht 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?t...
Schaltplan: 
http://www.atmel.com/dyn/resources/prod_documents/...

Sowas kann man sich auch selber bauen, zum lernen ideal.

Autor: Heinz B. (hez)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Woah!! 150 dollar. Bissl teuer.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.