Forum: Mikrocontroller und Digitale Elektronik 8051 und Linux - Anfänger sucht Hilfe


von 123 4. (Firma: Privat) (tufar)



Lesenswert?

Hallo Leute

Nach langem überlegen habe ich mich Entschlossen in die Programmierebene 
von Mikrocontrollern einzusteigen. Ziel für mich ist die Mikrocontroller 
für Uhrenschaltungen zu verwenden sofern Sie sich dazu eignen. Ich habe 
mich auf dem Markt ein wenig umgesehen aber habe kein gutes 
Entwicklerboard gefunden was mir zusagt. Also hab ich meine Freunde um 
Rat gefragt und da hat mir jemand dieses Board geschenkt (Siehe Bild)
Alles schön und gut nur ich hab keinerlei Software ,Dokumentation oder 
Ähnlches dazu . Ich nutze übrigens kein Windows als Betriebssystem 
sondern Linux  ,was die  Wahl der Programme evtl. einschränken könnte.

Falls wer Irgendwas dazu hat ,wäre nett mir dazu ein paar Links 
mitzuteilen da ich noch nicht mal aus der Hardware den Hersteller 
ermitteln kann.

Das Board nennt sich 51 AVR MCU Microcontroller Development Board H5B2
Dabei war auch ein passender Mikrocontroller im Sockel womit ich testen 
könnte aber auch hier habe ich keinerlei Infos was für ein Controller 
das ist.

: Bearbeitet durch Moderator
von Wolfgang (Gast)


Lesenswert?

123 4. schrieb:
> Dabei war auch ein passender Mikrocontroller im Sockel womit ich testen
> könnte aber auch hier habe ich keinerlei Infos was für ein Controller
> das ist.

Steht gewöhnlich drauf ;-)

von Timo N. (tnn85)


Lesenswert?

Soll das ein China-Klon von einem AVR ATmega sein?
Wenn es ein original ATmega wäre, würde es auch draufstehen. Auf dem 
Bild steht nur was von STC.

Keine Ahnung was das sein soll und ob man das verwenden kann.
Womöglich kann man das Board mit dem Sockel noch verwenden, wenn der µC 
nichts ist.

Gabs keinen Schaltplan dazu?

von PittyJ (Gast)


Lesenswert?

Den 'Hardcore'-Leute hier wird das nicht gefallen, aber mein Tip ist:
Besorg dir einen Arduino, normales Standardmodell. Kostet im Original 
nur 20 Euro.
Die Entwicklungsumgebung gibt es kostenlos für Linux (und Windows und 
Mac).
Und es gibt tausende von Beispielen und Leuten die dir helfen können.

Verschenke dein altes Board an die Leute, die gleich kommen und 
behaupten, dass man nur mit solch einem Board etwas lernen könne.

von MaWin (Gast)


Lesenswert?

123 4. schrieb:
> Falls wer Irgendwas dazu hat ,wäre nett mir dazu ein paar Links
> mitzuteilen da ich noch nicht mal aus der Hardware den Hersteller
> ermitteln kann.

Nun ja, das Board hat einen STC +051, 4-stelliges Display, ein ppar 
Tasten und Digitalausgänge, und damit alles was man für eine Uhr 
braucht. Seriell programmierbar über USB.

Mit AVR und Arduino hat es nichts zu tun, das ist nur Werbegeschwätz.

Heute noch kaufbar: eBay 111933465739

Aber Linux ? Wer sich für ein user supported Betriebssystem mit 2% 
Marktanteil entscheidet, muss halt alles selber programmieren.

http://grauonline.de/wordpress/?p=44

http://www.buydisplay.com/default/stc-8051-microcontroller-isp-software

Sogar auf YouTube erklärt

http://www.google.gr/url?sa=t&source=web&cd=1&ved=0ahUKEwiE6b6qqqzPAhUTnRQKHbsSBGUQtwIIHTAA&url=http%3A%2F%2Fm.youtube.com%2Fwatch%3Fv%3D08ErLUIr490&usg=AFQjCNF3b1TgRS6-G6fNyb8g4ecbpAlHAw

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

123 4. schrieb:
> Ich nutze übrigens kein Windows als Betriebssystem sondern Linux  ,was
> die  Wahl der Programme evtl. einschränken könnte.
Konfiguriere doch dienen PC so, dass du auch Windows booten kannst (so 
eine Windows-7-Lizenz kostet auch nicht mehr als 20€). Du machst dir das 
Leben in vielen Bereichen einfacher, als wenn du dich mit aller Gewalt 
an einem Nischen-OS fixierst.

> Das Board nennt sich 51 AVR MCU Microcontroller Development Board H5B2
> Dabei war auch ein passender Mikrocontroller im Sockel womit ich testen
> könnte aber auch hier habe ich keinerlei Infos was für ein Controller
> das ist.
Das ist ein Nachbau des 8051 aus dem letzten Jahrtausend: 
http://www.stcmicro.com/stcmcu.html
Schön einfach für den Anfang, aber langfristig sicher eine Sackgasse.

BTW:
Bitte das nächste Mal einen sinnvolleren Titeltest als "Suche Hilfe" 
eingeben...

: Bearbeitet durch Moderator
von Peter D. (peda)


Lesenswert?

Ich vermute mal, da ist ein USB-RS232 Umsetzer drauf, der an die UART 
geht.
Da könnte man auch einen Atmel 89C51 mit Bootloader reinstecken und dann 
mit der Linux-Version von Flip programmieren.
Z.B.:
http://csd-electronics.de/ICs/Mikrocontroller/AT32-43-86-89-91/AT89C51RB2-3CSUM::406.html

http://www.atmel.com/tools/FLIP.aspx

von stcgal (Gast)


Lesenswert?

LINUX

stcgal - STC MCU ISP flash tool

stcgal is a command line flash programming tool for STC MCU Ltd. [1] 
8051 compatible microcontrollers. The name was inspired by avrdude

https://github.com/grigorig/stcgal

---

Bzgl. des oben abgebildeten Teils,
http://www.instructables.com/id/Cheap-AVR51-Development-board


---
Kenne aber beides nicht.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Allerdings funktioniert erstmal gar nichts, wenn du keinen Quarz da an 
Pin 22 und 23 steckst, wo der 3 pol. Sockel vorgesehen ist. Ohne 
externen Quarz geht bei den 8051 nischt. Auf dem Foto liegt er da unten 
auf der Platine, ich drücke dir die Daumen, das der auch bei deinem 
Board dabei ist.

von 123 4. (Firma: Privat) (tufar)


Lesenswert?

Matthias S. schrieb:
> Allerdings funktioniert erstmal gar nichts, wenn du keinen Quarz da an
> Pin 22 und 23 steckst, wo der 3 pol. Sockel vorgesehen ist. Ohne
> externen Quarz geht bei den 8051 nischt. Auf dem Foto liegt er da unten
> auf der Platine, ich drücke dir die Daumen, das der auch bei deinem
> Board dabei ist.

Jap ist dabei und 2 Stück sogar . Einer mit genau 12 Mhz der andere mit 
11,X Mhz . Die Quarze sind ja nicht das Problem da ich auch langsamere 
oder etwas schnellere einsetzten könnte (Palette lässt da etwas 
Spielraum zu).

von Peter D. (peda)


Lesenswert?

Die 11,0592Mhz werden oft verwendet, weil man damit die Baudrate genau 
einstellen kann.
Die 12MHz benutzen gerne Anfänger, um Zeiten genau in 1µs hinschreiben 
zu können.
Erfahrene Programmierer lassen sich die Konstanten einfach vom Compiler 
ausrechnen und schreiben nur die Formel hin mit einem Define für F_CPU.

von 123 4. (Firma: Privat) (tufar)


Lesenswert?

MaWin schrieb:

> Nun ja, das Board hat einen STC +051, 4-stelliges Display, ein ppar
> Tasten und Digitalausgänge, und damit alles was man für eine Uhr
> braucht. Seriell programmierbar über USB.
>
> Mit AVR und Arduino hat es nichts zu tun, das ist nur Werbegeschwätz.
>
> Heute noch kaufbar: eBay 111933465739
>
> Aber Linux ? Wer sich für ein user supported Betriebssystem mit 2%
> Marktanteil entscheidet, muss halt alles selber programmieren.
>
> http://grauonline.de/wordpress/?p=44
>
> http://www.buydisplay.com/default/stc-8051-microcontroller-isp-software
>
> Sogar auf YouTube erklärt
>
> 
http://www.google.gr/url?sa=t&source=web&cd=1&ved=0ahUKEwiE6b6qqqzPAhUTnRQKHbsSBGUQtwIIHTAA&url=http%3A%2F%2Fm.youtube.com%2Fwatch%3Fv%3D08ErLUIr490&usg=AFQjCNF3b1TgRS6-G6fNyb8g4ecbpAlHAw

Als Serielle Schnittstelle zeigt sich auch das Board wenn man das ohne 
Programme oder zusätzliche Tools an einen USB Schnittstelle hängt. Im 
Terminal dann lsusb eingegeben erkennt man das Board als dies :

Bus 008 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial 
Port

Es hat alls alles was ich brauche um einen Controller für Digital Uhren 
zu Programmieren. Mehr will ich ja auch nicht. Alles andere ist nur 
Beiwerk was für meine Vorhaben nicht sinnvoll ist.
Und die Kommentare bei einigen finde ich auch schon traurig . Aber man 
sieht aber auch hier schön wie viele Leute es gibt die kaum übern 
Tellerrrand schauen können. Dabei gibt es sehr wohl und viele Programme 
speziell für Linux die für solche Boards ,nur die wenigstens wissen 
überhaupt was davon ,das ist mitunter auch ein kleines Problem. Und 
wegen Nieschen OS würde ich das eher nicht Behaupten den 98% aller 
Server im Internet darauf laufen Linux Distributionen drauf .Die 
Minderheit oder als "Nieschen OS"  im Internet sind eher die Windows 
Kisten .Ebenfalls gibt es viele andere Bereiche wo mittlerweile Linux 
als Monopol anzusehen ist und kein Windows. Aber solche  Diskussionen 
gehören hier nicht in diesen Thread. Ich hatte ja höflich und freundlich 
um Hilfe gebeten um etwas zu erfahren über das Board und gebeten evtl. 
nen Tip zu geben welche Software man dafür verwenden kann um damit 
Mikrocontroller zu Programmieren. Nur zu Info am Rande das Board hat nen 
Jumper mit dem man auch zwischen dem vorhandenen Controller und der 
Stellung "AVR" wählen kann. Eventuell lässt sich damit dann sogar ein 
AVR dran betreiben bzw. Programmieren ?
Ebenso sitzt ein Jumper drauf mit dem man auch auf 5V Umschalten kann
Die Schnittstelle Oben neben dem 4 Stelligen Display ,gibt es dazu Infos 
?
DAS Sind die Informationen wo ich suche und gehofft haben das jemand 
vielleicht was drüber weis. Und ich dazu Dokumentation suche.


Da wird von einem mit Arduino für nen Zwanziger erwähnt , mein Gott !
Warum soll ich Geld für etwas ausgeben wenn ich alles wichtige schon 
habe ?
Dann werde ich zu AVR verwiesen ,nett aber das ist kein Board generell 
nur für AVR Modelle.

von 123 4. (Firma: Privat) (tufar)


Lesenswert?

Wolfgang schrieb:
>
> Steht gewöhnlich drauf ;-)

Hilft dir diese Info :

Hersteller : STC

Modell : 89C52RC

Weiter ?

von Pandur S. (jetztnicht)


Lesenswert?

Embedded software Entwicklungs Maschinen sind nun mal Windows Maschinen.
Aber wenn du mit Linux da gleucklich werden willst mach doch.

von W.S. (Gast)


Lesenswert?

123 4. schrieb:
> Und
> wegen Nieschen OS würde ich das eher nicht Behaupten den 98% aller
> Server im Internet darauf laufen Linux Distributionen drauf .Die
> Minderheit oder als "Nieschen OS"  im Internet sind eher die Windows
> Kisten .

Die überwiegende Mehrheit aller auf Ackerflächen fahrender Fahrzeuge 
sind Traktoren und Mähdrescher. Hingegen sind Personenkraft-"Kisten" auf 
Ackerflächen eher die Minderheit - und das, obwohl die Gesamtfläche der 
Ackerflächen dieser Welt dramatisch größer ist als die der Straßen und 
Autobahnen.

Wenn dir das OS weitaus wichtiger ist, als eine gute Infrastruktur für's 
Entwickeln, dann ist das eben so und dann kannst du mit 98% aller 
wirklich gut gemeinten Ratschläge eben nichts anfangen. Das ist dein 
Problem, aber mosere deshalb nicht über Andere, denen ihre Arbeit 
wichtiger ist als irgend ein OS.

Ich schreib zwar grad auch auf einem Linux, aber das ist nur zum Daddeln 
hier an. Gearbeitet wird bei mir unter Windows.

W.S.

von Markus F. (mfro)


Lesenswert?

hier:

https://www.pjrc.com/tech/8051/

sollte eigentlich alles dabei sein, was Du für deinen Käfer (unter 
Linux) brauchst.

Von Keil:

https://www.keil.com/c51/demo/eval/c51.htm

gibt's eine (Demo-) Toolchain, die für das Ding eigentlich auch 
ausreichend sein sollte.

SDCC kann auch 8051 Code erzeugen und ist für Linux verfügbar.

Kein Grund, Windows zu installieren...

von Lothar (Gast)


Lesenswert?

123 4. schrieb:
> Modell : 89C52RC

Hier hat schon jemand alles gemacht:

http://mcudreams.blogspot.de/2012/12/programming-stc-89c52-microcontroller.html

Das ist zwar für Win aber unter Linux läuft SDCC genau so.

von Lothar (Gast)


Lesenswert?

Lothar schrieb:
> Das ist zwar für Win aber unter Linux läuft SDCC genau so

Hatte ich noch vergessen, alternativ kannst Du unter Linux auch eine 
dicke Eclipse IDE für 8051 installieren z.B.

http://www.silabs.com/products/mcu/Pages/simplicity-studio.aspx

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

123 4. schrieb:
> Nur zu Info am Rande das Board hat nen
> Jumper mit dem man auch zwischen dem vorhandenen Controller und der
> Stellung "AVR" wählen kann. Eventuell lässt sich damit dann sogar ein
> AVR dran betreiben bzw. Programmieren ?

Schau mal nach, ob der Jumper irgendwie an Pin 9 des MC (Reset) landet. 
Wenn ja, kann man damit die Resetpolarität einstellen und statt des 
80C51 einen Mega 8515 stecken. Der 8051 wird mit einem positiven, der 
AVR mit einem Massepuls resettet - Universalboards sehen deswegen dafür 
einen Jumper vor.
Programmieren geht bei dir leider nur, wenn du einen MC mit Bootloader 
steckst, der das programmieren über serielle Schnittstelle vorsieht. 
Fabirkfrische MC der AVR Serie können damit nicht dienen.

von Olaf (Gast)


Lesenswert?

Also Jungs ich weiss nicht was das gemecker soll. Ich nutze Linux seit 
1992 und das ist bei mir das Hauptsystem und selbstverstaendlich auch 
fuer die Embedded Entwicklung:

[olaf] ~: avr-gcc-4.7.0 -v
gcc version 4.7.0 (GCC)

[olaf] ~: sh2a-gcc -v (sh2a und sh2)
gcc version 4.5.1 (GCC)

[olaf] ~: m32c-elf-gcc -v (m16c und r8c)
gcc-Version 4.7.0 (GCC)

[olaf] ~: m68k-elf-gcc -v (68332 und Palmpilot)
gcc-Version 4.1.1

[olaf] ~: tasm
TASM Assembler.           Version 2.9.2, May, 1992.
 Copyright (C) 1985-1992 by Speech Technology Incorporated
tasm: No files specified.
tasm -<nn> [-options] src_file [obj_file [lst_file [exp_file 
[sym_file]]]]
Option Flags defined as follows:
  -<nn>    Table (48=8048 65=6502 51=8051 85=8085 80=z80)
                 (68=6800 05=6805 70=TMS7000)
                 (3210=TMS32010 3225=TMS32025)

Ihr seht es geht alles. Allerdings muesste man mich schon grosszuegig 
mit Geld bewerfen damit ich mir nochmal MCS51 antue.

Olaf

von Lothar (Gast)


Lesenswert?

Matthias S. schrieb:
> Programmieren geht bei dir leider nur, wenn du einen MC mit Bootloader
> steckst, der das programmieren über serielle Schnittstelle vorsieht.
> Fabirkfrische MC der AVR Serie können damit nicht dienen.

Der gesteckte STC 89C52RC kommt werksseitig mit seriellem Bootloader und 
kann daher auch in diesem Board geflasht werden. Ohnehin kommen fast 
alle uC egal ob 8051 oder ARM mit Bootloader - außer denen von Atmel - 
Programmer gibt es fast nirgends mehr.

von Olaf (Gast)


Lesenswert?

> alle uC egal ob 8051 oder ARM mit Bootloader - außer denen von Atmel -
> Programmer gibt es fast nirgends mehr.

Das mag vielleicht fuer modernere Typen gelten. Aber bei MCS51 waren 
integrierte Bootloader eher die Ausnahme.

Ah..ich sehe gerade es gibt noch mehr:

[olaf] ~: asx8051
ASxxxx Assembler V01.70 + NoICE + SDCC mods Feb-1999  (Intel 8051)

[olaf] ~: sdcc
SDCC : FreeWare C Compiler For 8051 Core MicroControllers
Version 2 : Release 0 : Patch Level 17 (UNIX)

[olaf] ~: mcs51forth
bash: ./mcs51forth: /lib/ld-linux.so.1: bad ELF interpreter: Datei oder 
Verzeichnis nicht gefunden

Verdammt, Forth ist schon ausgestorben.
Ich muss wohl wirklich mal aufraeumen. :-)

Ich hoffe im uebrigen die anvisierten Uhrenschaltungen sollen nicht mit 
Batterie laufen. Dann gibt es gewiss auch besseres als den alten 89C52.

Olaf

von Andi B. (andi_b2)


Lesenswert?

Falls du PL/M 51 brauchst, irgendwo muss es noch rumliegen. Das war die 
erste Hochsprache für die 51er. Damit hab ich damals einen Wecker mit 
dem 51er gebaut. Noch bevor Keil und IAR C Compiler geschrieben haben. 
Übrigens war IAR damals kaum brauchbar im Vergleich zu Keil. Intel ASM51 
und die alten Keil C Versionen sind alles DOS Versionen welche auch 
sicher mit DOSBOX laufen würden falls du Bedarf hast. Oder kann man ev. 
unter Linux auch 'inline' DOS Befehle laufen lassen? Unter OS/2 liefen 
die alle out of the box :-) Selbst das Hitex C51 ICE geht mit Win31. Und 
mehr als den alten DOS Keil 3.2 C Compiler braucht man für deinen 89C52 
nicht. Die 6er und 7er Win Versionen gehen mit PE und sicher auch mit 
Wine würde ich dir aber fürs erste nicht empfehlen. Make tool kennst du 
ja sicher und kannst dann jedes x-beliebige verwenden.

Übrigens sieht dein Prozessor aus wie eine Kopie der Philips 89C52RC/RD 
Serien. Wurden später von Atmel gekauft IIRC. Dafür gibt's auch so ein 
DOS Programmiertool noch irgendwo auf einer meiner Platten.

Wenn du mit diesen DOS Programmen unter Linux was anfangen kannst, dann 
melde dich.

von Scherg (Gast)


Lesenswert?

Ich verwende den ASEM-51 (http://plit.de/asem-51/home.htm) und SCITE als 
Editor... allerdings ist der 8051 schon etwas OUT.

Das letzte MCS51 Projekt habe ich mit dem NXP P89LPC920 gemacht, jetzt 
ist der "Not recommended for new design"

MCS51 liegt im sterben ;-)

von Lothar (Gast)


Lesenswert?

Scherg schrieb:
> Das letzte MCS51 Projekt habe ich mit dem NXP P89LPC920 gemacht, jetzt
> ist der "Not recommended for new design"

Das stimmt NXP wollte seine LPC900 mit 8051 durch die LPC800 mit ARM 
ersetzen mit denselben Packages zum gleichen Preis. Das hat aber nicht 
funktioniert, die LPC800 sind nicht so günstig zu fertigen wie gedacht, 
obwohl für viele Anwendungen gut geeignet.

Die 8051 Konkurrenz freut das, Silabs hat mit neuen 8051 in 2016 Umsatz 
und Gewinn enorm gesteigert:

http://www.silabs.com/products/mcu/8-bit/Pages/efm8.aspx

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter D. schrieb:
> Die 11,0592Mhz werden oft verwendet, weil man damit die Baudrate genau
> einstellen kann.
> Die 12MHz benutzen gerne Anfänger, um Zeiten genau in 1µs hinschreiben
> zu können.
> Erfahrene Programmierer lassen sich die Konstanten einfach vom Compiler
> ausrechnen und schreiben nur die Formel hin mit einem Define für F_CPU.
Und sie wissen dann natürlich auch, dass der Compiler runden muss und 
evtl. der Quarz für die gewünschte Baudrate nicht taugt, oder eben keine 
genaue µs erreicht werden kann.
Ein Anfänger kann das nicht so leicht abschätzen. Oder er ist sich 
dieses Problems gar nicht bewusst...

von Scherg (Gast)


Lesenswert?

Lothar schrieb:
> Die 8051 Konkurrenz freut das, Silabs hat mit neuen 8051 in 2016 Umsatz
> und Gewinn enorm gesteigert:
>
> http://www.silabs.com/products/mcu/8-bit/Pages/efm8.aspx

Also korrigiere ich mich: Der 8051 ist tot, es lebe der 8051. ;-)

Das dieses Uraltdesign solange durchhält ist wirklich bemerkenswert.

von Peter D. (peda)


Lesenswert?

Andi B. schrieb:
> Übrigens sieht dein Prozessor aus wie eine Kopie der Philips 89C52RC/RD
> Serien. Wurden später von Atmel gekauft IIRC.

Nö, Atmel hatte die Flash 89C51 zuerst im Programm. Die mit Bootloader 
und CAN haben sie von Themic übernommen, deshalb heißen die auch 
T89C51CC01.
Atmel hat auch viele 89C51 auf 1-Takter umgestellt (XTAL/1). Sie können 
aber weiterhin auf XTAL/6 oder /12 konfiguriert werden.

Philips hat nach der Übernahme durch NXP sein gesamtes 8051 Programm 
geschreddert.
Mit Atmel hatten die nie was am Hut. Das merkt man leider auch am I2C 
der Atmels, das ist buggy, sieht aber von der Programmierung dem 
original 80C552 sehr ähnlich. Es kann sich verklemmen, daher muß man ein 
Timeout aufsetzen und es neu starten.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Scherg schrieb:
> Das dieses Uraltdesign solange durchhält ist wirklich bemerkenswert.

Der Befehlssatz des 8051 ist für mich ein Musterbeispiel an 
Geradlinigkeit und Effektivität. Bitadressierbarkeit, das flexible 
Speicherdesign und die simple Erweiterbarkeit finde ich bis heute zwar 
erreicht, aber nicht übertroffen. Es macht Spass, die Kiste in Assembler 
zu programmieren und das kann ich nicht von jedem MC sagen.

Schade, das beim Board des TE vermutlich zu wenig Platz ist wg. des 
Bootloaders. Ansonsten wäre sicher auch MCS-52 Basic eine lustige Sache.

: Bearbeitet durch User
von jjflash (Gast)


Lesenswert?

... lustig ist, dass in den Datenblättern von STC (die, die ich gefunden 
habe) so nichts von einem Bootloader steht.

Wenn das sauber dokumentiert wäre wie dieser funktioniert, würde ich mir 
einen Chip interessehalber bestellen um den an mein MCS51 Equipment 
anzupassen.

Wenn mir hier jemand Links nennen kann (außer den offiziellen von STC) 
wäre schön für mich !

von Lothar (Gast)


Lesenswert?

jjflash schrieb:
> lustig ist, dass in den Datenblättern von STC (die, die ich gefunden
> habe) so nichts von einem Bootloader steht

Da gibt es ein Kapitel "Typical Application Circuit for ISP" wo man 
sieht, dass es einen werksseitigen Power-On Bootloader für RX/TX gibt, 
der sich "ISP Monitor" nennt.

Matthias S. schrieb:
> Schade, das beim Board des TE vermutlich zu wenig Platz ist wg. des
> Bootloaders. Ansonsten wäre sicher auch MCS-52 Basic eine lustige Sache.

Da sollte genug Platz sein, der "ISP Monitor" ist minimal. Besser wäre 
aber einen aktuellen 8051 zu nehmen:

EFM8BB3 mit 64K Flash kommt werksseitig mit einem 512 Byte Bootloader, 
der Rest ist also frei. Der Bootloader ist ausserdem ganz oben, so dass 
das User Programm ganz normal ab Adresse 0000 läuft. Und der Bootloader 
wird durch einen Boot-Pin gestartet, also keine Wartezeit wie bei einem 
"Monitor"

http://www.silabs.com/products/mcu/8-bit/Pages/efm8.aspx

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Lothar schrieb:
> Da sollte genug Platz sein, der "ISP Monitor" ist minimal.

8052 Basic hat in der letzten Version noch etwa 10 Bytes frei. Da wird 
kein Bootloader passen.

Lothar schrieb:
> http://www.silabs.com/products/mcu/8-bit/Pages/efm8.aspx

Das bringt dem TE aber nichts, denn er hat ja schon ein Board - und 
danach weiter auf 8051 zu setzen, wird wohl nicht passieren.
Immerhin fällt mir da ein 10-Pin Verbinder auf, der durchaus die ältere 
ISP Programmierschnittstelle für z.B. 89S52 oder Mega8515 sein könnte.
Falls das so ist, könnte der TE nach Anschaffung eines ISP 
Programmierers dann die o.a. Typen im Board verwenden. Der z.B. AVRISP 
MkII kann sowohl den Mega als auch den 89S52 flashen, benötigt lediglich 
einen Adapter von 6-Pin auf 10-Pin ISP.

von ./. (Gast)


Lesenswert?

> Immerhin fällt mir da ein 10-Pin Verbinder auf, der durchaus die ältere
> ISP Programmierschnittstelle

Das wird eher die JTAG-Schnittstelle sein.

Passende JTAG-Adapter gibt es von Silabs und natuerlich etwas
guenstiger auch vom freundlichen Chinesen.

Funktioniert mit Keils C89 unter M$-Win tadellos.

Linuxer bleiben da wohl aussen vor.

von Andi B. (andi_b2)


Lesenswert?

Peter D. schrieb:
> Andi B. schrieb:
>> Übrigens sieht dein Prozessor aus wie eine Kopie der Philips 89C52RC/RD
>> Serien. Wurden später von Atmel gekauft IIRC.
>
> Nö, Atmel hatte die Flash 89C51 zuerst im Programm. Die mit Bootloader
> und CAN haben sie von Themic übernommen, deshalb heißen die auch
> T89C51CC01.
> ....
> Philips hat nach der Übernahme durch NXP sein gesamtes 8051 Programm
> geschreddert.

Hm, mein Philips Programming Guide für die 89C51Rx (RA - RD) Familie ist 
von 1998. Mein Temic Preliminary T89C51RD2 von 2000. AFAIR waren die 
Temic Teile damals schon verbesserte Versionen gegenüber Philips. Und 
Philips hat diese 89C51Rx schon lange aufgegeben bevor sie sich in NXP 
umbenannt haben. Und ja, Atmel hat die Temic übernommen IIRC zu einer 
Zeit wo Philips diese Serien schon abgekündigt hat.

Aber egal, ist eh nur mehr Leichenfledderei. Zum Spielen kann man MCS51 
nach wie vor verwenden und vor allem um zu Lernen wie man es besser 
heutzutage nicht mehr macht. Die die nichts anderes kennen, werden auch 
heute noch glücklich damit. Anfängern sollte man aber solch 
Steinzeitarchitektur eher nicht empfehlen, sondern besser irgendeinen 
kleine ARM µC. Aber wenn jemand unbedingt will, die passenden 
Steinzeittools dazu hab ich noch.

von wine (Gast)


Lesenswert?

123 4. schrieb:
> sondern Linux  ,was die  Wahl der Programme evtl. einschränken könnte.

Evtl. wenn man was gerade ganz neues fuer Win10 nutzen will,
den ganze alten DOS, W95-Win8 Kram  kriegt man doch fast immer mit der 
freien Win-API wine zum laufen.

https://appdb.winehq.org/objectManager.php?bIsQueue=false&bIsRejected=false&sClass=vendor&iId=629&sAction=view&sTitle=View+Developer

aktuell ist wohl Version 9.56,
falls interessiert einfach probieren und berichten!

von Scherg (Gast)


Lesenswert?

Matthias S. schrieb:
> Der Befehlssatz des 8051 ist für mich ein Musterbeispiel an
> Geradlinigkeit und Effektivität. ...

Stimmt, deshalb "quäle" ich meine Azubis auch noch heute damit ;-)

von Scherg (Gast)


Lesenswert?

Andi B. schrieb:

> ... Anfängern sollte man aber solch
> Steinzeitarchitektur eher nicht empfehlen, sondern besser irgendeinen
> kleine ARM µC...

Aber ARM programmierst du doch nicht mehr in Assembler, oder? Das 
Verständnis für Prozessoren erlangt man am Besten von ganz unten, als 
Grundlagenvermittlung ist das MCS51 völlig ausreichend.

von Christopher J. (christopher_j23)


Lesenswert?

Markus F. schrieb:
> SDCC kann auch 8051 Code erzeugen und ist für Linux verfügbar.
>
> Kein Grund, Windows zu installieren...

... und die Performance des SDCC scheint sich auch gerade verdoppelt zu 
haben:

https://acassis.wordpress.com/2016/07/20/sdcc-went-from-worst-stm8-compiler-to-best-in-a-very-short-time/

von Andi B. (andi_b2)


Lesenswert?

Scherg schrieb:
> Andi B. schrieb:
>
>> ... Anfängern sollte man aber solch
>> Steinzeitarchitektur eher nicht empfehlen, sondern besser irgendeinen
>> kleine ARM µC...
>
> Aber ARM programmierst du doch nicht mehr in Assembler, oder? Das
> Verständnis für Prozessoren erlangt man am Besten von ganz unten, als
> Grundlagenvermittlung ist das MCS51 völlig ausreichend.

Nein, ich programmiere fast nichts mehr in Assembler. Obwohl es 
natürlich manchmal hilft wenn man es kann. Einem Anfänger würde ich aber 
auch fürs Grundlagenstudium bzw. Assemblerlernen zu einer aktuellen RISC 
Architektur (Cortex-Mx) raten. Oder meinetwegen einem PIC, oder wenn er 
unbedingt will irgendeinem Atmel. MCS51 mit seinen verschiedenen 
indirekten Adressierungen und vor allem deren Begrenzungen - never ever 
again. Da lernst du viel Schrott den du bei keiner aktuellen Architektur 
mehr brauchen kannst. Aber wenn du natürlich Azubis quälen willst, dann 
ist der 51er ideal ;-)

von W.S. (Gast)


Lesenswert?

Andi B. schrieb:
> MCS51 mit seinen verschiedenen
> indirekten Adressierungen und vor allem deren Begrenzungen - never ever
> again. Da lernst du viel Schrott den du bei keiner aktuellen Architektur
> mehr brauchen kannst.

Das ist allerdings ein Irrtum deinerseits.

Das, was man da lernen kann, sind Kenntnisse über 
Prozessorarchitekturen, hier eben sowas wie Codesegment, Datensegment, 
externes Datensegment. Jeder Lackel, der zu allererst mit C anfängt, 
beschwert sich hingegen, wenn sein toller char*, den er mal auf ein 
Funktionsargument und dann auf nen const char[] anwenden will, nicht so 
tut wie er es gedacht hat.

Man kann auch (sofern man sich nicht zu blöd anstellt) den Umgang mit 
dem Carry, mit Schiebe- und Rotationsbefehlen und vieles mehr lernen - 
und sowas hilft auch für später und für ganz andere Architekturen.

Kurzum, man lernt dazu und erweitert seinen Horizont. Das ist ne 
wichtige Grundlage. Vergleich's mal mit dem Fahrschul-Unterricht auf 
irgend einem Auto, was man später selbst nicht zu fahren gedenkt. Auch 
dieser Unterricht lohnt sich dennoch.

W.S.

von Lothar (Gast)


Lesenswert?

Andi B. schrieb:
> MCS51 mit seinen verschiedenen indirekten Adressierungen und
> vor allem deren Begrenzungen

Das ist doch bei den Cortex-M ganz ähnlich. Bei vielen ist das RAM nicht 
an einem Stück sondern aufgeteilt auf AHB, APB etc. mit 
unterschiedlicher Latenz und undefinierten Adressen dazwischen. Dann 
noch Bit-Banding und Bit-adressierbare Peripherie und vielleicht noch 
eine MPU ...

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Das ist doch hier kein Platz für diese alte Grundsatzdiskussion. Der TE 
hat nun mal dieses gar nicht schlechte Board, auf dem MCS51 oder auch 
AVR Platz nehmen kann und hat sonst alles drauf, was er braucht, um z.B. 
eine Uhr zu programmieren, inklusive Knöpfen und Displays.
Da braucht man keinen ARM, sondern eher Köpfchen.
Und das Adressschema von MCS51 ist doch ein Spaziergang gegenüber den 
Eigenheiten anderer MC Familien.
Wenn es keine Unterlagen zu dem Board gibt, würde ich dem TE empfehlen, 
sich mal einen Abend hinzusetzen und mit Durchgangspieper die Belegung 
von 10 pol. Leiste, den Knöpfen und der Displays durchzuklingeln und zu 
notieren.
Wenn wir das gepostet kriegen, haben wir in Nullkommanichts raus, was 
das Board ist und wie der Pfostenverbinder gemeint ist.

von 123 4. (Firma: Privat) (tufar)


Lesenswert?

Matthias S. schrieb:
> Das ist doch hier kein Platz für diese alte Grundsatzdiskussion.
> Der TE
> hat nun mal dieses gar nicht schlechte Board, auf dem MCS51 oder auch
> AVR Platz nehmen kann und hat sonst alles drauf, was er braucht, um z.B.
> eine Uhr zu programmieren, inklusive Knöpfen und Displays.
> Da braucht man keinen ARM, sondern eher Köpfchen.
> Und das Adressschema von MCS51 ist doch ein Spaziergang gegenüber den
> Eigenheiten anderer MC Familien.
> Wenn es keine Unterlagen zu dem Board gibt, würde ich dem TE empfehlen,
> sich mal einen Abend hinzusetzen und mit Durchgangspieper die Belegung
> von 10 pol. Leiste, den Knöpfen und der Displays durchzuklingeln und zu
> notieren.
> Wenn wir das gepostet kriegen, haben wir in Nullkommanichts raus, was
> das Board ist und wie der Pfostenverbinder gemeint ist.

Erstmal Vielen dank für das raus-nehmen der Heißen Luft bei so mancher 
Diskussion.Ich bin es auch manchmal echt leid immer und immer wieder 
sich mit irgendwelchen Leuten sinnlos zu Unterhalten wo es echt zu 
keiner Lösung kommt. Das was da ist soll reichen und damit sollte man 
auch klarkommen. Inwiefern man welche Lösung dann herausbekommt liegt im 
ermessen der jeweiligen Leute die zusammenarbeiten wollen/möchten.
Ich habe auch nie Behauptet das der 8051 das Top aktuelle auf dem Markt 
ist. Er ist schon ein paar Tage alt aber das Bedeutet das es zu dem 
Bereich genug Dokumentation schon gibt um Projekte die man vorhat 
entsprechend Umzusetzen. Es geht halt mitunter um einen Entsprechenden 
Compiler wie beim Ardunio das z.B. Sketch um die Programmierung  mal 
Anzufangen. Die Nächte werden länger ,die Tage kürzer und man hat eben 
Zeit sich auch damit zu Befassen. Und wenn es einen Compiler gibt ,gibt 
es auch dazu entsprechende Dokumentation worauf man sich Stützen kann.
Wenn also so ein Entsprechender Compiler für Linux existiert um damit 
diese Controller anzusprechen und zu Programmieren lassen sich auch 
viele Schnittstellen und  Pins ebenfalls leichter herausfinden und man 
kann so sich dann auch eine entsprechende Dokumentation zurechtbasteln.
Sorry wenn ich mich jetzt wieder Melde ,aber ich hatte Beruflich viel zu 
tun und musste das Projekt "Mikrocontroller" auf Eis legen.

Ich habe vor einigen Tagen versucht mal ein Schaltplan von dem 
Entwicklerboard zu kriegen ,bin aber kläglich gescheitert mangels 
Informationen zum Schaltplan selbst.

Das "Ausklingeln" der Entsprechenden Pins kann ich auch gerne die Tage 
machen müsste aber auch mal Konkret eine Info kriegen welche 
Pins/Anschlüsse) gemessen werden sollen.

von 123 4. (Firma: Privat) (tufar)


Lesenswert?

Andi B. schrieb:
> Falls du PL/M 51 brauchst, irgendwo muss es noch rumliegen. Das
> war die
> erste Hochsprache für die 51er. Damit hab ich damals einen Wecker mit
> dem 51er gebaut. Noch bevor Keil und IAR C Compiler geschrieben haben.
> Übrigens war IAR damals kaum brauchbar im Vergleich zu Keil. Intel ASM51
> und die alten Keil C Versionen sind alles DOS Versionen welche auch
> sicher mit DOSBOX laufen würden falls du Bedarf hast. Oder kann man ev.
> unter Linux auch 'inline' DOS Befehle laufen lassen? Unter OS/2 liefen
> die alle out of the box :-) Selbst das Hitex C51 ICE geht mit Win31. Und
> mehr als den alten DOS Keil 3.2 C Compiler braucht man für deinen 89C52
> nicht. Die 6er und 7er Win Versionen gehen mit PE und sicher auch mit
> Wine würde ich dir aber fürs erste nicht empfehlen. Make tool kennst du
> ja sicher und kannst dann jedes x-beliebige verwenden.
>
> Übrigens sieht dein Prozessor aus wie eine Kopie der Philips 89C52RC/RD
> Serien. Wurden später von Atmel gekauft IIRC. Dafür gibt's auch so ein
> DOS Programmiertool noch irgendwo auf einer meiner Platten.
>
> Wenn du mit diesen DOS Programmen unter Linux was anfangen kannst, dann
> melde dich.

Hallo Andi B.

Danke für das Angebot ,doch leider kann ich da nur wenig was damit 
Anfangen. Unter Wine mit Linux ist zwar vieles Möglich aber die 
Kommunikation über USb ,daran scheitert es kläglich. Es gibt Ansätze wo 
es ein paar Lösungen dazu gibt ,aber die basieren eher auf ab Win XP und 
sind nicht für DOS Gedacht. Natürlich könnte ich dann in einer "DOSBOX" 
den Kram schreiben ,Dann Abspeichern und zuletzt über andere Tools dann 
das Programm auf den Controller bringen .aber das wäre bei jedem Versuch 
( wenn man Fehler such oder neu es hinzufügt/altes entfernt) der im 
Dauerzustand der auf Zeit hin echt nervig werden kann.

von STMler (Gast)


Lesenswert?

Andi B. schrieb:
> Nein, ich programmiere fast nichts mehr in Assembler. Obwohl es
> natürlich manchmal hilft wenn man es kann. Einem Anfänger würde ich aber
> auch fürs Grundlagenstudium bzw. Assemblerlernen zu einer aktuellen RISC
> Architektur (Cortex-Mx) raten. Oder meinetwegen einem PIC, oder wenn er
> unbedingt will irgendeinem Atmel.


Witzig, Du empfiehlst also die noch ältere vorsteinzeitliche 
PIC-Architektur und lehnst die 8051er ab.
Ahja...

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

123 4. schrieb:
> Das "Ausklingeln" der Entsprechenden Pins kann ich auch gerne die Tage
> machen müsste aber auch mal Konkret eine Info kriegen welche
> Pins/Anschlüsse) gemessen werden sollen.

Für eine Uhr ist natürlich die Belegung des Displays und die der Taster 
vorrangig. Dazu besorgst du dir am besten ein Datenblatt des 8051 und 
druckst dir das Pinout aus.
Darein schreibst du dann, welche Portbeinchen mit welcher Peripherie 
verbunden ist. Durchgangspiepser bzw. Ohmmeter braucht man dazu 
allerdings.
Da du die Kiste programmieren musst, ist noch die Belegung des 
Pfostenfeldverbinders wichtig.

: Bearbeitet durch User
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.