Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Das Wettringer Modellbauforum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

  • »jo-loom« ist der Autor dieses Themas

Beiträge: 2 494

Realname: Johannes

Wohnort: Gastarbeiter im Bajuwarischen Königsreich

  • Nachricht senden

31

Freitag, 25. Mai 2012, 23:42

Wie funzt denn dat?

Hallo an alle Neugierigen,

falls ernsthaft einer von Euch wissen möchte, wie der ganze Kram funktioniert, dann findet sich im Weiteren eine reichlich trockene Erläuterung.





Spannungsversorgung:
Die Impulsgeberschaltung wird über 5 Volt versorgt. Diese kommen von dem Festspannungsregler auf der Hauptleiterplatte des Senders.
Zur sicheren Glättung und Pufferung dienen ein Elko und ein Keramikkondensator nahe am Chip.

Microcontroller:
Der gesamte digitale Impulsgenerator benötigt exakt ein Bauteil. Dieses ist ein 8-Bit Microcontroller der Firma ATMEL, konkret ein ATTiny24. Dieser Chip verfügt über eine RISC-Architektur und so ziemlich alles an integrierter Hardware, um vielfältige Funktionen zu realisieren.

Taktgeber:
Als Oszillator kommt der interne Taktgeber mit 8 MHz zum Einsatz. Damit verarbeitet der Prozessor 8 Befehle pro Millionstel Sekunde. Auf einen externen Quarz, der eine höhere Genauigkeit brächte, wurde verzichtet. Somit reduziert sich die Bauteilanzahl - vor allem aber gewinnt man 2 freie Portpins.

Speicher:
Das Programm sitzt im internen 2 kB Flash-Speicher und belegt ziemlich genau die Hälfte des gegebenen Speicherplatzes, also 1 kB.
Es verwendet primär einen Teil der 32 Register und einige wenige SRAM-Speicherstellen.
Der EEPROM-Speicher wird nicht benutzt.

Watchdog:
Der optional nutzbare Watchdog wird nicht eingesetzt.

Reset:
Die Rücksetzung des Microcontrollers geschieht über die interne Rücksetzoption. Der entsprechende Pin ist in punkto Reset deaktiviert und somit frei für eine alternative Verwendung.

Zeitgeber:
Die Software verwendet lediglich einen Timer, der mit 1 Mikrosekunde getaktet wird.

Interrupts:
Die Berechnung des digitalen Summensignals geschieht unter Nutzung des Compare Match A Interrupts durch fortlaufendes Setzen des Vergleichsregisters auf die jeweils folgende Signalflanke.

Schnittstelle:
Für die optionale Datenübertragung zum PC ist eine unidirektionale serielle Schnittstelle nachgebildet, da der Controller über keinen echten UART verfügt.
Die Schnittstelle ist auf 19200 kBaud, 1 Start bit, 8 Datenbits und 1 Stop bit konfguriert.
Als TxD-Leitung findet die eigentliche Summensignalleitung eine Zweitverwendung, da im Kalibrationsmodus sowieso kein Signal gesendet wird.

Summensignal:
Der Impulsgeber erzeugt auf Basis der verschiedenen Poti- und Schalterstellungen ein serielles Summensignal, welches zyklisch im Bereich von 20 bis 25 ms wiederholt wird.
Je nach Assemblierung des Progrmms können 4 verschiedene Muster gewählt werden. Dabei ist es möglich sich für positive oder negative Polarität und synchrone oder asynchrone Zusammenstellung der Einzelimpulse zu entscheiden.
Das PPM-Summensignal wird über Pin 5 des Controllers ausgegeben und an die HF-Stufe geleitet.

Poti-Erfassung:
Die 4 Potentiometer (2 Drehpotis und 2 Linearpotis) sind jeweils beidseitig mit einem Spindeltrimmer in Reihe geschaltet und an die 5 Volt Versorgungsspannung angekoppelt. Über die Trimmer ist eine saubere Kalibrierung der einzelnen Potis möglich.
Die Potiwerte (Mittelabgriffe) gehen an 4 Analogeingänge des Controllers. Es erfolgt zyklisch eine 10 Bit A/D-Wandlung. Die nachfolgende Umrechnung und Skalierung der Messwerte ist für Dreh- und Linearpotis unterschiedlich, führt aber am Ende zu vergleichbaren Wertebereichen.

Schalter-Erfassung:
Die verbleibenden 7 I/O-Pins des Microcontrollers übernehmen die zyklische Erfassung aller Schalterstellungen. Dazu sind die Schalter in 3 Gruppen zu je 4 Schaltern aufgeteilt. Ein Software-Multiplexer aktiviert kontinuierlich nacheinander jeweils eine Schaltergruppe und liest die Pegel an den 4 Eingängen.
Da gemäß Grundschule 2. Klasse gilt: 3 x 4 = 12, wir aber insgesamt 14 Schaltkontakte haben, findet en weiterer Trick Anwendung:
Die Betätigung vom Nebelhorn- oder Wasserpumpentaster schaltet gleichzeitig jeweils 2 Pegelleitungen aktiv. Dieses wird über die Software erkannt und entsprechend interpretiert.

Programmiersprache:
Das gesamte Programm ist in Assembler, also Maschinensprache geschrieben. Damit ergibt sich höchst effizienter Code.

Programmierung:
Für die Programmierung des Chips findet sich auf der Leiterplatte ein ISP-Interface. Für das Brennen des Programms kann jeder übliche ATMEL AVR ISP Brenner eingesetzt werden.
Durch die alternative Nutzung des Reset-Pins muss abschließend die Reset-Disable Fuse gebrannt werden. Damit ist der Controller im Anschluss nur noch durch einen High Voltage Programmer zurückzusetzen.

Für die ganz Neugierigen unter Euch bin ich ausnahmsweise mal über meinen Schatten gesprungen und hänge den Softwarecode an.
Wäre schön, wenn es Einigen von Euch ein wenig hilft.

Gruß,
Johannes
»jo-loom« hat folgende Datei angehängt:

Werbung