Firmware für ATtiny45, macht aus einem Funkempfänger-Modul (hier: aus einem defekten Funkwecker) einen Funkempfänger inklusive serielle Schnittstelle via USB. Das USB-Interface (Low-Speed) ist mittels AVRUSB (www.obdev.at) und AVRCDC (Osamu Tamura) in Software realisiert. Das Empfangssignal wird an alle Pins der (emulierten) seriellen Schnittstelle angelegt, somit ist es für Empfangssoftware egal, welche Leitung abgefragt wird. Allerdings funktionieren mit „Funkuhr.exe“ nur DCD, DTR und RI; die Signale RxD und CTS funktionieren nicht. (Vielleicht findet jemand den Fehler, warum RxD nicht klappt.) Mit der Auswahlmöglichkeit in Funkuhr.exe „Stromversorgung“ wird das Funkuhr-Modul aktiviert. Dabei funktionieren TxD und DTR; RTS funktioniert nicht. Die Beschreibung der Software-Installation unten bezieht sich auf Windows (2k, 2k3, XP). Anforderungen ═════════════ FunkUsb erfordert mit der beigefügten .INF-Datei Windows 2000, Windows 2003 oder Windows NT. Sollte auch mit 64-Bit-Editionen laufen. FunkUsb läuft nicht mit Windows 98, Windows Millennium Edition: da fehlt die Datei usbser.sys. (Gibt's die irgendwo?) FunkUsb läuft nicht ohne besondere Vorkehrungen (Filter-Treiber) unter Windows Vista und Windows 7: da sind Bulk-Transfers mit Low-Speed verboten. Der benötigte Filter-Treiber und Hinweise zu seiner Einbindung finden sich im Internet. Stichworte: AVRCDC Vista Bulk. FunkUsb läuft nicht ohne besondere Vorkehrungen unter MacOS X und Linux, ebenso wegen der verbotenen Bulk-Transfers. Schaltplan ══════════ 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 ╠═════╣ │ ├─────╢ ATtiny45 ╟───╢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. 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 ════════════ Wie für alle AVRCDC-Projekte wird kein Treiber benötigt, Windows bringt den Treiber „usbser.sys“ mit. Allerdings wird eine .INF-Datei benötigt, die beim ersten Anstecken des Gerätes FunkUsb dem Hardware-Assistenten mitgegeben wird. Damit wird eine serielle Schnittstelle eingebunden, die von gängigen Funkuhrempfangsprogrammen verwendet werden kann. 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 kann auch jedes andere gängige Funkuhr-Empfangsprogramm verwendet werden; DOS-Software funktioniert allerdings nicht. Die LED leuchtet normalerweise halbhell. [Nicht implementiert: Bei USB-Datenpaketen der Busaufzählung wird sie dunkel getastet.] Bei Funksignal (Trägerabsenkung) leuchtet sie hell. Dazu muss eine Empfangssoftware laufen, die mindestens eine der Leitungen TxD oder DTR aktiviert. Im USB-Schlafmodus ist die LED aus. Quelltext ═════════ Dieses Projekt benutzt AVRUSB (neu 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, 100418