Ich finde, USB-seriell-Wandler sind "pain in the ass" (wie der
Nordamerikaner sagt), weil sie sich leider nicht wie herkömmliche serielle
Schnittstellen verhalten. Da meine Rechner noch echte serielle Schnittstellen aufweisen, habe ich mir für
das Si4735-Modul einen Pegelwandler RS232 -> I²C gebaut. Der HF- Teil der
Schaltung entspricht der Schaltung unter
http://www.b-kainka.de/SI4735Smwkw.html. Besonders gefällt mir, dass Burkhards SI4735Test4.exe in Verbindung mit einer
echten seriellen Schnittstelle hier nun auch unter Linux läuft (mittels Wine,
neben SI4735Test.exe werden noch ELEX.dll und msvbvm60.dll benötigt).
Der Pegelwandler sieht zwar auf den ersten Blick eher abschreckend aus, ist aber simpel (und läßt sich gut auf einer Lochrasterplatine aufbauen):
An TXD, DTR und RTS der seriellen Schnittstelle liegen 3 invertierende
Pegelwandler mit Q1, Q2 und Q3. Sie bestehen jeweils aus Basis-Vorwiderstand
22 kOhm, Schutzdiode 1N4148 und Arbeitswiderstand 10 kOhm, der gleichzeitig der
Pullup-Widerstand für den I²C-Bus ist.
Q4 arbeitet in der "Gegenrichtung": Er invertiert und wandelt das
Signal SDIO und gibt es an den RS2323-Eingang CTS. Damit die serielle
Schnittstelle nicht "verhungert", liegt der Arbeitswiderstand nicht
an 3,3 V, sondern an 5V.
Die Betriebsspannungsanpassung 5V -> 3,3V ist mit einer grünen LED gelöst;
wer das Restrisiko für das teure Modul scheut, sollte besser einen 3,3V-Regler
vorsehen ;-)
Die LED-Lösung hat den Nebeneffekt, dass man an der LED-Helligkeit sieht, ob
der Si4735 aktiv oder in Powerdown ist.
Soll die 5V-Stromversorgung aus einer "schmutzigen" Quelle (z.B.
USB) erfolgen, sollte man eine Drossel in die 5V-Leitung schalten.
Eine Erläuterung zum "Restrisiko":
Der Si4735 darf zwar mit 5V an VDD betrieben werden, an VIO sind jedoch 3,9 V
absolutes Maximum (das Verhalten ist also genau umgekehrt wie bei den meisten
5V-toleranten 3,3V ICs, die nur 3,3V Betriebsspannung vertragen, aber an den
I²C-Leitungen 5V-Pegel tolerieren).
Die I²C-Pins vertragen relativ hohe Ströme (10 mA absolutes Maximum), so dass
man sie prinzipiell über Vorwiderstände an 5 V legen darf (so ist es ja beim
Elexs-PC-Radio gelöst; der FTDI-Chip gibt 5V-Pegel aus). Da diese Ströme
vermutlich auf VIO abgeleitet werden, sollte man jedoch sicherstellen, dass VIO
dadurch nicht über 3,9V angehoben werden kann.
Aus leidvoller Erfahrung weiss ich, dass es reicht, einige Millisekunden lang
5 V auf VIO zu geben, um den Si4735 zu "ermorden" (ich war mit einer
Messpitze abgerutscht).
Es ist daher unbedingt empfehlenswert, 5V möglichst weit von dem IC
fernzuhalten. Die Verwendung einer LED hat den Nachteil, daß sie bei
Überlastung niederohmig werden kann und ausserdem Überspannungen
"gnadenlos" durchreicht, falls man versehentlich mehr als 5V an die
Eingangsklemmen legt).