![]() Entwicklung
und Vertrieb von Embedded Controller Anwendungen
Registrierter Consultant für ![]() ![]()
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:
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
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
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 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.
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.
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.
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.
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. |