Forum: Mikrocontroller und Digitale Elektronik PLL Datenstrom mitlesen


von Harry G. (harry1)


Lesenswert?

Hallo,

kennt jemand den PLL Chip TC9181F der ist in einem Funkscanner AOR1500 
verbaut.

ich würde gerne an den Scanner ein Großes GLCD Display anschliesen 
welches von einem Atmega angesteuert wird.
Auf dem Display möchte ich die eingestellte Frequenz anzeigen lassen.

Hat jemand von euch eine Idee wie ich das am einfachsten anstellen kann.
Ich habe mir gedacht, den Datenstrom vom Prozessor zum PLL mit dem AVR 
mitlesen, umrechnen und auf dem Display anzeigen.

Leidr habe ich von PLL's nich viel Ahnung.

Oder kann ich im Scanner irgendwo mit einem Frequenzzähler ran und die 
Frequenz anzeigen?

Empfangsbereich vom Scanner geht von 500 Khz bis 1300 Mhz

Ich steh da total auf dem Schlauch HF ist nicht so mein ding.

Gruß
Harry

von Jobst M. (jobstens-de)


Lesenswert?

Die Suche nach dem Datenblatt war echt schwer ...
http://oh3tr.ele.tut.fi/~ftp/modifications/keyradio/kc450ht/tc9181f.pdf

Hast Du da schon mal reingesehen?
Sollte mit einem ATmega machbar sein ...


Gruß

Jobst

von Harry G. (harry1)


Lesenswert?

Hallo Jobst,

das Datenblatt hatte ich auch gefunden, aber leider werde ich daraus 
nicht schlau, wie ich die Bitfolgen in eine Frequenz umrechnen muss.

Habe leider noch keine so große Erfahrung im AVR Programmieren, und mit 
PLL's
schon garnicht.
Bisher hat mir Bascom für meine Basteleien ausgereicht.

Gruß
Harry

von Matthias (Gast)


Lesenswert?

Harry Goetz schrieb:
> das Datenblatt hatte ich auch gefunden, aber leider werde ich daraus
> nicht schlau, wie ich die Bitfolgen in eine Frequenz umrechnen muss.

Über die Bitfolgen wird das Teilerverhältnis (Abschnitt 3) der PLL 
festgelegt. Evtl. brauchst du noch den Wert von PSC. In der 
Frequenzaufbereitung des Empfängers kommt zu der von der PLL erzeugten 
Frequenz je nach Frequenzbereich und evtl. Modulationsart sicher noch 
der eine oder andere Offset dazu. Wenn man die Bitfolgen auslesen kann 
und mit den Empfangsfrequenzen vergleicht, sollte das rauszukriegen 
sein. Noch einfacher wäre natürlich ein Blockschaltbild von der 
Frequenzaufbereitung.

von Jobst M. (jobstens-de)


Lesenswert?

Harry Goetz schrieb:
> das Datenblatt hatte ich auch gefunden, aber leider werde ich daraus
> nicht schlau, wie ich die Bitfolgen in eine Frequenz umrechnen muss.

Später ...

> Habe leider noch keine so große Erfahrung im AVR Programmieren, und mit
> PLL's schon garnicht.
> Bisher hat mir Bascom für meine Basteleien ausgereicht.

Ich kenne mich mit Bascom nicht so aus. Wenn dort Interupts möglich 
sind, wirst Du damit glücklich.

Mit der CLK Leitung gehst Du an einen INT-Pin des AVR den Du auf 
positive Flanke konfigurierst.
CLK kommt mit maximal 200kHz. Ist also easy.

Mit STB an einen weiteren INT-Pin. Wenn dieser einen IRQ auslöst, dann 
sind die 20 Bit, die Du vorher eingelesen hast komplett.

Und dann gibst Du erst mal die rohen Daten aus.

Dann kann man weiter sehen.


Gruß

Jobst

von Harry G. (harry1)


Lesenswert?

So, hab mal was zusammengebastelt.

Bei 1 Mhz bekomme ich diese Bitfolgen über RS232.
0000000000100101
000001010100011101010010
00000000

Bei 1.25 Mhz
0000000000100101
000001111100011101010010
00000000

Bei 97.4 Mhz
0000000000100101
000001010010001100110010
00000000

Bei 100 Mhz
0000000000100101
000001011000101100110010
00000000

Bei 200 Mhz
0000000000100101
000001011010001101110010
00000000

Bei 1000 Mhz
0000000000100101
000001100101010101110010
00000000

Ich steige einfach nicht dahinter, wie ich daraus eine lesbare Frequenz 
zaubern soll.

Danke für eure Hilfen.

Jobst, du kannst das bestimmt entschlüsseln.

Gruß

Harry

von John (Gast)


Lesenswert?

Ich hab jetzt mal nur die Bits betrachtet die sich ändern, und ich habe 
die Bitfolge umgedreht.

Bei 97.4 Mhz
0000000000100101
00000 1010010001100 110010
      0011000100101 (bin)  ->   1573 (dec)

Bei 100 Mhz
0000000000100101
00000 1011000101100 110010
      0011010001101 (bin)  ->   1677 (dec)

Bei 200 Mhz
0000000000100101
00000 1011010001101 110010
      1011000101101 (bin)  ->   5677 (dec)

Von 97,4MHz zu 100MHz ist die Differenz 104
 -> 25kHz pro Schritt x 104 = 2,6MHz

Von 100MHz zu 200MHz ist die Differenz 4000
 -> 25kHz pro Schritt x 4000 = 100MHz

Ist der AOR 1500 nicht ein Multi-Superhet-Empfänger?
Je nach Frequenzband (und der AOR 1500 hat mehrere davon) und 
Betriebsart (WFM, NFM, AM etc) ändert sich die Wertigkeit und der Offset 
der Daten. Was Matthias auch schon geschrieben hat. Deshalb funktioniert 
auch diese Rechnung mit 1MHz und 1000MHz im Bezug auf 100MHz nicht mehr 
(andere Frequenzbänder).

Gruß
John

von Jobst M. (jobstens-de)


Lesenswert?

Harry Goetz schrieb:
> Jobst, du kannst das bestimmt entschlüsseln.

Jopp :-)

Ist da irgendwo ein 12.8MHz Quarz? :-)
Und die ZF beträgt 556.325MHz

Und die von Dir mitgelesenen Daten scheinen zu stimmen. Passt alles.




Die 12.8MHz werden durch 1024 geteilt - siehe Seite 4

xxxx 000000000010 0 1 01
          R

Zu erkennen an der 01 am Ende.
Das Bit davor bezieht sich darauf, ob das Loop-Filter (externe 
Beschaltung) positiv oder negativ verstärkt.
Das Bit davor setzt einen festen Teiler von 1024 (hier nicht gesetzt)
Die restlichen 12-Bit davor geben an, mit welcher divisor die 
Referenzfrequenz (Quarz) geteilt werden soll.

R = 1024

Das Schieberegister ist 20 Bit lang - die verbleibenden 4 Bit werden 
hier nicht verwendet.
(Der Prozessor sendet immer 8-Bit Gruppen)


12.8MHz / 1024 = 12.5kHz







0000 0111110 00111010100 10 -> 1.25MHz
        A         N

-> Programmable counter - Seite 5
Zu erkennen an der 10 am Ende.
A = 62
N = 348

0000 0101010 00111010100 10 -> 1 MHz
A = 42
N = 348

Differenz 62 - 42 = 20 (entspricht 250kHz)
1 = 12.5kHz = Referenztakt

P = 128

Teiler = P*N+A

Die 4 0en entstehen durch die 24-Bit (3x8-Bit der CPU) und werden hinten 
aus dem 20-Bit Register wieder herausgeschoben.

A und N lassen sich bei P = 128 zu einem Wort zusammenfassen:

0000 011111000111010100 10 -> 1.25MHz
           Teiler

Teiler = 44606

44606 * 12.5kHz = 557.575MHz Oszillatorfrequenz

Davon die ZF abziehen

557.575MHz - 556.325MHz = 1.25MHz (voila!)



xxxxxxxxxxxx000000 00

Seite 6 & 7

Filter und LD Einstellungen - für die Frequenz nicht von Bedeutung.



Gruß

Jobst

von Jobst M. (jobstens-de)


Lesenswert?

John schrieb:
> Ich hab jetzt mal nur die Bits betrachtet die sich ändern, und ich habe
> die Bitfolge umgedreht.

... und an der falschen Stelle zerteilt ;-)


Gruß

Jobst

von Jobst M. (jobstens-de)


Lesenswert?

Irgendwo zwischen 200MHz und 1000MHz findet eine ZF-Umschaltung statt 
...

Oder die Daten für 1000MHz sind falsch ...



Gruß

Jobst

von Harry G. (harry1)


Lesenswert?

Ihr habt's echt DRAUF

Ich bin begeistert, wie Schnell ihr die Lösungen aus dem Ärmel Schüttelt 
:-)

Danke an Alle und vor allem An Jobst, du hast mir den richtigen Weg 
gezeigt.

Von alleine wäre ich nie darauf gekommen, jetzt werde ich erst mal 
versuchen das Alles umzusetzen.

Die Bitfolgen für 1000 Mhz stimmen, da schaltet irgendwas um.

Ich versuche jetzt erst mal was aufs Display zu bekommen.

Jobst wie kommst du auf den wert P = 128.

Ja ich habe ein 12.8MHz Quarz? im Schaltplan am PLL entdeckt.
Wie bisst du auf die ZF von 556.325MHz gekommen.


Gruß
Harry

von Jobst M. (jobstens-de)


Lesenswert?

Harry Goetz schrieb:
> Die Bitfolgen für 1000 Mhz stimmen, da schaltet irgendwas um.

Okay, das ist ein seperates Signal, welches sich nicht in diesem 
Datenstrom wieder findet. Vermutlich wird die ZF umgeschaltet.


> Ich versuche jetzt erst mal was aufs Display zu bekommen.

Genau. Nimm erst einmal an, daß alles genau so ist, wie von mir 
ausgerechnet. Und dann schaust Du, bei welcher Frequenz es nicht mehr 
passt.


> Jobst wie kommst du auf den wert P = 128.

Es werden alle 7 Bit in A genutzt.


> Wie bisst du auf die ZF von 556.325MHz gekommen.

Jobst M. schrieb:
> 557.575MHz - 556.325MHz = 1.25MHz

Das geht auch rückwärts ;-)


Gruß

Jobst

von Harry G. (harry1)


Lesenswert?

Hallo Jobst,

von 0.500Mhz bis 299 Mhz passt es mit einer ZF von 556.325 Mhz
von 300 bis 607 Mhz passt es mit einer ZF von 249.125 MHz
von 608 bis 798 Mhz passt es mit einer ZF von 58.075 MHz


bei genau 798 Mhz passt es nicht mehr.

Bitfolge bei 798.000 Mhz
0000000000100101
000001100001110101010010
00000000

ich komme da nicht mehr weiter.

Gruß

Harry

von Jobst M. (jobstens-de)


Lesenswert?

Hast Du evtl. auch nochmal 800MHz für mich?


Gruß

Jobst

von Harry G. (harry1)


Lesenswert?

Hallo Jobst,

bin gerade erst von der Arbeit gekommen.

Gerne so viel du willst, bin froh wenn du mir hilfst.


800Mhz
0000000000100101
000001100100001101010010
00000000

810Mhz
0000000000100101
000001100010111101010010
00000000

850Mhz
0000000000100101
000001100011110111010010
00000000

890Mhz
0000000000100101
000001100010000100110010
00000000

900Mhz
0000000000100101
000001100110110100110010
00000000

Gruß
Harry

von Jobst M. (jobstens-de)


Lesenswert?

Setz doch als ZF für diesen Bereich einfach mal 0 ein und schau mal, 
welche Differenz Du zwischen Anzeige und tatsächlicher Frequenz hast ...

Addition ist keine Hexerei ...

Und: Ich vermute noch eine Bereichsumschaltung - die ergibt sich einfach 
logisch ...
(Ich vermute knapp oberhalb von 1000MHz)

;-)



Gruß

Jobst

von Harry G. (harry1)


Lesenswert?

Ich habs jetzt endlich geschnallt !!!!

Jetzt stimmt die Anzeige bis 1300 Mhz.

DANKE :-)

ich dachte die ZF muss immer abgezogen werden.


Gruß

Harry

von Jobst M. (jobstens-de)


Lesenswert?

Woran erkennst Du eigentlich, in welchen Bereich Du Dich gerade 
aufhältst?


Nein, es entstehen immer 2 Mischprodukte. Eins davon filterst Du Dir 
heraus.

Allerdings ist es auch möglich, daß Du so zwei Frequenzen empfängst. 
Eine als Ergebnis der Addition, eine als Ergebnis der Subtraktion. Dafür 
werden noch vor der Mischung Filter umgeschaltet.
Und damit die ZF nie selber auf der Empfangsfrequenz stört, wird der 
ZF-Bereich auch umgeschaltet.
Ausserdem kommt man so mit einer relativ einfachen VCO aus, die nur 
einen Bereich von 500-900MHz abdecken muss.


Gruß

Jobst

von Harry G. (harry1)


Lesenswert?

Jobst M. schrieb:
> Woran erkennst Du eigentlich, in welchen Bereich Du Dich gerade
> aufhältst?

Da bin ich noch am suchen, es sind noch ein paar 4094 Schieberegister 
verbaut.

Irgendwie krig ich das schon hin (hoffe ich), mir war erst mal Wichtig 
zu wissen wie ich das rechnen muss.

Gruß

Harry

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.