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
Hi Ist der HC12 so geheim, das es dafür keine Datenblätter gibt? MfG Spess
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
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.
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
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...
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.
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.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.