Hallo,
vor einigen Wochen hatte ich nach Anregungen für meine anstehende Prozessorauswahl gefragt. Es kamen viele Tips und Vorschläge, und ich habe mich mal hingesetzt und mir die Prozessor-Dokumentation und die wichtigsten Tools angeschaut. Das Ganze hat natürlich auch zu einem Ergebnis geführt. :-) In der Hoffnung, dass ein solcher Auswahlprozess auch anderen Informationen geben kann, versuche ich ihn hier einmal zu skizzieren:
Die Anforderungen an den Prozessor waren recht klar definiert:
- ca. 8K Flash
- EEPROM oder byteadressierbaren Flash
- > 128 Byte Register/RAM
- ca. 4MIPS
- 16-Bit PWM oder Comparemode für 16-bit counter
- Interrupt auf Polaritätswechsel an mindestens einem Eingang
- >= 8 IO
- 5V Versorgunsspannung wegen der umgebenden Peripherie (Optokoppler)
- PDIP oder ähnliche preiswert sockelbare Variante
- Programmierung in C (oder Java :-))
- Preis (1000) < EUR 1,50
In Betracht gezogen wurden:
LPC9xx (Philips) trotz 3,5V Betriebsspannung HC08
8051 und Derivate Atmel ATMega und AT89 PICDie meisten Prozessoren hatten in den kleineren Varianten Probleme mit dem Interrupt auf Pegelwechsel. Meist war es (8051 u.ä.) nur eine Flanke. Die dann evtl. geeigneten analogen Comparatoren hatten nur der Philips LPC922, Atmel AT89 und einige größere Freescale HC08-Typen. Trotz dieser schon einschränkenden Kriterien habe ich mal für die oben genannten Prozessoren einige Toolchain-Varianten angeschaut. Dabei zeigte sich, dass es für die nicht GCC-konformen Prozessorfamilien entweder nur suboptimale Compiler, wie den sdcc gibt, oder hochpreisige Entwicklungsumgebungen (Keil, Metrowerks...) erforderlich sind. Die Einarbeitung in die jeweiligen Dialekte übersteigt dabei bei weitem die Einarbeitungszeit in den jeweiligen Prozessor. Nach ca. 2 Wochen, in denen ich versucht habe mich den Toolchains zu nähern, habe ich angefangen, nach Lösungen zu suchen, die das mir vertraute Umfeld mit eclipse ermöglichen. Dabei blieb nur ein Hersteller und ein Compiler: gcc und Atmel ATMega. Zum einen enspricht der ATMega voll den gestellten Anforderungen, zum anderen ist die Toolchain mit dem gcc und anschließenden Tools freie Software ohne in den Bereich "Hobbylösung" abzugleiten. Die Umgebung eclipse + CDT + winavr ergibt eine für mich und die genannten Anforderungen nahezu optimale Kombination bei akzeptablen Komponentenpreisen.
Eines hat sich allerdings in diesen Tagen gezeigt: ohne einen spürbaren Zeitaufwand wird man den Wert einer Gesamtlösung aus Prozessorfamilie und Toolchain nie bestimmen können.
Soviel zu dieser kleinen Auswahlreise durch die Mikrocontroller-Welt.
Gruß, Kurt