Einstieg in 8051 - Atmels AT89S52 oder?

Gast #6185936
Lesenswert?

Hallo zusammen,
ich werde vermutlich nächstes Jahr von der Schule aus (muhahah* wenn den 
welche stattfindet - sorry) mit der 8051er Architektur mich vertraut 
machen. Dabei wirds um so Sachen wie Assembler und Co. sowie C gehen, 
die Architektur, etc.

In der Schule haben wir so einige Entwicklerbord mit dem Abgekündigten 
Infineon C515 einige Keil Entwicklerboards ein paar alte Multimeter mit 
8051er Clone etc. bei den meisten ist die Schrift so verblasst das man 
Sie nicht mehr lesen konnte.

Ich hab nun den Atmel AT89S52 ins Auge gefasst, dieser scheint dank 
Microchips "nicht abkündigen" Politik wahrscheinlich noch eine Zeitlang 
gut und günstig verfügbar zu sein...zudem gibt zu dem Tonnenweise 
Beispiele und Co.

Nun die eigentliche Frage: wenn ich also so ein Assembler Programm für 
eines dieser Antiken 8051er (z.B. dem C515) hätte würde das mehr oder 
weniger oder Zicken auf dem AT89S52 laufen? Ist also die einzige 
"Herausforderung" dann noch das -korrekte- flashen des AT89S52?

Bin da noch nicht ganz so vertraut mit dem ganzen "alten" Zeug

---btw. falls jemand ein gutes -und empfehlenswertes- Assembler Tutorial 
dann für 8051er Architektur hat, immer her damit :D hehe
(Firma: matzetronics) #6185944
Lesenswert?

Der AT89S52 ist ein vollwertiger 8052 und kann auch mit den ISP Tools 
von Atmel/Microchip geflasht werden, ich flashe ihn mit dem AVRISP MkII.

Er hat einige kleine Erweiterungen, die aber für den Betrieb nicht 
wichtig sind. Ja, alle Software für den 8051/8052 läuft also auf dem 
89S52, wie z.B. auch das Intel 8052AH Basic.

Thomas B. schrieb:
> falls jemand ein gutes -und empfehlenswertes- Assembler Tutorial
> dann für 8051er Architektur hat

Ich habe damals die 'Bibel', also das Microcontroller Handbook von Intel 
benutzt, da der Befehlssatz von MCS-51 so easy und logisch ist, das 
selbst ein Anfänger keine grossen Hürden überwinden muss. Spezialdinge 
wie 'Bit Addressable' usw. muss man ja nicht gleich am Anfang benutzen, 
wenns nicht gerade um Ports geht.
#6185948
Lesenswert?

Hallo,
Thomas B. schrieb:
> ...wenn ich also so ein Assembler Programm für eines dieser
> Antiken 8051er (z.B. dem C515) hätte würde das mehr oder
> weniger oder Zicken auf dem AT89S52 laufen?

Beschaffe dir doch mal die Datenblätter der beiden Bausteine und 
vergleiche den Assemblerbefehlssatz. Dann kannst du zumindest sehen ob 
es da große Unterschiede b.z.w. Erweiterungen bei den neueren Typen 
gibt.
In der Regel sind aber diese Unterschiede in der "Lernphase" irrelevant. 
Da geht es zunächst mal darum überhaupt zu verstehen wie die Architektur 
funktioniert.

rhf
Gast #6185964
Lesenswert?

Jooooo schrieb:
> 8051? Sind wir denn in der Steinzeit??

Bevor man mit Kanonen auf Spatzen schiesst und sich generell angewöhnt 
zu programmieren mit der Prämisse "Speicher und MHz sind immer genug 
da", macht es durchaus Sinn sich mal anzuschauen wie "sowas" denn 
überhaupt funktioniert.

Und dafür ist ein 8015 mit ASM immernoch vorzüglich geeignet.

Auf DIE Basics kann man ja aufsetzen. Das genau DIE Basics heute aber 
oft fehlen sieht man nur allzu oft.


Und nebenbei... für die meisten Dinge für die ein kleiner ARM heute 
genutzt wird, kommt ein 8051 auch noch klar.
Gast #6185976
Lesenswert?

Jooooo schrieb:
> 8051? Sind wir denn in der Steinzeit??

Du schon, verwendest wohl noch den deutlich älteren PIC-uC.

8051 ist eine bessere Wahl als AVR, denn es gibt viel mehr Hersteller 
die genau das integrieren, was man braucht, und nicht immer denselben 
Chip mit anderem PinOut wie bei AVRs. Bisher hat den 8051 nur behindert, 
daß es keinen ordentlichen C Compiler gratis gab, abe Keil ist 
inzwischen gratis, also ist dieser Hinderungsgrund der Verbreitung 
weggefallen.

Microchip/Atmel hat eine ganze Palette vom kleinen AT89C2051 über 
AT89C51/53, der auch mit externem Speicher erweitert werden kann, und 
den T89C51CC01 von Atmel/Temic mit 32k Flash, 2k EEPROM, 8*10bit 4, CAN 
Bus (der T89C51RD2 vergisst jedoch ohne Reset-Controller manchmal den 
Inhalt des Programmspeichers) bis 66 MHz. http://www.sinowealth.com/ hat 
neben mit A/D und RC Takt und 7*80mA Ausgängen erweiterten 2051/4051 
auch beispielsweise den SH79F3212 mit 13 x 12 bit A/D, 1% genauem RC 
Takt, 8 x Touch-Key, 7 x 100mA Ports und I/Os mit wählbar 75/100/150/300 
Ohm für 10,20,30,40 mA LED Strom in SOP20/SOP28.

Silabs bietet 14-bit 1MSPS A/D oder 16*12bit A/D 4*12bit D/A, 64 I/O und 
64k Flash+4k RAM oder den C8051F4 mit 100MHz, Analog Devices hat den 
ADUC824/834 mit 24bit A/D, 3 x 16 bit A/D, 12 bit D/A, PWM und 62k 
Flash, 4k EEPROM, 2k RAM und http://www.dalsemi.com/ (Maxim) den 50MHz 
schnellen DS89C420, Tezzaron den TSCR8051L bis 200MHz, und Texas 
Instruments den TUSB3210 mit USB Interface (miese Doku, kein 
Herstellersupport), Cypress EZ-USB (bessere Doku) oder den MSC1210 mit 
32k Flash (partitionierbar für Daten und Programm), 1k RAM, 24 Bit ADC 
mit PGA und 2 UARTs. Cheng Xin Wei Technologies baut 8051 abgeleitete 
Flash uC mit A/D und PWM CX8F2810E CX8P1710C in SO8 und CX8F2811E 
C8XP1711C in SO14 ohne weitere Doku.

STC Micro http://www.stcmcu.com/ hat nicht nur nützlich erweiterte 8051 
wie STC15F20x (3.8-5.5V) oder STC15L20x (2.4-3.6V) (205EA kaufen zum 
Entwicklen), die sich einfach über Rx/Tx flashen lassen mit der 
Programmiersoftware /STCISP/stc-isp-15xx-v6.86L.zip sondern auch gute 
Doku /datasheet/stc/STC-AD-PDF/STC12C2052AD-english.pdf mit vielen 
Beispielen und seit dem Keil-C kostenlos ist leicht nachvollziehbar und 
die USB fähigen STC8F2Kxx, STC8A4Kxx, aber man sollte chinesisch können. 
Die STC12xxx brauchen leider ein Programmiergerät.

Bis 300 GradC arbeiten HT83C51 im Keramikgehäuse von 
https://aerospace.honeywell.com/en/products/navigation-and-sensors/high-temperature-microelectronics

zeig mir auch nur einen AVR der dasselbe bietet. Bei ARM sieht es etwas 
besser aus als die obsolete Familie AVR, aber lange nicht so gut.
Gast #6185999
Lesenswert?

moin Thomas,


mein Assembler mal so zum spielen:
MASM51 in neues Verzeichnis auspacken,
MASM51 Starten, da sollte gleich die LCD_Test erscheinen, auf den 
Käfer-Button drücken ( das ist der Debug-Modus ), dann den Button Run 
drücken und zuschauen.

Viel SPASS!
Pieter
Angehängte Dateien:
Gast #6186024
Lesenswert?

> den Atmel AT89S52 ins Auge gefasst

Eigentlich sind alle Konkurreten besser.
Einige wurden ja schon aufgezaehlt.

Wenn man sie noch irgendwo kriegt:

ST UPS323X
8051-Code
256 k + 32 k Flash
8 k SRAM
3000 gate PLD with 16 macrocells
JTAG

Ansonsten ist man mit den 51ern von Silabs sicher besser beraten.
Den passenden (JTAG-)Debug-Adapter gibt es guenstig aus China.

Unbedingt lesenswert: "THE FINAL WORD ON THE 8051"
Dagegen ist das deutsche Standardwerk recht muede...

> Assembler Tutorial dann für 8051er Architektur
gibts bei Silabs: "8051 Instruction Set".
Gast #6186127
Lesenswert?

MaWin schrieb:
> Du schon, verwendest wohl noch den deutlich älteren PIC-uC.

Naja, ich lass euch mal weiter mit eurem Steinzeit Zeug spielen. Wenn 
der TO wirklich was auf dem aktuellen Stand lernen möchte, soll der 
einen STM8 nehmen oder einen kleinen ARM.

Die C8051 von silabs sind ne Katastrophe. Oftmals seltsames Verhalten 
und z.B. nur mit Codebanking mehr als 64k nutzbar. Schmeiss weg die 
Kacke.
Gast #6186133
Lesenswert?

Ich habe/hatte eher mit den Klassikern von Silabs gearbeitet.
C8051F020, C8051F320, C8051F350.

Wenn man auf ein DIP-Gehaeuse Wert legt, ist man bei Silabs aber falsch.

Bzgl. des (USB-)JTAG-Adapters gab/gibt es praktisch nur einen fuer
die Silabs 8051er. Der funktioniert mit der USBHID.DLL von Silabs
auch mit dem Keil/MDK-Debugger.
Gast #6186161
Lesenswert?

Ok, also ich glaub ich muss noch was ergänzen.

1. Ich verwende KEIN Windows -sonder Linux, hierbei ist die Disto egal 
(sorgt nur wieder für Diskussion, wie die 8051 Basher....)
2. Ich würde sehr gerne im Verlauf dann JTAG nutzen können
3. Brauche weder zwingen 5V noch DIP Gehäuse, da ich mir (und ggf. den 
Klassenkameraden) einfach ein kleines Development-Board basteln werde - 
ala China-PCB


um nochmal auf meinen angesprochenen AT89S52 zu kommen, ist der also 
schlecht oder "ungeeignet"? (*ja ich bin ein 
Atmel/Microchip-Fanboy....damit halt groß geworde*)
#6186192
Lesenswert?

man kann das zwar infrage stellen ob ein x51er heute noch zeitgemäs ist. 
Ganz sicher wird heute niemand mehr mit den ollen Siemens / Infinion 
Teilen anfangen.

Zum Lernen sind x51 Controller aber immer noch hervoragend geeignet. Das 
gilt insbesonders dehalb weil alle die gleichen Instruktionen verwenden 
und es viele 100 Anbieter gibt.

Da du unter Linux arbeiten willst ist die Verfügbarkeit an Compiler 
etwas eingeschränkt da bleibt dann wohl nur SDCC. Neuere Keil µVision 
Umgebungen werden unter Wine vermutlich nicht mehr laufen. Der 
Compiler/Linker selbst ist dabei noch nicht mal das Problem, der dürfte 
auch unter wine problemlos funktionieren. Vielmehr dürfte die Lizenz 
eher Schwierigkeiten bereiten.

Ich würde eventuell eine virtuelle Win Maschine aufsetzen. Du hast 
einfach mehr Auwahl bei den Tools.


Thomas
#6186206
Lesenswert?

Thomas B. schrieb:
> um nochmal auf meinen angesprochenen AT89S52 zu kommen, ist der also
> schlecht oder "ungeeignet"?

Der AT89LP51RD2 ist einfach schneller und hat viel mehr Flash, SRAM, 
Peripherie (ADC usw.). Und braucht keinen speziellen SPI-Programmer.
Er unterstützt auch IAP, d.h. man kann sich seinen eigenen Bootloader 
schreiben.
Du kannst ja eine DIP-40 Fassung auf die Platine setzen und dann beide 
Typen ausprobieren.
Gast #6186232
Lesenswert?

> AT89S52

Wenn ich 8051 nutze, muss ich gewisse Vorteile sehen.
Die liegen in der Peripherie. Also z.B. ein integrierter PLD,
oder AD- und DA-Wandler, einfaches I2C oder USB.
Und da sieht es beim 89S52 eben recht duester aus.

Beim Kennenlernen mag das ja noch nicht stoeren, aber wenn
man erlernte Dinge dann umsetzen will, wird man wohl etwas
anderes brauchen.
Und koennte feststellen, dass mit mit dem anderen auch
gleich haette beginnen koennen.
Das koennte z.B. ein Silabs C8051F020 sein.

Fuer Linux oder andere Unixe kenne ich keine Hersteller mehr,
die im Controllerbereich noch Treiber fuer ihre JTAG-Adapter
anbieten. Ich nutze auch Linux u.a. kommerzielle Unixe, aber
im Bereich Controller ist ein gewisser Pragmatismus angezeigt.

Daher ueberlasse es ich dir selber nach Loesungen fuers
Debugging zu suchen.
Ausser einem per Terminal bedienten Monitorprogramm wird
da aber vermutlich nicht viel herumkommen.
Gast #6186245
Lesenswert?

Hinzu kommt, dass die silabs C8051 wirklich furchtbar teuer sind. Alao 
so richtig überteuert. 7€ für einen C8051 mit 8bit, USB, 3 Timern und 
128k, welche nur über Banking erreicht werden kann. Für 2€ kriege ich n 
STM32 der ein vielfaches von dem kann.

Wo liegt da der Vorteil??????
#6186299
Lesenswert?

Jooooo schrieb:
> Hinzu kommt, dass die silabs C8051 wirklich furchtbar teuer sind.

Das sind auch alles alte Kamellen, die neuen Silabs Designs heißen EFM8.

Und da gäbe es auch welche für 50 Eurocents und weniger pro Stück.

Zum Einstieg empfehle ich aber ein passendes STK (z.B. SLSTK2022A), denn 
dort ist auch gleich ein Programmierer und Debugger(!) mit drauf.
Gast #6186552
Lesenswert?

Du hast ja keine Wahl. Der 8051 ist vorgegeben. Die ATMEL sind dabei 
schon Ok. AT89c4051 ist gut für den Einstieg. Da musst du nur noch einen 
Promer haben.

Alternativ gibt es gute Simulatoren für die 8051er. Das reicht für den 
SW Einstieg und nimmt den Frust der HW Inbetriebnahme. Du kannst dann 
auch tief in den uC blicken und hast alle Innerein immer im Blick.
Gast #6186588
Lesenswert?

Atmels AT89S52 oder?...

.. Nuvoton's N76E003 zum Beispiel. Das ist ein eher kleiner 8051 mit nur 
18K Flash und 12 Bit ADC und spottbillig und in kleinem Gehäuse - und 
mit nur 1 Takt pro Befehl. Ist also im Vergleich zum Ur-typ sauschnell.

Ich schätze mal, zum Lernen und Assembler programmieren lernen reicht 
der völlig aus. Da sind ohnehin keine Boliden gefragt.

W.S.
#6186601
Lesenswert?

Warum denn nicht 8051?


Vor ein paar Jahren schenkte mir die Firma den alten uV2 Keil Compiler 
den wir schon ein Jahrzehnt nicht mehr brauchten und befaßte mich dann 
mit einem Atmel Flash AT89F51RD2. War ganz nett damit zu arbeiten und 
fand das irgendwie nostalgisch schön. Nur den internen ADC konnte ich 
ums Verrecken nicht richtig zum Laufen kriegen. Alles andere 
funktionierte Bestens. Man kann sich in alle uC einarbeiten. Bis jetzt 
kam ich noch mit allen uC klar mit denen och mich befasste.

Der freie uV4 von Silabs funktioniert übrigens auch mit den Atmel 
Schinken solange man sich die richtigen Header Dateien besorgt.

Leider wird heutzutage nicht mehr viel für die Zilog Encores getrommelt. 
Ich befasste mich früher mal damit. Freies IDE und Debugger. Mit dem 
Teil ließ sich wunderschön arbeiten. Gab es auch als 64K Flash DIP40 
Version.

Ich glaube nicht, daß man sich für 8051er Interesse schämen muß. 
8-Bitter sind sogar eine nette Abwechslung wenn man sich im Betrieb nur 
mit den modernen Boliden befasst. Jedenfalls machen mir die 8-Bitter auf 
Hobby Basis eigentlich mehr Spaß wie die 32-Bit Kollegen in der Arbeit. 
Ist halt Geschmacksache und hängt auch von der Leistung ab die man 
braucht um zu entscheiden welche Architektur man wirklich nehmen soll. 
Für Real World Steuerung von Vorgängen die sich im ms-s Bereich 
abspielen ist ein 8-Bitter fast immer ausreichend.

Auch braucht man sich wie bei den 32-Bittern nicht mit mehreren tausend 
Seiten an Referenz Dokumenten vertraut machen.
Gast #6186980
Lesenswert?

Also ich setze den AT89C51ED2 gern und oft ein.
Dieser Controller hat viel Peripherie, ist ausgezeichnet dokumentiert 
und überall verfügbar. Bei den kleinen Mengen, die ich für meine 
Projekte brauche, spielt der Stückpreis für mich auch eine 
untergeordnete Rolle.

Eine überschaubare Auswahl an Entwicklungsboards gibt es übrigens auch.
Also falls der Selbstbau nicht Teil Deines persönlichen Lehrplanes ist, 
kannst Du Dir für 30-75 EUR ein umfassendes Set bestellen ;)
Gast #6187211
Lesenswert?

OhhK also ich hab mich mal in dieses Rabbithole vertieft.

Also ich werde sicher keine 30-70€ für EIN Dev-Board ausgeben. Lieber 
kauf ich mir davon noch 10x einen 7€ Chip  oder hau das Geld sinnvoll 
für einen JTAG-ICE Debugger raus.
*nicht böse gemeint, in irgend einer weise*

wirklich viel Programmspeicher brauche ich nicht, da ich z.Zt auch ohne 
Probleme meinen C/C++/Arduino-ish Code in weniger als 8kB 
unterbringe....also daher....

ABER was ich so mittlerweile sehe ist es "einfacher" einen integrierten 
ADC zu bedienen als einen externen, da man da direkt an die Flags 
rankommt welche z.B. habe fertig, etc. signalisieren ODER?
*hab ich das so richtig verstanden???
Gast #6187230
Lesenswert?

> ist es "einfacher" einen integrierten ADC zu bedienen
Das Starten reduziert sich auf das Setzen eines Bits in einem Register.

> habe fertig
Gibt es per Interrupt oder mit der Abfrage eines Bits in einem Register.

Extern angebunden braucht es:
- Pins fuer die Uebertragung
- ein Protokoll fuer die Uebertragung
Und die Geschwindigkeit leidet auch.

Warum benutzt man also interne AD-Wandler?
Weil man es kann.
Wenn der Kaefer keine hergibt, nimmt man einen anderen.

Interne ADCs bei Controllern decken mittlerweile einen sehr weiten
Bereich ab.
Beispielsweise Von 12 bit bei 12.5 Msps bis 24 bit Wandlungsbreite.
Man muss schon recht spezielle Anforderungen haben damit
externe AD-Wandler noetig sind.

Und, stell dir mal einen 8-Pinner vor wo nur 1 AD benoetigt wird...
Gast #6187236
Lesenswert?

Thomas B. schrieb:
> ABER was ich so mittlerweile sehe ist es "einfacher" einen integrierten
> ADC zu bedienen als einen externen, da man da direkt an die Flags
> rankommt welche z.B. habe fertig, etc. signalisieren ODER?
> *hab ich das so richtig verstanden???

ganz klares Jein ;)

Natürlich ist es einfacher einen internen ADC zu steuern bzw. 
abzufragen.
Aber es ist auch nicht schwer einen externen ADC abzufragen.

Da ist der Nachteil eher, dass ein externer ADC halt nicht so flexibel 
ist, was die Abtastrate betrifft. Ein es wäre ein weiterer Kostenfaktor. 
Ein zweikanaliger 10bit ADC liegt vermutlich schon so bei 2 EUR/Stück.
#6189047
Lesenswert?

MaWin schrieb:

> 8051 ist eine bessere Wahl als AVR, denn es gibt viel mehr Hersteller
> die genau das integrieren, was man braucht, und nicht immer denselben
> Chip mit anderem PinOut wie bei AVRs. Bisher hat den 8051 nur behindert,
> daß es keinen ordentlichen C Compiler gratis gab, abe Keil ist
> inzwischen gratis, also ist dieser Hinderungsgrund der Verbreitung
> weggefallen.

Keil mag ja relativ guten Code erzeugen, aber einen "ordentlichen C 
Compiler" würde ich ihn nicht nennen. Keil behauptet, dass der Compiler 
zum ANSI-C Standard von 1989 kompatibel sein, ist das allerdings auch 
nur eingeschränkt. SDCC ist bei der Standardkompatibilität deutlich 
weiter.
#6189206
Lesenswert?

Philipp Klaus K. schrieb:
> MaWin schrieb:
>
>> 8051 ist eine bessere Wahl als AVR, denn es gibt viel mehr Hersteller
>> die genau das integrieren, was man braucht, und nicht immer denselben
>> Chip mit anderem PinOut wie bei AVRs. Bisher hat den 8051 nur behindert,
>> daß es keinen ordentlichen C Compiler gratis gab, abe Keil ist
>> inzwischen gratis, also ist dieser Hinderungsgrund der Verbreitung
>> weggefallen.
>
> Keil mag ja relativ guten Code erzeugen, aber einen "ordentlichen C
> Compiler" würde ich ihn nicht nennen. Keil behauptet, dass der Compiler
> zum ANSI-C Standard von 1989 kompatibel sein, ist das allerdings auch
> nur eingeschränkt. SDCC ist bei der Standardkompatibilität deutlich
> weiter.

Es ist eben ein Unterschied, ob man Dinge entwickelt, weil man Kunden zu 
verlieren droht, oder weil man ein besseres (OSS-)Produkt haben will.

Danke für deine Arbeit!
(auch wenn ich den SDCC nur für die sigrok-Firmware für meine China-LA 
benutze)
#6189616
Lesenswert?

... ich weiß ja nicht, ob sich wirklich jemand noch mit dem MCS-51 
beschäftigt.

Gerade eben ist mein Linux-Live-System für Mikrocontrollerprogrammierung 
fertig geworden und ich habe ein erstes Image dafür erstellt (kein Spaß, 
insgesamt immer weider einmal habe ich da Jahre daran gebastelt).

Mit dem Ding können über sehr klassische Art und Weise Mikrocontroller 
programmiert werden (Editor - Make).

Im System ist ein Konsoleneditor vorhanden, im Desktop kann mit Geany 
programmiert werden.

Der Assembler ist ein sehr sehr rudimentärer und für den Einstieg sehr 
leicht zu handhabender : naken-asm

Der C-Compiler (weil alles Open Source ist) ist hier dann natürlich 
SDCC.

Für den Fall, dass der TO mit Linux umgehen kann, kann ich ihm einen 
Ordner mit MCS-51 Programmen machen das es ihm erleichtert, dort einen 
Einstieg zu haben.

Das "größte" Problem beim MCS-51 sind mittlerweile Programmieradapter, 
die einen Chip flashen können.

Meine Lösung hier ist einen AVR (früher hatte ich einen AT89C2015) zu 
nehmen, der einen AT89S52 flasht.

Vor einiger Zeit hatte ich das hier eingestellt gehabt:

Beitrag "Arduino - UNO Flashershield (Linux)"

... und über den Arduino konnten weitere AVR, MCS-51 und ein paar PIC 
geflasht werden.

Wenn man sich nur die Pins für den ISP-Connector des AT89S52 
herausführt, braucht man dieses Flashershield in Hardware nicht, 
erleichtert es aber ungemein.
Gast #6190017
Lesenswert?

Philipp Klaus K. schrieb:
> http://www.colecovision.eu/mcs51/

Carl D. schrieb:
> https://sourceforge.net/projects/mcu8051ide/

Die Simulation werde ich die Tage direkt mal testen.
Euch beiden vielen Dank für die Links, die sind schonmal sehr 
interessant.


Ralph S. schrieb:
> ... ich weiß ja nicht, ob sich wirklich jemand noch mit dem MCS-51 beschäftigt.
Noch nicht aber bald :D

> Meine Lösung hier ist einen AVR (früher hatte ich einen AT89C2015) zu nehmen, 
der einen AT89S52 flasht.
Ich dachte mir schon das ich mir einen Programmieradapter bauen 
werde/muss der auch den PROM programmieren können sollte. Ist ja 
heutzutage mit Arduino und Co. eigentlich kein Problem mehr da sehr 
schnell was lauffähiges zu haben.

> Für den Fall, dass der TO mit Linux umgehen kann, kann ich ihm einen Ordner mit 
MCS-51 Programmen machen das es ihm erleichtert, dort einen Einstieg zu haben.
Ja auf jeden Fall, darüber würde ich mich sehr freuen. Dann hab ich mal 
eine Art von Beispielsammlung.
#6190508
Lesenswert?

Thomas B. schrieb:
> Ich dachte mir schon das ich mir einen Programmieradapter bauen
> werde/muss der auch den PROM programmieren können sollte.

Der genannte AT89LP51 braucht keinen Programmieradapter, er hat einen 
UART-Bootloader eingebaut. Das Flip von Atmel gibt es auch als 
Linux-Version. Man kann sich aber auch ein Tool selber schreiben, die 
Bootloaderfunktionen sind gut dokumentiert. Im Prinzip schickt man 1:1 
das Hexfile rüber + Sonderfunktionen fürs Löschen, Fusebits usw.
Gast #6191343
Lesenswert?

Frage an die versammtelte 51er Kompetenz:

Ich habe im Ramsch eine Stange von D87C51FA gefunden, dazu habe ich 
Datenblätter hervorgekramt die von 128 Bytes RAM gemäß der Nomenklatur 
"51" erzählen, aber auch Eines das meint "256 Bytes RAM, 8K Eprom, 3 16 
Bit Timer" ..was eigentlich zu einem "52" passen würde.
Hat Intel hier wirklich seine eigene Nomenklatur verlassen? Welche 
angaben sind richtig?

сорок две
Gast #6191400
Lesenswert?

Die 80C51Fx Serie scheint auch mehr Peripherie zu enthalten als die 
gewöhnlichen 52er, da ist von einem PCA (Programmable Counter Array) die 
Rede, das 5 Einheiten mit Compare/Capture und PWM Capabilities umfaßt.
Des Weiteren gibts wohl Low Power Modes und Taktfrequenzen bis zu 33Mhz.

Eine genauere Beschreibung habe ich bisher nur im NXP Datenblatt zum 
80C51FX gefunden.

сорок две
Beitrag #6191540 wurde von einem Moderator gelöscht.
Beitrag #6192216 wurde von einem Moderator gelöscht.
Gast #6199298
Lesenswert?

Ja so langsam sehe ich das da Atmel/Microchip technisch mau aussieht.
Aber es gibt ja reichlich gutes so wie es scheint von SiLabs, danke an 
alle. Zudem scheint ein integrierter ADC für Anfang wirklich sehr schön 
zu sein.

Danke hierzu schonmal.


Lothar schrieb:
> Silabs 8051 EFM8 Breakout Board mit Debugger für 6 EUR !!
>
> Debugger läuft in Simplicity Studio auch unter Linux ...
Die Software werde ich mir heute Abend mal zu Gemüte führen......
Weißt du ob man mit dem auf dem Board vorhandenen Debugger auch externe 
SiLabs Chips programmieren/debuggen kann?
Gast #6199968
Lesenswert?

Thomas B. schrieb:
> Weißt du ob man mit dem auf dem Board vorhandenen Debugger auch externe
> SiLabs Chips programmieren/debuggen kann?

Am besten fragst Du direkt im Silabs Forum. Es sieht aber so aus, dass 
auf dem 6 EUR Billig Board der Debugger direkt mit dem EFM8 verbunden 
ist. Die SWD Debug Pins sind zwar rausgeführt, aber wahrscheinlich geht 
da nichts, oder nur mit Aufwand.

https://www.mouser.de/ProductDetail/Silicon-Labs/EFM8BB1LCK?qs=sGAEpiMZZMve4%2FbfQkoj%252BKKziDnzRKIEpZqsivMsmCw%3D

Wenn Du also selbst gemachte Boards debuggen willst, nimm lieber ein 
etwas teureres Board mit Debug Stecker. Die gibt es zum selbst auflöten 
für 23 EUR

https://www.mouser.de/ProductDetail/Silicon-Labs/SLTB005A?qs=sGAEpiMZZMve4%2FbfQkoj%252BNm%252BCpoJ5N%2FFZF3TtvPVcsY%3D

Und fertig und noch mit Display für 27 EUR bis 33 EUR ja nach EFM8 wobei 
aber natürlich jedes Board alle EFM8 extern debuggen kann:

https://www.mouser.de/ProductDetail/Silicon-Labs/SLSTK2020A?qs=sGAEpiMZZMu6TJb8E8Cjr9wwHbLtDYs2kvF1z02tfJ4%3D

https://www.mouser.de/ProductDetail/Silicon-Labs/SLSTK2030A?qs=sGAEpiMZZMsnnjF5aXV%2FXp4paRTmurUin3jKKQUTEZM%3D
Gast #6200850
Lesenswert?

Mal eine Frage bezüglich dem J-Link Programmern, verstehe ich es richtig 
wenn ich Seite von Segger so deute,

das der J-Link EDU (60€ bei mouser) im Vergleich zum J-Link EDU Mini 
(18€) zwei "Vorteile" hat:
* Spannugsbereich von 1,2V bis 5V (also einen Level-Shifter noch 
intergriert hat, oder?
* und er auch in der Lage ist "Microchip ICSP® interface" zu nutzen also 
das "normale" JTAG Interface der Atmel Chips, sehe ich das so richtig?
* ja ein Gehäuse halt

Info hab ich hier von gezogen:
https://www.segger.com/products/debug-probes/j-link/models/model-overview/
Gast #6201134
Lesenswert?

Thomas B. schrieb:
> das "normale" JTAG Interface der Atmel Chips

Der J-Link unterstützt nur "alte" Atmel ARM mit JTAG und einige neuere 
Atmel ARM mit SWD. AVR werden nicht unterstützt.

Der alte Atmel SAM-ICE war ein J-Link:

https://www.microchip.com/DevelopmentTools/ProductDetails/AT91SAM-ICE

> Microchip ICSP interface

Damit ist wirklich Microchip gemeint, also deren ARM-Konkurrenz PIC32 
MIPS. AVR werden nicht unterstützt.

https://www.segger.com/products/debug-probes/j-link/technology/cpus-and-devices/microchip-pic32-support/

Der J-Link unterstützt nur 8051 mit SWD, also die EFM8, aber nicht 
"alte" C8051 mit JTAG

Der Debugger auf den EFM8 Boards ist ein J-Link:

https://www.segger.com/products/debug-probes/j-link/technology/cpus-and-devices/silabs-efm8-c8051-support/
Gast #6201167
Lesenswert?

@Lothar: vielen Dank ich werde mir nun ein kleines Board für den 
direkten Einstieg besorgen wie Ihr schon verlinkt habt
* https://www.mouser.de/ProductDetail/634-EFM8BB1LCK

und dann für später den großen Bruder auf Steroiden + den EDU  mini
* https://www.mouser.de/ProductDetail/634-LB12F64ECQFP32
* https://www.mouser.de/ProductDetail/943-8.08.91

damit sollte man fürn Anfang nichts mehr falsch machen können oder?
#7209820
Lesenswert?

Servus,
befasse mich zur Zeit auch wieder mit einem älteren Projekt mit
einem AT89S52.
Zum flashen habe ich dafür den ISP Programmer 1.2.0.55
(Hard- und Software wie auf dieser Seite
https://www.windows7download.com/win7-isp-programmer/tzwqylih.html
beschrieben verwendet)
Das flashen war aber oft Glückssache, mal gings auf Anhieb, oft
gar nicht.
Hatte immer an Pin 31 EA/VPP 5 Volt anliegen, wurde aus den
Datenblättern nicht recht schlau, sollten es besser 12 V auch beim
seriellen flashen sein?

Gruß
Hans
#7210605
Lesenswert?

> keine 12V
Danke für die Info, bzw. Bestätigung.
So muß ich leider wieder weitersuchen, warum das flashen hier zur Zeit
wieder nicht klappt.
Habe auch schon angedacht, mit Arduino zu flashen, was auch hier im 
Forum
schon beschrieben wurde.

> CH552
wenn es den auch in DIL 40 -Ausführung gäbe wäre es schon zu überlegen.

Gruß, Hans
Moderator (Firma: Titel) Persönliche Seite #7210658
Lesenswert?

Johann D. schrieb:
> warum das flashen hier zur Zeit
> wieder nicht klappt.
Die üblichen Gründe sind: zu lange Anschlussdrähte, Erdschleife, 
Ableitströme...

Johann D. schrieb:
> Hard- und Software wie auf dieser Seite
Mir sticht da gleich der fehlende Blockkondensator ins Auge. Mach den 
mal in Form eines 100n-Kerkos direkt zwischen Vcc und GND.

Und setz die Eingänge der zweiten Hälfte des Baustein auf einen 
definierten (inaktiven) Pegel.
#7210709
Lesenswert?

H2 O. schrieb:
> Mal eine Frage bezüglich dem J-Link Programmern, verstehe ich es richtig
> wenn ich Seite von Segger so deute,

> * und er auch in der Lage ist "Microchip ICSP® interface" zu nutzen also
> das "normale" JTAG Interface der Atmel Chips, sehe ich das so richtig?

ICSP kommt nicht von Atmel, sondern ist das Programmier- und 
Debuginterface der Microchip PICs (MCLR, PGCLK, PGDAT, VCC, GND). Die 
zugekauften Atmel AVR Controller haben alle was anderes. Und der JLink 
kann nur das ICSP vom PIC32, denn da wird das MIPS EJTAG-Protokoll der 
PIC32 MIPS-Kerne quasi durchgetunnelt, und der JLink kann ja auch MIPS 
EJTAG. Heißt aber auch: Er kann keine PIC24/dsPICs und auch keine 8-Bit 
PIC 10/12/16/18, und er kann auch kein High-Voltage ICSP (Vcc+5V auf 
MCLR), was die meisten 8-Bit PICs brauchen.

fchk
#7211864
Lesenswert?

Danke für alle Antworten,
habe heute das Netzteil gewechselt, Reset direkt ohne RC-Glied 
angeschlossen,
hat alles nichts geholfen. Auch zusätzliche Pullup-Wiederstände 
eingebaut,
als Steuersoftware PonyProg verwendet,
weder 89S52, noch 89S8253 konnte ich flashen.
Warum es früher in der gleichen Weise (gelegentlich) funktionierte und
jetzt nicht mehr, werde ich wohl auch kaum mehr sicher klären können.
Einzige Vermutung wäre, dass die ICs nach öfterem flashen irgendwie
nachlassen, aber noch lange keine 1000 mal gelöscht wurden.
Habe noch einen Arduino hier, vielleicht komme ich damit weiter.

Gruß, Hans
Moderator (Firma: Titel) Persönliche Seite #7211891
Lesenswert?

Johann D. schrieb:
> hat alles nichts geholfen.
Da müsste man jetzt mal mit einem Oszilloskop nachmessen, ob der 
Oszillator schwingt (das ist zur Programmierung nötig), die Pegel passen 
und die Flanken sauber aussehen. Und dann mal kontrollieren, ob die 
Voraussetzungen vom Kapitel 20 und 24 eingehalten werden:
https://ww1.microchip.com/downloads/en/DeviceDoc/doc1919.pdf

> nach öfterem flashen irgendwie nachlassen
> ...
> aber noch lange keine 1000 mal gelöscht wurden.
Wo das Datenblatt zudem eine Endurance von 10,000 Write/Erase Cycles 
verspricht.

> wurde aus den Datenblättern nicht recht schlau
Ich finde, das ist dort im Datenblatt recht eindeutig: nur im Kapitel 22 
"Programming Interface – Parallel Mode" ist eine Vpp mit 12V angegeben. 
Sonst it lediglich die Rede von VCC und VIH. Und auch diese beiden sind 
klar spezifiziert...
Angehängte Dateien:
#7212807
Lesenswert?

Danke für die vielen Antworten,
bin schon mal froh, dass ich nicht der einzige bin, der mit dem IC
Probleme hatte.
> Quarz
Da hatte ich auch schon rumgesucht und dann sicherheitshalber
gleich einen 2 MHz Oszillator eingebaut,
vielleicht wurde es auch damit schlechter.
Werde jetzt mal die angegebenen Links studieren und mich dann ev.
wieder melden.

Gruß, Hans
#7213551
Lesenswert?

> 12MHz (USB) oder 11,0592MHz (UART)
Muß erst suchen, ob ich für obige Frequenzen was passendes finde.

In dem Projekt, bei dem ich auch im System anfangs flashen konnte,
ist ein 4 MHz Quarz. (serielle Übertragung lief bei niedrigen
Baudraten auch mit krummen Werten)
Beim ISP-Programmer und auch beim PonyProg konnte man auch noch
unter 1 MHz einstellen.
Da wäre jetzt die Frage an TomA, dessen Hard- und Software mir sehr
zusagt, wie hoch die Frequenz mindestens sein soll, weil ich in der
Software keine Einstellmöglichkeiten gesehen habe.

War eigentlich immer der Meinung, die MHz nur so hoch wie nötig zu 
halten,
weil irgendwelche Probleme sonst eher zunehmen als abnehmen.

Gruß, Hans
Gast #7214501
Lesenswert?

Manuel X. schrieb:
> generell angewöhnt zu programmieren mit der Prämisse "Speicher und MHz
> sind immer genug da", macht es durchaus Sinn sich mal anzuschauen wie
> "sowas" denn überhaupt funktioniert.
> Und dafür ist ein 8015 mit ASM immernoch vorzüglich geeignet.
> Auf DIE Basics kann man ja aufsetzen. Das genau DIE Basics heute aber
> oft fehlen sieht man nur allzu oft.
> Und nebenbei... für die meisten Dinge für die ein kleiner ARM heute
> genutzt wird, kommt ein 8051 auch noch klar.

MHz und Speicher sind heute einfach billiger als inselbegabte Experten, 
die Lösungen für Kleinanwendungen entwickeln. Vom Ressourcenverbrauch 
gibt es aich nichts einzuwenden, da Moderne Chips kleiner und 
energiesparender sind. Das einzige, was für die Steinzeit spricht sind 
ein paar krause uC.net-Foristen, die in Zeiten schwelgen, als Autos noch 
Winker hatten.
Gast #7214530
Lesenswert?

Re D. schrieb:
> MHz und Speicher sind heute einfach billiger...

Und zu Zeiten, als selbige noch nicht so billig waren, haben Leute wie 
du sich eher dem Briefmarkensammeln oder einem anderen Hobby zugewandt. 
Jetzt aber meint man, daß es ausreicht daß Speicher usw. billiger sind. 
Was fehlt sind Basiskenntnisse, weil man wieder mal meint, daß man durch 
Verwendung einer maschinenunabhängigen Programmiersprache selbige nicht 
mehr braucht.

Natürlich braucht man keinerlei Elektronik-Kenntnisse zum Briefmarken 
sammeln. Oder zum Hobby-Schreinern. Dafür aber andere Kenntnisse, die 
man auch bloß nicht durch eine kopierte Lib ersetzen kann.

W.S.
Gast #7214570
Lesenswert?

W.S. schrieb:
> Was fehlt sind Basiskenntnisse, weil man wieder mal meint, daß man durch
> Verwendung einer maschinenunabhängigen Programmiersprache selbige nicht
> mehr braucht.

Hast du denn ausreichend Basiskenntnisse, um das Fundament von dem Haus 
zu bauen, oder soll ich die vorwerfen, dass Leute wie du früher in 
Höhlen hausten und jetzt meinen in Häusern leben zu müssen?
#7218641
Lesenswert?

Bin auch noch da, und am Sonntag hatte ich mir mal Zeit genommen
am Programmer zu löten:
2 MHz Oszillator raus und 12 MHz Quartz rein.
Zuerst hatte ich nur ein paar Kondensatoren mit ca. 20 pF in ungleicher
Bauform - schwinkt nicht.
Dann fand ich doch noch 2 gleiche mit 39 pF, dann war wieder Leben im 
µC.

Lothar M. schrieb:
Da müsste man jetzt mal mit einem Oszilloskop nachmessen

Ich messe zuerst mit einem einfachen TTL-Tester an ALE - Pin 30,
ob sich was tut und wenn ich genauer wissen will,
noch die (1/6)Frequenz an dem Pin. Habe auch ein (altes) Oszi, aber 
denke,
dass man da direkt am Quarz nicht messen kann ohne ihn stark zu
beeinflussen.
Wie testet ihr eine saubere Schwingung?

Jedenfalls konnte ich dann wieder einigermasen zuverlässlich mit
dem ISP-Programmer flashen. Allerdings nur mit einem älteren 32bit-
Tower mit XP-Prof SP3. Dazu musste ich im Programm auch die MHz
statt 12 auf 4 oder gar 2 runterstellen.
Würde eigentlich lieber mit Laptops das machen, um nicht immer
unter dem Tisch nach der Buchse zu suchen, habe aber weder mit
2 XP-Laptops, noch mit einem Win98-Laptop irgend einen Fuß vor
die Tür gebracht.
Da ich auch lieber im System flashen würde, als x-mal die ICs aus-
und einstecken und meine "neueren" Laptops schon keine serielle
Buchse mehr haben, werde ich mal in dem weiter oben von Ralph S.

Beitrag "Arduino - UNO Flashershield (Linux)"

beschriebenen Verfahren weiter probieren.

Gruß, Hans
#7219572
Lesenswert?

> Die 8051 mit UART-Bootloader gehen problemlos über einen üblichen
USB-RS232 Konverter.

Ich könnte mir auch einen pinkompatiblen mit Bootloader kaufen,
soll man denn alles alte einfach wegwerfen nur weil es heute
etwas besseres gibt? (Beim Energieverbrauch könnte man heutzutage
eher darüber nachdenken) So einen Konverter habe ich schon, aber
mit PonyProg und vermutlich der Software von TomA sollen die
USB-RS232 Konverter nicht richtig klar kommen.

> Auf den meisten Mainboards befindet sich noch eine in Form einer
Stiftleiste. Benötigt nur ein Slotblech mit Stecker.

Ältere und neuere Tower mit RS habe ich genug.
Wenn man ein Projekt an Ort und Stelle updaten will, ohne jedesmal
das IC heraus nehmen zu müssen, wäre eben ein Laptop schon
praktischer.

Komischerweise funktioniert die ISP-Programmersoftware in meinen
Laptops (XP und Win98) nicht. Beim Tower mit einem 1 m langen
Verlängerungskabel zum Programmer auch schon wieder fast gar nicht.
PonyProg geht nur für AT89S53 und AT89S8252.
Wenn ich also für die hier vorhandenen AT89S52 und AT89S8253
ein Laptop nehmen will, sollte es am ehesten mit der Software
von TomA oder Ralph S gehen.

Gruß
Hans
Gast #7219647
Lesenswert?

Peter D. schrieb:
> Die 8051 mit UART-Bootloader gehen problemlos über einen üblichen
> USB-RS232 Konverter

Mouser hat mal eben meine AT89LP51ED2 um drei Monate verschoben, aber 
wenn die endlich da sind, werde ich ja sehen, ob das so problemlos ist. 
Die diversen Foren sagen was anderes, FLIP wird nicht weiterentwickelt 
und ist gegenüber dem was z.B. Silabs bietet veraltet. Also wenn ich 
nicht unbedingt DIP-40 brauchen würde ...

https://www.mouser.de/ProductDetail/Microchip-Technology-Atmel/AT89LP51ED2-20PU?qs=L%2Fel7Pqjd7DAUOlySpf3UQ%3D%3D

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren