Tiny13-Steuercomputer für den SI4735

 

Den Radiochip SI4735 habe ich schon direkt am PC, über einen Mega32 und über den Mega88 im CC2-Board gesteuert. Aber eines wollte ich immer schon mal testen: Geht das auch mit dem kleinsten Mikrocontroller, einem ATtiny13? Dann könnte man nämlich besonders kleine Spezialradios bauen.

Es geht! Mit den Grundfunktionen, programmiert in Bascom, ist der Tiny13 erst halb voll. Weil der Controller ohne Quarz arbeitet bin ich wieder auf den 32-kHz-Uhrenquarz zurückgekommen. Am Anfang gab es mal Probleme damit, aber das lag nur am nicht verdrahteten Pin 6 des Radios. Er liegt jetzt an Masse, und alles läuft prima.

Im ersten Test habe ich den ursprünglichen Aufbau mit USB-Adapter verwendet und den kleinen Controller auf der Platine des Lernpakets Mikrocontroller parallel angeschlossen. SDA geht an Port B.4, SCL an Port B.3. Zusätzlich ist noch der Reset-Pin über eine Diode an Port B.1 angeschlossen. Beim Neuprogrammieren des Tiny13 muss man die Verbindung zu Reset lösen, weil über den zusätzlichen kleinen Strom der Reset des Tiny nicht richtig ausgeführt wird.  Die Stromversorgung für das Radio kommt vom USB, die für den Controller über die RS232. Man kann das Radio wahlweise über den PC mit VB oder über den Mikrocontroller steuern, beide Programme dürfen sogar gleichzeitig aktiv bleiben.

'Radio SI4735, UKW
$regfile = "attiny13.dat"
$crystal = 1200000

Dim F As Word
Dim H As Byte
Dim L As Byte

Const F1 = 8880
Const F2 = 9510
Const F3 = 9920
Const F4 = 10280
Const F5 = 10590
Const F6 = 10670
Const F7 = 8830
Const F8 = 9650

Declare Sub Freq
Declare Sub Taste

Config Scl = Portb.3
Config Sda = Portb.4
I2cinit
Portb.2 = 1 'Pullup
Ddrb.1 = 1

Portb.1 = 0
Waitms 100
Portb.1 = 1
Waitms 100


I2cstart
I2cwbyte 34
I2cwbyte &H01
I2cwbyte &H10 '00 FM, 01 AM, 10 32-kHz-Osz
I2cwbyte &H05
I2cstop
Waitms 500

Do
F = F1
Freq
Taste
F = F2
Freq
Taste
F = F3
Freq
Taste
F = F4
Freq
Taste
F = F5
Freq
Taste
F = F6
Freq
Taste
F = F7
Freq
Taste
F = F8
Freq
Taste
Loop

Sub Freq
I2cstart
I2cwbyte 34
I2cwbyte &H20
I2cwbyte &H00
H = High(f)
L = Low(f)
I2cwbyte H
I2cwbyte L
I2cwbyte &H00
I2cstop
End Sub

Sub Taste
Do
Waitms 1
Loop Until Pinb.2 = 1
Do
Waitms 1
Loop Until Pinb.2 = 0
End Sub

End

Download: SI4735T13.zip (2 KB)

Die Software verwendet nur zwei Grundfunktion des Chips: Initialisierung für UKW und Abstimmung auf eine Frequenz. Eine fest programmierte Frequenzliste wird mit einer Taste an B.2 durchgeschaltet. Damit hat man nur gültige, gut empfangbare Kanäle. Zur Entwicklungszeit kann man die Taste über das Terminal der Programmiersoftware simulieren. Man klickt einfach TXD an und schaltet die Leitung wieder aus.


Eine andere Anwendung ist ein spezielles Radio für nur zwei oder drei Station. Bei uns in der Küche läuft entweder WDR5 (Eltern) oder EinsLive (Kinder), aber fast immer gerade der falsche von beiden Sendern und dazu noch ungenau eingestellt mit ganz schrecklichen UKW-Verzerrungen. Eigentlich braucht man ein vorprogrammiertes Radio mit nur zwei Stationen. Mit dem SI4735 und dem Tiny13 ist das machbar, und man hat immer einen perfekt abgestimmten Empfänger mit exzellenter Klangqualität. Oder ein Radio speziell für alte Leute: Meine Mutter hört immer nur WDR3, aber das Radio hat so viele Tasten und Funktionen, dass sie es zweimal im Jahr versehentlich umprogrammiert. Das Radio ist dann kaputt, und ich komme jedes Mal mit der Reparatur ganz groß raus. Aber mit einem Einkanal-Empfänger gäbe es das Problem gar nicht erst. Vorstellbar wäre auch ein Radio, das am PC beliebig initialisiert wird und dann nur die vorgewählten Stationen kennt.