File: /~heha/basteln/PC/FunkUsb/FunkUsb.zip/FunkUsb/joy/liesmich.txt

Firmware für ATtiny25, macht aus einem Funkempfänger-Modul
(hier: aus einem defekten Funkwecker) einen Funkempfänger
inklusive 1-Knopf-Jostick via USB.

Das Low-Speed-USB-Interface ist mittels V-USB (www.obdev.at)
in Software realisiert.
Das Empfangssignal wird an den (einzigen) Feuerknopf des (emulierten)
„Spielhebels“ angelegt.
Als DCF-Telegramm-Dekoder kommen nur solche Programme in Frage,
die den Spielhebel-Feuerknopf auch abfragen können, meine
„Funkuhr.exe“ kann das erst ab November 2012.
Der Funkempfänger läuft ständig, lässt sich nicht direkt
ein- und ausschalten wie bei der seriellen Variante.
Hingegen wird er bei Standby des Rechners abgeschaltet.
  Neu ab April 2013: Es wird außerdem ein einachsiger Spielhebel
mit 16 Bit Auflösung emuliert, der den Zeitpunkt des Ereignisses
festhält. Das erspart dem Anwendungsprogramm das genaue Einhalten
von Abfrageintervallen, etwa unter erhöhter CPU-Last.
  Neu ab Januar 2015: Zusätzlich wird die Zeit, in Millisekunden,
zwischen dem Ereignis und dem Abholen des Reports mitgeteilt.
Damit kann die begrenzte Abfragefrequenz kompensiert werden.

Anforderungen
═════════════
FunkUsb erfordert keinen Treiber! Genauer, der Treiber ist bei
allen USB-fähigen Betriebssystemen bereits vorhanden.

Schaltplan
══════════
Dieser ist identisch mit der seriellen Vorgänger-Variante von FunkUsb.
Der Mikrocontroller kann durch einen kleineren ATtiny25 ersetzt werden.
Die .HEX-Datei läuft auch in den größeren ATtiny45 und ATtiny85.

                           TPS71533DCKR
                             5╔═════╗4
3P3 ───┬────────────────────┬─╢O G I╟───┬── 5P (1)
      +│ 4,7µF              │ ╚╤═╤═╤╝   │
      ═╧═ ┌─────────────────┼────┘2     │
      ═╤═ │ 1╔═════╗╔═════╗8│ ╔═════╗   ▼ LED gelb
       ├──┘x─╢     ╚╝     ╟─┴─╢1,5kΩ╟─┐ ┬
___    │    2║            ║7  ╠═════╣ │ │
SIG ─>─┼─────╢            ╟───╢ 47Ω ╟─┴─┼── D- (2)
___    │    3║            ║6  ╠═════╣   │
ENA ─<─┼─────╢            ╟───╢ 47Ω ╟───┼── D+ (3)
       │    4║            ║5  ╠═════╣   │
       ├─────╢  ATtiny25  ╟───╢470Ω ╟───┘
       │     ╚════════════╝   ╚═════╝
GND ───┴─────────────────────────────────── 00 (4)
┌──────────┐
│  Funk-   │                             ┌───────┐      
│Empfänger-│                             │  USB  │
│  Modul   │                             └───────┘
└──────────┘

SIG liefert das Empfangssignal, LOW bei DCF77-Trägerabsenkung.
ENA steuert den Funkempfänger, LOW = aktiv.

ENA wird nur für den USB-konformen Schlafmodus benötigt.

Die ungewohnte Stromversorgung mit dem energiesparenden
Längsregler TPS71533 (kostenloses Muster von Texas Instruments)
ist notwendig, um für den Funkempfänger eine saubere 3,3 V
bereitzustellen.
Der Querstrom des Reglers beträgt lt. Datenblatt nur 3,2 µA
und ist deshalb kein Hindernis für den USB-konformen Schlafmodus.

Als Durchsteck-Typ ist LP2950ACZ-3.3 empfehlenswert,
mit einem akzeptablen Querstrom von 200 µA.

Im Muster war die 5-V-Speisespannung nicht stabil genug,
um mit den üblichen zwei in Reihe geschalteten Siliziumdioden
eine hinreichend saubere 3,3-V-Betriebsspannung bereitzustellen,
damit der Funkempfänger ordentlich arbeitet.

Diskrete Längsregler mit Z-Dioden sind schwierig auszulegen,
weil für die geforderten geringen Querströme (max. 200 µA)
die handelsüblichen Z-Dioden nicht steil genug sind.
Querregler allein (TL431) beißen sich mit dem USB-Schlafmodus.

Programmierung
══════════════
Das Einschreiben der Firmware erfolgte im Muster mit einem
extra Steckboard, welches als STK200-kompatibles Programmiergerät
hergerichtet wurde.
Das Programmieren im eingelöteten Zustand (in-system)
ist hier nicht vorgesehen. Deshalb die IC-Fassung.

Installation
════════════
Anstecken, Joystick erkennen und installieren lassen.
Dann kann man in der Systemsteuerung → Gamecontroller
(Bezeichnung variiert zwischen den Windows-Versionen)
die Funktion beobachten — mit Bordmitteln eben!

Hinweis: Mit dem Anstecken und Installieren wird noch keine
Zeit empfangen oder die PC-Uhr gestellt!
Das macht beispielsweise das nächste Programm.

Verwendung
══════════
Zum komfortablen Empfang und dem Stellen der Computer-Uhr
habe ich das Programm „Funkuhr.exe“ geschrieben,
siehe „http://www.tu-chemnitz.de/~heha/hs_freeware/freew.html“.
Es benötigt zum Stellen der Uhr entsprechende Rechte;
zumeist wird man es „Als Administrator“ starten.

Es kann auch jedes andere Funkuhr-Empfangsprogramm
verwendet werden, sofern sich ein Windows-Joystick-Feuerknopf
als Eingabeport auswählen lässt.
DOS-Software funktioniert nicht.

Die LED leuchtet normalerweise halbhell.
Bei Funksignal (Trägerabsenkung) leuchtet sie hell.
Im USB-Schlafmodus ist die LED aus.

Quelltext
═════════
Dieses Projekt benutzt V-USB, allerdings mit eigenen
Patches (siehe Changelog.txt).
Aus Platzgründen sind nicht zur Recompilierung benötigte Dateien
nicht in diesem Archiv (Lizenz-Textdateien, Quelltexte für andere
Frequenzen als 16,5 MHz).

Henrik Haftmann, 121118
Detected encoding: ASCII (7 bit)8