SAA1057 ansteuern Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte
Autor |
|
|
|
BID = 462741
Bastler1234 Gesprächig
Beiträge: 107 Wohnort: Kirchberg an der Murr
|
|
Hi Leutz,
Hab mal wieder ein Projekt am laufen und zwar hab ich mir son Oppermann Tunermodul UTF3 bestellt. Damit will ich ein Radio mit PLL Abstimmung aufbauen. Es soll in meinem Vorverstärker eingebaut werden. Ich weiß ja das es schon etliche Threads dazu gab, aber keiner hat mir weitergeholfen.
Nun zu meinem Problem, als IC hab ich den SAA1057 vorgesehen. Leider scheint sich beim Tastendruck zum Senderwechsel nichts zu tun, das Radio rauscht einfach vor sich hin und ändert auch den Sender nicht.
Hab jetzt schon etliche Male die Hardware überprüft und konnte keinen Fehler finden. Deshalb glaube ich, das es wohl an der von mir verwendeten Software liegt, es wäre echt nett, wenn sich jemand mal kurz die Software (In Bascom) anschauen kann und Verbesserungsvorschläge machen könnte. Das Problem mit der PLL macht mir jetzt schon seit Ewigkeiten zu schaffen.
Achso, mit einem Poti zur Abstimmung tut alles und der Empfang ist klasse, nur mit der PLL will er nicht.
Danke schonmal an alle die hier reinschreiben.
|
|
BID = 468186
Bastler1234 Gesprächig
Beiträge: 107 Wohnort: Kirchberg an der Murr
|
|
Oh sorry hab vergessen was wichtiges zu sagen, beim Zusammenbau gabs nen kurzen auf den Steuerleitungen, vielleicht ist dadurch der Mc, ist nen Atmega16 zu Schaden gekommen, den SAA hab ich dann danach ausgetauscht.
Da der Mc noch gut funktionierte, hab ich den aber drinnengelassen.
Kann ich den vielleicht irgendwie mit nem Multimeter messen, ob der Port des Mc noch tut oder Beschädigt ist?
Vielleicht über Widerstandsmessung oder sowas?
Ebenso wäre es geschickt, wenn ich den Saa mit nem Multimeter auf Funktion überprüfen könnte, hab leider kein Ozzi oder sonstiges anderes
Messequipment.
Danke an alle die hier reinschreiben
|
|
BID = 468193
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| hab leider kein Ozzi oder sonstiges anderes
Messequipment. |
Das ist schlecht.
Wie ich aber schon in dem andrren Beitrasg, in dem du nach dem LM7001 fragtest, geschrieben habe, kannst du auch bei diesem Chip das Abstimmwort notfalls von Hand reintakten. Du brauchst dafür nur drei entprellte Taster.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 468303
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Das hier
Zitat :
|
beim Zusammenbau gabs nen kurzen auf den Steuerleitungen
|
könnte auch der Fehler sein.
Ich habe es mal hinbekommen, den Ausgangstreiber eines Mikroprozessors zu killen, obwohl der Rest tadellos, samt CPU, weiterhin funktioniert.
Hab den µP weggedonnert, sowas sind potentielle Fehler- oder Störungsquellen, an denen man sich nen Wolf suchen kann, wenns um Fehler geht.
Um das zu testen:
Datenrichtungsregister der entsprechenden IO-Leitungen auf Ausgang setzen, sie einmal eine Last als Quelle, und einmal als Senke treiben (nicht zu viel, aber so testweise 5-10mA) und wenn sie das schaffen, sollte der komplementäre Ausgangstreiber eig. IO ( ) sein.
_________________
[ Diese Nachricht wurde geändert von: DonComi am 31 Okt 2007 22:53 ]
|
BID = 468578
Bastler1234 Gesprächig
Beiträge: 107 Wohnort: Kirchberg an der Murr
|
Also hier mal mein Code, ist aber mit Software für einen Vorverstärker gemischt, deshalb muss man vielleicht nen bisschen suchen.
|
BID = 468644
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Ich werde deinen Code nicht analysieren, aber da du schreibst:
Zitat :
| und zwar hab ich mir son Oppermann Tunermodul UTF3 bestellt. Damit will ich ein Radio mit PLL Abstimmung aufbauen.
..... als IC hab ich den SAA1057 vorgesehen. Leider scheint sich beim Tastendruck zum Senderwechsel nichts zu tun, das Radio rauscht einfach vor sich hin und ändert auch den Sender nicht. |
Wenn du partout nichts empfängst, dann versuch doch einfach mal die Abstimmspannung ohne PLL nur mit einem Poti herzustellen. Dann müsste eigentlich etwas zu empfangen sein.
Vielleicht ist der Tuner ja defekt oder du hast irgendetwas falsch angeschlossen. Als Poti nimmst du zweckmäßigerweise einen logarithmischen Lautstärkeregler. Der Wert ist unkritisch, da die Varicaps praktisch keinen Strom brauchen.
Evtl. musst du auch eine Squelch-Spannung bedienen, die sonst das Ausgangssignal während des Abstimmvorgangs der PLL unterdrückt.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 468674
Bastler1234 Gesprächig
Beiträge: 107 Wohnort: Kirchberg an der Murr
|
Hi, Perl
Das Modul funktioniert mit nem Poti schon recht gut nur mit meinen Stereo Decoder (MC1310) verträgt er sich wohl net so ganz. Bei manchen Sendern die gut zu Empfangen sind bleibt er auf Mono. Hab dann aber nen anderen Decoder angeschlossen, damit klappts einwandfrei. Würde aber gerne den MC1310 benutzen, da er besser klingt als der andere.
Wird wohl nen Abstimmproblem sein.
@ DonComi, tut mir leid, aber hab deinen Code zum ausgeben der Daten nicht ganz verstanden. Wo muss den der Wert, der ausgegeben wird hin ist das bei dir daten?
Der Chip braucht zum übernehmen der Daten nen High Clb Signal.
Danach dann wieder auf Low. So habs ich zumindest laut Datenblatt verstanden.
Als erstes Bit nach dem Leading Zero kommt immer die Auswahl des Latches, hab ich das richtig verstanden? Danach gehts dann so weiter wie es im Datenblatt angegeben wird oder?
[ Diese Nachricht wurde geändert von: Bastler1234 am 2 Nov 2007 14:27 ]
|
BID = 468699
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Hallo,
Also, daten ist bei mir eine 16bit-lange Zahl. Ins Datenblatt habe ich nicht geguckt, denn du willst das ja entwickeln und nicht ich. Das war nur ein Beispiel, wie man an in 16 Schritten an alle Bits kommt, um diese dann, zusammen mit einem Taktsignal seriell auszugeben. Dabei beachtet habe ich nicht, ob das LSB oder MSB zuerst kommt, ob das Datenformat stimmt, wie lang ein Datensatz ist, ob die Daten mglw. invertiert ausgebeben werden und wie die Logik zwischen Takt- und Datensignal aussieht. (also, ob Daten bei fallender- oder steigender Flanke übernommen werden etc.) Weiterhin habe ich kein Chipselect / Enablesignal drin, dass normalerweise bei dieser rt der Datenübertragung noch benötigt wird (SPI im Prinzip).
Also, schau dir am besten die Timing diagrams an, sofern vorhanden, lass sie im Hintergrund laufen oder druck sie aus, um anhand dieser Diagramme das Programm aufzubauen. Natürlich müssen die Timings im Diagramm mit dem Programm übereinstimmen, also Pulslängen und -abstände etc.
Das kling alles wahnsinnig kompliziert, ist es aber nicht.
Außerdem empfehle ich dir die Lektüre der Bascomhilfe für den Shiftout-Befehel. Mir ist es versagt dort nachzusehen, da ich weder Bascom noch Windows habe. Dort wird stehen, welches Eingabeformat (Byte: 8bit Länge/Word 16bit Länge) der Befehl verlangt und wie die signale aussehen. Wenn es mit dem Datenblatt übereinstimmt, kannste den nehmen.
Um Bits, und darum wirst du nicht herumkommen beim Programmieren, gezielt setzen, invertieren oder löschen zu können, empfielt sich die Maskierung.
Wenn du willst, dass Bit7 0 wird, alle anderen Bits aber den alten Wert behalten sollen, dann macht man das mit einem bitweisen Und:
Variable:
1xxxxxxx(b)
Maske:
01111111(b)
Nun wird jedes Bit logisch verknüpft:
in der Variable steht danach:
0xxxxxxx(b)
Denn: die Logik von UND (and) besagt, dass das resultierende Bit nur dann 1 ist, wenn alle Eingangsbits 1 sind (hier: beide Eingangsbits)
Ist in der Maske eine 0, dann ist das Ergebnis auf jeden Fall auch ein gelöschte/nichtgesetzes Bit.
---
Wenn du willst, dass Bit 7 auf jeden Fall gesetzt werden soll, und alle anderen Bits so bleiben sollen, wie sie sind, dann macht man das mit bitweisem Oder:
Variable:
0xxxxxxx(b)
Maske:
10000000(b)
Jedes Bit wird mit der Maske oder-verknüpft:
Inder Variablen steht dann:
1xxxxxxx(b)
Denn: Wenn bei Oder auch nur ein Operand logisch 1 ist, ist das Ergebnis auf jeden Fall 1. Selbst wenn beide Operanden 1 sind, ist das Ergebnis logisch 1. Die anderen Bits bleiben, wie sie sind: Sind sie 1, ist das Ergebnis 1, sind sie 0, dann ist 0 oder 0 auch 0.
---
Das ganze klappt auch mit gezielter Inversion einzelner Bits, aber das ist denke ich mal nicht so wichtig erstmal.
_________________
|
BID = 469059
Bastler1234 Gesprächig
Beiträge: 107 Wohnort: Kirchberg an der Murr
|
Also gut, hab jetzt mal den Mikrocontroller gegen nen neuen ausgetauscht. Es tut immer noch nicht.
Ich fände es echt klasse, wenn mal jemand ins Datenblatt reinschaut und mir dann sagen könnte ob meine Annahmen stimmen.
Am Anfang jeder neuen Datenübertragung muss immer zuerst eine Pause von 1,3 ms stehen, jetzt muss auf der Datenleitung eine Null (Leading Zero) liegen. Zum übernehmen dieser Null wird jetzt DLEN High -->
der Chip empfängt die Daten. Es folgt eine Clocksequenz --> Clock Leitung wird High, es folgt eine Pause von 10µs, danach geht Clock wieder auf Low und es wird weitere 10µs gewartet.
Jetzt folgt eine 1 um das Frequenzregister (Word A) anzusprechen oder eine 0 um das Controlwortregister (Word B) anzusprechen. Es folgt eine weitere Clocksequenz ,damit die Zahl übernommen wird.
Wähle ich nun das Frequenzregister gebe ich die gewünschte Frequenz als Dezimalzahl ein und da der Mc die Zahl sowieso als Binärzahl speichert kann ich die Jetzt einfach per Schieberegister bzw. per Shiftout rausschieben.
Um die entsprechende Frequenz auf der der Radiosender sendet zu bekommen, muss ich die Frequenz/Tuningschritte bei mir 10KHZ und da dann 10,7 MHZ für die ZF draufrechnen, die Zahl ist dann die Frequenz die ich an den SAA senden muss. Stimmt das so ? Für 90,8 MHZ wär das dann 90,80/0,01 + (10,7/0,01) MHZ ZF wär dann der Teilerwert 1015.
Wähle ich das Controlregister, dann setzte ich jetzt die gewünschten Bits genau in der Reihenfolge von Links nach rechts (wie sie unter Fig.3 bei Data Word B angegeben ist) von Hand und speichere sie in einer Word Variable. Das ganze wird jetzt wieder per Schieberegister rausgeschoben.
Ist die Datenübertragung nun beendet dann geht Dlen auf Low und der IC weiß jetzt, dass die Übertragung fertig ist.
Mir ist auch noch ne weitere Frage eingefallen, Welche Verstärkung brauch das Tunermodul denn jetzt, die wird ja per CP Bits eingestellt.
Hab mal einfach die 2t höchste genommen. Tunerdatenblatt häng ich an ist nen UTF3 von Oppermann mit TBA120 Demodulatorbausatz.
Danke an alle die sich die Mühe machen mir zu helfen.
<font color="#FF0000"><br><br>Hochgeladene Datei ist grösser als 1,8 MB . Deswegen nicht hochgeladen<br></font>
[ Diese Nachricht wurde geändert von: Bastler1234 am 3 Nov 2007 20:44 ]
|
BID = 470637
Bastler1234 Gesprächig
Beiträge: 107 Wohnort: Kirchberg an der Murr
|
Hallo,
kann niemand helfen?
hab noch nicht soviel Erfahrung mit Digitaler Schaltungstechnik....
|
BID = 470699
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Hast du mal geprüft, ob sich die Abstimmspannung überhaupt verändert, bzw. die PLL fängt ?
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
|
Zum Ersatzteileshop
Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum
Datenschutz
Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland
gerechnet auf die letzten 30 Tage haben wir 22 Beiträge im Durchschnitt pro Tag heute wurden bisher 1 Beiträge verfasst © x sparkkelsputz Besucher : 182631550 Heute : 59 Gestern : 7581 Online : 330 31.12.2024 0:14 5 Besucher in den letzten 60 Sekunden alle 12.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0586411952972
|