Forum: Mikrocontroller und Digitale Elektronik von Mega8 auf 68HC12 Kennt jemand den Controller?


von erik (Gast)


Lesenswert?

Hallo User,

ich (studi) benutze zur Zeit den Mega8 im Hobbybereich und bin seit ca 
einem Jahr dabei mich intensiv in die Materie einzuarbeiten und habe 
auch schon einige kleinere Projekte hinter mich gebracht und bin nun 
auch als hiwi mit der Materie rund um AVRs und ARMs in Berührung. C 
programmieren hab ich drauf, aber von Assembler habe ich keine Ahnung. 
Klar, habe ich noch längst nicht alle Stärken vom Mega8 entdecken 
können,

dennoch beabsichtige ich ein Kurs zu belegen, welcher sich mit dem 
Motorola 68HC12 auseinander setzt und wollte mich bei Euch erkundigen, 
ob jemand Erfahrungen mit dem Controller hat. Ist die Programmierung von 
dem Controller völlig anders? komplett unterschiedlicher Befehlssatz? 
oder geht das klar, wenn man sich mit den AVRs auskennt? Alle Unten 
genannten Inhalte kommen sehr bekannt vor, nur am Assembler haperts... 
Aber die Lernbereitschaft für ASM ist auch da, was sagt ihr...??? Lohnt 
sich der Kurs für eine gute Note und für die Gratiseinführung in ASM und 
einen anderen Controller???
Hier nochmal ein Ausschnitt aus der Modulbeschreibung...

-Aufbau eines Mikrocontrollersystems:
 CPU, Register, Busse, RAM, ROM, Ports, Memory Mapping, 
Adressdecodierung,

-Motorola 68HC12:
 Aufbau, Interrupts, Timer, PWM, ADU, SPI, SCI

-Assembler-Programmierung des Mikrocontrollers 68HC12:
Adressierungsarten, Befehlsvorrat, Programmstruktur, Interrupts,
SW-Entwicklung in Assembler: Entwicklungsumgebung, 
Assemblersteuerbefehle, Loader, Debugger

-C-Programmierung des Mikrocontrollers 68HC12:
Vergleich Assembler – C, Entwicklungsumgebung, Projektverwaltung, 
Fehlersuche,Analog-Digital-Umsetzer und Digital-Analog-Umsetzer,

-Schnittstellen: RS232, I2C-Bus, CAN

- Einführung in Assemblerprogrammierung und Debugging
- Programmierung eines Analog-Digital-Umsetzers mit sukzessiver 
Approximation
- Einführung in C-Programmierung und Debugging
- Dekodierung der Signale des Zeitzeichensenders DCF 77


Wäre für jede Anregung und Tip sehr dankbar...

LG erik

von spess53 (Gast)


Lesenswert?

Hi

Ist der HC12 so geheim, das es dafür keine Datenblätter gibt?

MfG Spess

von Otto (Gast)


Lesenswert?

es lohnt sich deshalb, weil dieser Controller (oder seine Derivate) in 
sehr vielen Steuergeräten für KFZ verwendet wird und dessen Kenntnis für 
viele Stellen vorausgesetzt wird.

Gruss Otto

von Andreas K. (a-k)


Lesenswert?

Nachdem Microcontroller heute vorwiegend in C programmiert werden ist 
das tatsächlich verwendete Modell eher sekundär und die Unterschiede 
zwischen AVR und 68HC12 zumal für Lernzwecke eher gering.

In Assembler sind die Unterschiede etwas markanter, weil 68HC12 eine 
eher altertümliche Akkumulator-Architektur aufweist, AVR hingegen 
deutlich moderner (viel jünger) auf Registern basiert und damit auch den 
Programmiertechniken von 16/32bittern näher ist.

Generell gilt aber, dass man sowas nicht lernt um später im Beruf zu 
genau dieses Modell zu verwenden (auch wenn das natürlich vorkommen 
kann), sondern man lernt das Prinzip, die Verfahren. Von Vorteil ist 
dabei, wenn man diverse verschiedenartige Typen kennenlernt. Denn dann 
fällt es leichter, sich auf neue einzustellen. Das gilt gleichermassen 
für Architekturen wie auch beispielsweise Programmiersprachen.

Eine besonders krasse Variante dieses Prinzips fand bis in die 80er 
Jahre im Informatik-Studium statt, indem man Assembler-Programmierung 
via Knuths MIX System lehrte (http://en.wikipedia.org/wiki/MIX). Diese 
reine Lehrarchitektur ohne reale Entsprechung entstammte den Strukturen 
der 50-60er Jahre und infolgedessen war noch nicht einmal festgelegt, ob 
das Teil nun binär oder dezimal rechnete. Ob also ein "Byte" nun 0-63 
oder 0-99 codierte.

Das war natürlich in den 80ern schon reichlich bizarr, und verleitete 
einen der Profs deshalb dazu, statt dessen auf die Programmierung seines 
frisch erworbenen TI Taschenrechners auszuweichen.

von Jochen M. (taschenbuch)


Lesenswert?

Wie Otto schon richtig sagte, wird diese Familie oft in 
KFZ-Steuergeräten eingesetzt, was wohl hauptsächlich durch die extrem 
vielen Portpins mancher Derivate begründet ist. Das halte ich aber auch 
für das EINZIGE Argument. Das ALLEREINZIGE.

Ansonsten ist das ein ausgesprochen veraltetes Design, stinklangweilig 
und ohne jeden Pepp. Jeder ATiny für 50Cent hat mehr Vielfalt an 
Peripherie zu bieten. Ausser, das es ein 16Bitter ist, wüsste ich 
wirklich keinen einzigen nachvollziehbaren Grund, sich ausgerechnet 
damit die Zeit zu vertreiben. Wie gesagt: ausser man will echte 
Port-Orgien veranstalten.

Um ehrlich zu sein, bin ich eher überzeugt, dass es sich um Profs. 
handelt (dem OP ging es ja um ein Seminar), die einfach zu faul sind, 
sich auf modernere Dinge einzustellen und lieber vorgestriges Wissen 
vermitteln.
Das sollte man wirklich nicht unterschätzen, an vierlen Lehrstühlen ist 
das nicht die Ausnahme sondern die absolute Regel.

Wenn der OP seine Zeit in das Verständnis modernerer Designs investieren 
würde (sofern das o.g. Seminar nicht gerade Pflicht ist), hätte er am 
Ende sicher sehr viel mehr davon.

Ganz wichtig ist die Erkentniss, dass man sich GERADE ALS EINSTEIGER mit 
so furchtbar altbackenen Designs wie dem HC12 von vorne herein den Blick 
für besseres verbauen kann. Und WOZU diese Zeitverschwendung? Bekannt 
ist ja auch das mit den BASIC-Programmierern, die für den Rest des 
Lebens für strukturierte Sprachen versaut sind. Unheibar. Die sitzen 
dann zwar vor einem C-Compiler, aber programmieren strukturell immer 
noch in Basic.

Jochen Müller

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


Angehängte Dateien:

Lesenswert?

Das sagt schon vieles:
>Originally introduced in the mid 1990s (Wikipedia)

Und der Screenshot den Rest
>No Longer Manufactured, Not Recomended for New Design

Fazit:     man kann auch aus einem Fehler etwas lernen
trotzdem:  besser ins Freibad, oder in einen FPGA-Kurs...

von Andreas K. (a-k)


Lesenswert?

Jochen Müller wrote:

> Ganz wichtig ist die Erkentniss, dass man sich GERADE ALS EINSTEIGER mit
> so furchtbar altbackenen Designs wie dem HC12 von vorne herein den Blick
> für besseres verbauen kann.

Diese Ansicht liest man öfter, aber ich teile sie nicht. Weder 
Architektur noch Programmiersprachen prägen zwangsläufig den Rest des 
Lebens. Viele haben mit 6502 angefangen, Commodore und Apple sei Dank. 
Aber obwohl allseits bekannt ist diese Architektur nach Ende von 
Apple-II und C64 praktisch ausgestorben.

Das kann beispielsweise auch andersrum laufen - wenn nämlich die 
visuelle Eleganz strukturierter Programmierung jemandem besonders 
auffällt, der wie ich mit APL angefangen hat (in der Hinsicht das exakte 
Gegenteil).

Wichtiger ist, dass man sich nicht jahrelang auf eine einzige Lösung 
festlegt, sondern von vorneherein flexibel bleibt. Insofern kann es 
sogar durchaus nützlich sein, mit dem '12 die Grundlagen der 
Assembler-Programmierung zu lernen, um sich dann privat diesbezüglich 
die hier ohnehin schon vorhandenen und genutzte Alternative AVR 
anzusehen. Hat man gleich zwei durchaus verschiedene Konzepte kennen 
gelernt.

von Sebastian E. (der_andere_sebastian)


Lesenswert?

Das mag Geschmackssache sein, aber ich würde einen solchen Kurs auf 
jeden Fall besuchen, wenn ich die Möglichkeit hätte.
Der klassische HC12 mag out sein, aber wir verwenden in der Firma den 
Nachfolger MC68HC812A4 noch immer in der Serie (bitte genau lesen, da 
steht "812") und während ich zugebe, daß gerade der HC(8)12 ein etwas 
unglückliches Design ist, da man sich die Abwärtskompatibilität zum HC11 
mit einem nicht gerade praktischen Speichermanmagement erkaufte, so sind 
doch die Motorola-Architekturen alle ähnlich (meist 6809-basiert). Und 
so kann man auf den Grundlagen eines HC12-Kurses eigentlich ganz gut 
aufbauen, falls man dann beruflich mal etwas mit den (aktuellen, in 
Massenprodukten verwendeten) HCS08-Controllern zu tun bekommt.

von Andreas K. (a-k)


Lesenswert?

Lothar Miller wrote:

> Das sagt schon vieles:
>>Originally introduced in the mid 1990s (Wikipedia)

Wobei man das auch von AVR sagen kann und sie eher als jung gelten 
könnte. Was Controller angeht ist bei den kleineren Typen wohl nur 
MAXQ2000 erst nach den 90ern entstanden.

Tatsächlich entstanden die Grundlagen von 68'12 schon Ende der 70er in 
Form der damals recht eindrucksvollen 6809, die in etwas eingedampfter 
Form zur 68'11 mutierte, woraus sich 68'12 entwickelte.

Wer es besonders krass liebt, der wendet sich PIC12 zu. Diese 
Architektur ist Mitte der 70er entstanden und hat in der 12bit Variante 
bis heute fast nur das Banking hinzu gewonnen. Die wohl älteste nach wie 
vor weitgehend unverändert eingesetzte Architektur, ein echtes lebendes 
Fossil.

von Guido Körber (Gast)


Lesenswert?

Na ja, der 8051 ist auch aus den 70ern und hätte eigentlich direkt nach 
der Vorstellung wieder verschwinden sollen, zusammen mit den alten PICs 
stellt der mit Sicherheit den Bodensatz der Prozessorarchitektur dar.

68HC12 ist in vielen professionellen Projekten drin und wird da auch 
noch lange Zeit bleiben. Bei Embedded Control ist ja nicht die Frage ob 
der Prozessor schneller sein kann, er muss schnell genug für die 
gestellte Aufgabe sein, mehr als die geforderte Leistung resultiert nur 
in zusätzlichen Kosten, wie Preis des Bauteils, Aufwand für die 
Leiterplatte (höhere Frequenz), mehr Stromverbrauch etc.

Wie schon ein Vorredner gesagt hat ist es hilfreich viele 
unterschiedliche Architekturen zu kennen, man ist dann flexibler auf 
eine andere Architektur umzusteigen und kann besser die optimale Lösung 
für ein Problem auswählen. Auch wenn heute viel in Hochsprache 
programmiert wird hilft es den darunter liegenden Prozessor zu kennen, 
oft ist Software langsam weil der Programmierer keinen blassen Schimmer 
hat wie das was er da schreibt denn auf dem Prozessor ausgeführt wird.

von Du G. (Firma: quangxing) (phnbs)


Lesenswert?

gut !  gelesen. 8051 ist immer noch in anwendung zu finden

von APW (Gast)


Lesenswert?

Normalerweise lese ich hier im Forum nur mit, aber was hier einzelne 
über HC12 loslassen, zeigt, dass diese nicht auf dem Laufenden sind, was 
Freescale zu bieten hat.

Klar, der Ur-HC12 (Anfang der 90er als HC11 Nachfolger herausgekommen), 
ist veraltet und seither durch die Weiterentwicklungen HCS12 (9S12xx) 
und vor ca. 3 Jahren durch die X12 (9S12Xxx) ersetzt bzw. ergänzt 
worden. Bei diesen Baureihen gibt es eine grosse Zahl von Derivaten mit 
unterschiedlichen Peripheriemodulen und Speicherausstattungen.
Die X12 haben teilweise zusätzlich noch ein Risc-Coprozessor-Modul (!) 
namens XGate integriert. Der hat grob geschätzt die 2..4 fache 
Rechenleistung (Mips) der X12 CPU. Das ist zwar ein einfacher 
gestrickter Befehlssatz, hat aber im Gegensatz zum HC(X)12 Kern einen 
grösseren Registersatz (was wohl jeder Asm-Programmierer bevorzugt).
Standard Kerntakt ist bei HC12: 8MHz / S12: 25 MHz/ X12: 40-50 MHz/ 
XGATE: 80-100 MHz.

Wer sich mal einen Überblick über die angebotenen Varianten machen will, 
kann sich ja die folgenden Selector Guides + Manuals reinziehen:

SG187.pdf         (automotive SelGuide, aktuell SG187Q22008 Rev 31)
SG1006.pdf        (8/16/32 Bit MCU SelGuide, aktuell SG1006Q12008 Rev 0)
9S12DJ64DGV1.pdf  (als Beispiel, ein Device User Guide für
                   einen HCS12 mit durchschnittlischer Ausstattung)
S12XCPUV2.pdf     (CPU12/CPU12X Ref Manual, die wohl wichtigste HC12
                   Doku für Asm-Starter)
Doku zu XGate ist in den jeweiligen Chip-RefManuals enthalten.

Dass es die HC12 heute noch zu kaufen gibt, bedeutet nur, dass Freescale 
auch  an ihre Altkunden denkt, und nicht, dass man den HC12 noch für 
neue Designs nimmt.
Nochwas: Der MC68HC812A4 ist nicht der Nachfolger von HC12 sondern das 
IST ein HC12, und wenn ich mich recht erinnere, sogar der erste HC12, 
den es gab (hab auch noch einen hier rumliegen) !

Nun zum Befehlssatz:
Wenn man Assembler auf der HC12 CPU lernt, dann kann man damit auch auf 
der S12 und X12 CPU programmieren (Würde sagen die CPU-Kerne HC12 zu S12 
sind 99,9% kompatibel, HC12 zu X12 sind 95% kompatibel).

Dass die verschiedenen Hersteller für ihre MC-Befehssätze recht 
unterschiedliche Philosophien verfolgen ist grundsätzlich gut, so ist 
für jeden Geschmack (!) etwas dabei, allerdings muss man halt für jede 
Architektur den Befehlssatz + deren Arbeitsweise und Feinheiten mehr 
oder weniger neu lernen und die spezifischen Vor- und Nachteile in Kauf 
nehmen.

Der HC12 Befehlssatz ist recht universell, relativ logisch und gerade 
auch mit verschiedenen Adressierungsarten gut ausgestattet.
Rein um Asm zu lernen, gibt es zwar einfacher zu verstehende MCUs, wenn 
man aber schon Anwendungen im Kopf hat, lohnt es immer, sich im Hinblick 
auf die benötigten Peripheriemodule die S12 und X12 Teile genau 
anzusehen.
Letztendlich zählt das Gesamtpacket, und da bietet HC(S/X)12 folgendes

- umfangreiche Varianten
- sehr gut ausgestattete Peripheriemodule
- verschiedene qualitativ gute Compiler und günstige BDM-Interfaces
  verfügbar
- nicht zu unterschätzen: Freescale macht gute Dokus, Ref Manuals, Data
  Sheets, Errata, die sind übersichtlich und gut zu verstehen, dazu
  viele App Notes zu speziellen Themen
- prima Debugging Schnittstelle (BDM), wird auch zum Flashen benutzt.
- gute Codeeffizienz bez. Codegrösse
- gute Verfügbarkeit
- mit dem XGate ist man auch Speedmässig gut dabei

Ein Nachteil ist sicher die kleine Anzahl von Arbeitsregistern, aber in 
Kombination mit den gut ausgestatteten Adressierungsarten einigermassen 
zu verkraften. (Man kann halt nicht alles haben)

Fazit: Wenn du Asm auf AVR und ARM kannst, ist HC12 sicher eine prima 
Ergänzung. Danach kann man sich auch leichter in die kleineren S08 
einarbeiten. Besonders lehrreich ist es auch, sich die Asm-Ausgaben der 
C-Compiler anzuschauen, da gibt es immer wieder den einen oder anderen 
Aha-Effekt.
Wenn man nicht gerade an einen Programmierkurs gebunden ist, kann man 
sich auch mal MSP430 ansehen, der ist auch gut in Asm zu programmieren.

MfG APW

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.