Entwicklung
und Vertrieb von Embedded Controller Anwendungen
Registrierter Consultant für RISC Controller
Seit 1998 realisieren wir kompakte Embedded Systeme auch auf Basis der AVR RISC Controller von ATMEL. Die AVR Controller werden von uns bevorzugt bei weniger komplexen Problemstellungen, meist im Kundenauftrag, eingesetzt. Die Auswahl der Programmiersprache liegt oftmals beim Auftraggeber; Assembler, C und Pascal werden von uns favorisiert. Nachfolgend stellen wir einige Projekte vor, die wir mit AVR RISC Controllern realisiert haben:
Echtzeitanalyse
serieller Daten
Boot Loader für AVR ATMega Controller Ein Leistungsmerkmal der AVR ATmega Controller ist das sogenannte "self programming". Ein ATmega Controller ist in der Lage, seinen eigenen Programmcode zu überschreiben. Hiermit können sehr komfortabel Firmware-Updates (im System), ohne spezielle Programmier-Hardware (ISP, JTAG), vorgenommen werden. Mit Hilfe des MME Boot Loaders ist es möglich, ROM- oder HEX-Intel-Dateien über die serielle Schnittstelle (RS232 sowie RS485) in den AVR Controller zu laden. Der Boot Loader ist in der Lage, Anwender-Programme über den UART seriell zu empfangen und diese in den internen FLASH-Speicher zu programmieren. Auf der PC-Seite wird das Download-Programm CMDLoad32 zur Verfügung gestellt. Boot Loader Leistungsmerkmale:
Revisionshistorie: Version V1.9 vom 08.12.2015
Version V1.8 vom 11.06.2014
Version V1.7 vom 26.06.2013
Version V1.6 vom 15.03.2013
Version V1.5 vom 22.08.2011
Version V1.4 vom 24.02.2009
Version V1.3 vom 07.07.2008
Version V1.11 vom 16.09.2007:
Diese Baugruppe wurde im Kundenauftrag entwickelt. Sie verfügt über 4 analoge bzw. 4 digitale Eingänge und 16 kurzschlußfeste, thermisch abgesicherte Ausgänge. Weiterhin sind eine RS232- und eine USB Schnittstelle vorhanden. Die Steuerung der Baugruppe übernimmt ein ATMEGA8 Controller, welcher mit internem, kalibriertem Oszillator betrieben wird. Eine eigenentwickelte Windows-DLL ermöglicht die Einbindung der Baugruppe in Windows-Anwendungen, wie z. B. Macromedia Authorware.
Nachbildung eines abgekündigten XICOR-Bausteins mit AT90S2343 Ziel dieses Projektes war es, einen abgekündigten XICOR-Baustein (X76F041, 4 x 128 x 8 Bit PASS SecureFlash) so nachzubilden, daß die Software einer vorhandenen Microcontrollerbaugruppe nicht verändert werden mußte. Geringfügige Änderungen bei der Hardware konnten dabei in Kauf genommen werden. Zum Einsatz kam ein AT90S2343, der mit internem 1 MHz RC Oszillator betrieben wird. Die niedrige Taktfrequenz, sowie die geringen SRAM-Resourcen des AVRs, erforderten die Programmierung in Assembler. Die 128 Byte EEPROM des AVRs reichen aus, um zumindest eine Page des X76F041 nachbilden zu können.
Intelligentes, schnelles I/O-Subsystem Diese Baugruppe dient als intelligentes I/O-Subsystem für ein komplexes Meßgerät, welches auf Basis unseres V25-Moduls aufgebaut ist. Mit den 8 analogen Eingängen werden u. a. hochpräzise Verfahrwege induktiv aufgenommen. Durch den Einsatz des AT90S8515 auf der Baugruppe ist es nun möglich, analoge und digitale Signale eigenständig zu erfassen, vorzuverarbeiten und somit den V25 als Hauptprozessor zu entlasten. Die Besonderheit dieser Baugruppe liegt in der direkten Ankopplung (nahezu "glueless") des AVRs an den Steuer- und Datenbus des V25. Somit werden wertvolle Ressourcen (Port-Leitungen) des V25 eingespart und maximale Zugriffsgeschwindigkeiten durch die direkte I/O Adressierung ermöglicht. Um die Buszugriffsgeschwindigkeiten des V25 einhalten zu können, mußte der AVR bei diesem Projekt größtenteils in Assembler programmiert werden.
Universelle Baugruppe zur Steuerung von Schrittmotoren, Relais, Lampen LEDs usw. Die beiden AT90S8515 AVR Controller übernehmen bei dieser Baugruppe die Aufgabe von Eingabe-Controllern, sowie die Ansteuerung von Sieben-Segment-Anzeigen. Jeder Eingang verfügt über einen individuell einstellbaren "Software-Filter" um Störungen zu unterdrücken. Die Baugruppe verfügt über 32 Ein- und 32 Ausgänge, wobei die Ausgänge als "offene Kollektor"-Ausgänge realisiert worden sind. Jeder Ausgang ist kurzschlußfest, thermisch abgesichert und kann bis zu 300 mA treiben. Für den Anschluß von Relais sind Freilaufdioden vorgesehen. Als Hauptprozessor wurde hier unser V25-Modul eingesetzt. Dieses kommuniziert über einen 4 Bit parallen Datenbus mit den beiden AVRs, sowie mit der seriellen Schnittstelle. Über die serielle Schnittstelle können neue Steuerprogramme, programmiert in Delphi, in das FLASH des V25-Moduls geladen werden. Hierfür wurde eine Windows-Software erstellt. Eine weiterentwickelte Variante dieser Baugruppe (MBox2) verfügt über 64 Ausgänge und (neben der RS232) eine RS485 Schnittstelle. Hiermit ist es möglich, ein Netzwerk aus bis zu 128 Baugruppen aufzubauen. Um die Softwareentwicklung für "MBox"-Anwendungen zu erleichtern, wurde ein I/O-Simulator geschrieben. Steuerprogramme können somit auf dem PC simuliert werden, bevor sie in die Baugruppe geladen werden.
Mit dem Tastatur-Emulator wird eine handelsübliche PC/AT Tastatur an der Tastatur-Schnittstelle eines PCs nachgebildet. Für den Anschluß des Emulators ist eine PS2-Schnittstelle am PC erforderlich. Die Einheit verfügt über 24 Eingänge, die über Reihenanschlußklemmen von der Baugruppe geführt sind. Jedem Eingang kann eine separate Zeichenkette zugeordnet werden. Der verwendete AT90S8535 "scannt" die in einer Matrix angeordneten Eingänge ab und sendet die jeweiligen Zeichenketten zum PC. Der Emulator unterstützt dabei das bidirektionale PS2-Tastatur-Protokoll, so daß der Keyboard-Eintrag im PC-BIOS nicht deaktiviert werden muß. Selbstverständlich kann ein PC auch über den Emulator "gebootet" werden. Zusätzlich verfügt
die Einheit noch über eine serielle Schnittstelle, über welche
die Konfiguration der Zeichenketten und Zuordnungen zu den Eingängen
vorgenommen wird. Hierfür wurde eine komfortable Windows-Software
erstellt. Die Speicherung der Zeichenketten erfolgt im EEPROM des Emulators.
Der EEPROM-Speicher kann mehr als 100.000 mal überschrieben werden.
Diese Baugruppe ist Bestandteil eines MP3-Audio Wiedergabesystems. Der im System verwendete ATMEGA103/128 ist für den koordinierten Zugriff auf MultiMediaCard (MMC) bzw. Secure Digital Memory Card (SD Card) und MP3-Decoder zuständig, während parallel dazu I/O-Signale überwacht und die serielle Schnittstelle bedient werden muß. Die Parallelverarbeitung der verschiedenen Prozesse machte ein interruptgesteuertes Software-Konzept erforderlich. Die Audio- und Steuerdaten werden auf handelsüblichen MMCs/SD Cards gespeichert. Bei der großen Datenmenge von bis zu 1 GB kam eine Datenübertragung über die serielle Schnittstelle nicht mehr in Frage. Da die Speicherkarten am PC vom Betriebssystem wie Wechselplatten angesprochen werden können, wurde in der AVR Firmware ein DOS FAT Filesystem (FAT12 und FAT16) implementiert, so daß hiermit ein problemloser Datenaustausch zwischen unserem Audiosystem und einem PC gewährleistet ist. Die Kommunikation über die serielle Schnittstelle wurde so realisiert, daß zur Steuerung des Systems lediglich ein gewöhnliches Terminal-Programm (z. B. Hyperterminal) erforderlich ist. Die Einheit läßt sich daher ähnlich simpel wie ein Modem ansprechen. Diese Version des iMP3PL Systems wurde im Kundenauftrag entwickelt. Auf der Baugruppe befindet sich neben dem Kopfhörerausgang ein 3 Watt NF-Verstärker zur direkten Ansteuerung eines Lautsprechers. Weiterhin sind 4 kurzschlußfeste Ausgänge sowie 3 Eingänge vorhanden. Da der ATMEGA103 abgekündigt wurde, wird nun ausschließlich der ATMEGA128 verwendet. Die Playerfirmware mußte geringfügig an den neuen Controller angepaßt werden. Erweiterungen der Firmware können beim Kunden vorgenommen werden. Unsere eigenentwickelten Bootloader sind in der Lage, verschlüsselte Images von der seriellen Schnittstelle oder der MMC/SD Card zu laden.
Zum Einsatz kamen weiterhin folgende AVR-Controller: AT90S2343, AT90S2313, AT90S4433, ATMEGA8, ATMEGA8535, ATMEGA163, ATMEGA32 sowie der ATMEGA128. Die damit realisierten Projekte unterliegen teilweise der Geheimhaltung und können hier leider nicht vorgestellt werden. |