Hallo, allerseits ich würde gerne mein Selbstbauradio mit einer PLL nachrüsten um einen Senderspeicher hinzufügen zu können. Kann mir vielleicht jemand bitte sagen ob das überhaupt möglich ist eine Pll komplett in Software aufzubauen oder brauche ich unbedingt noch weitere Externe Beschaltung, ich hab nämlich nicht mehr viel Platz auf der Platine. Eine genauere Beschreibung des Aufbaus gibt es am Ende des folgenden Threads Beitrag "Einfaches Radio basteln". Als MC nehm ich nen Atmega 16. Dankeschön schon mal im Voraus an alle die hier antworten.
Eine PLL zur Erzeugung von Radiofreqeunzen (88-108 MHz) geht nur in Hardware. MFG Falk
Naja zumindest die Steuerfrequenz für die PLL kann man von einem MC digital ausgeben. Müsste denk ich mit einem 16bit timer sogar elegant in hardware machbar sein mit der benötigten Auflösung. Diese relativ niedrige Frequenz dann mit entsprechendem Teiler in die hardware-PLL..
hmm schade, kennst du ne möglichst platzsparende Möglichkeit um das aufzubauen? Ich hab mir auch schonmal ein paar Datasheets angeschaut, und bin beim LM7001 stehengeblieben, aber ich wurde aus der Schaltung die da angegeben ist nicht ganz schlau. (Notes on Pll Ic usage). Nen DAC und nen ADC wären schonmal vorhanden. Wie müsste ich dann das ganze an das Pollin Tuner Modul anschließen?
Kann sein, dass ich grade zu kurz gedacht habe. Wenn man die vollen 16 bit Auflösung nutzen wollte, hätte man bei 20MHz eine kleinste Frequenz von 305 Hz. Das wird wohl einer PLL zu wenig sein. Also muss man die Auflösung so weit reduzieren, dass man in Größenordnungen kommt, die die PLL braucht. bei 8bit hätte man schon >3MHz. Ich weiß aber nicht, wie groß solche Vorteiler für PLL maximal sein dürfen..
@ Fabian Wolf (fabi) Was willst du mit ne DAC und ADC? Weiss du überhaupt, wie ein PLL funktioniert? @ jmoney (Gast) Du redest wirr. An dich stelle ich die gleiche Frage. Weiss du überhaupt, wie ein PLL funktioniert? Von einer rein digitalen mal ganz zu schweigen. MFG Falk
Gegenfrage: Falk, weist du, wie eine PLL funktioniert? Leite doch grad mal alles erforderliche her... [] Du weist, wie eine PLL funktioniert.
@ Falk so einigermaßen schon. aber bevor der Thread jetzt wieder in Streitereien ausartet, beantwortet doch bitte einfach meine Fragen. Denn DAC hab ich im Moment zur Abstimmung, aber der zweite Kanal ist noch frei. Und den ADC vom Mega zur Feldstärkerkennung.
Der Pollintuner braucht eine Feste Spannung! Also entweder, DAC... oder PWM. beides mit dem µC realisierbar.
Danke für deinen Post Läubi, wie hast du das mit dem Frequenzdrift denn bei deinem Radio gelöst? Hast du auch nen Senderspeicher eingebaut?
@ 1. Rahul nach Moiré >Gegenfrage: >Falk, weist du, wie eine PLL funktioniert? Leite doch grad mal alles Aber sicher, Eure hochwohlgeborene Interferenz ;-) >erforderliche her... PLL, Phase Locked Loop, zu gut deutsch Phasenregelkreis. Ein lokaler Oszillator wird in in seiner Phaseenlage an die Pahsenlage eines Teferenzsignals gekoppelt . . .blabla Ich hab zu dem Thema (digitale PLLS) meine Diplomarbeit geschrieben. Ist schon ne Weile her. @ Fabian Wolf >Denn DAC hab ich im Moment zur Abstimmung, aber der zweite Kanal ist >noch frei. Und den ADC vom Mega zur Feldstärkerkennung. Na wenn ich das solesem dann geht es eher um ein Tunermodul, das ist etwas mehr als ne PLL. MFG Falk
Hallo, das angehängte Datenblatt des Tuners hat den Nachteil, daß nichts drinsteht... ;) Wenn Oscillator Output die Oszillatorfrequenz direkt (ohne Vorteiler) ausgibt, kannst Du einen LM7001 ranhängen. Der braucht diese und liefert mit der Ladungspunpe die Abstimmspannung. Die muß dann natürlich so dimensioniert sein, daß das zum Abstimmbereich des Tuners passt. Programmiert wird der LM7001 dann vom ATMega. Mir war das alles zuviel HF-Kram, um es "mal schnell" selbst zusammen zu basteln. Meine beiden Versionen sind daher immernoch: DRU-100 USB-Radio bei ebay beschaffen, USB-Chip runter und die nötigen Leitungen zum Atmel ran. Da ist der TEA5757 drauf, der hat alles im Chip. Tuner, ZF, Stereo-Dekoder und eben die komplette PLL mit VCO. Variante 2 ist eine ISA-Radiokarte (Radio-Boostar o.ä.), GAL runter und die Leitungen zum Atmel ran. Da ist TEA5712 als Tuner, ZF, Stereodekoder drauf, LM7000 als PLL, dazu ein LC7534 als Lautstärkeregler und ein 2x1W NF-IC (irgendein TDA). Mit beiden Versionen bin ich erstmal auf der Programmier-Seite für Suchlauf, Speicher, Frequenzanzeige usw. und ärgere mich im Momnet nicht mit der HF-Geschichte rum. PS: hab mir gestern noch eine ISA-Radio-Boostar bei ebay für 1 Euro geholt, auf die Dinger bietet ja sonst keiner mehr. :) Gruß aus Berlin Michael
Danke für eure Posts @Falk das Radio ist ja schon fertig aufgebaut ich will halt jetzt noch die Pll hinzufügen, um den Senderspeicher einzubauen, jedesmal nach dem Ein und Ausschalten nochmal alles manuell einzustellen ist ziemlich nervig. @Michale Wie muss den die Außenbeschaltung des LM 7001 aussehen ?
Hallo, zum Lm7001: die Dinger sind ja mittlerweile uralt, es ist ja genau mein Problem, daß ich im Netz keinerlei aussagekräftige Applikationen oder wenigstens ein Radio-Schaltbild gefunden habe, wo der eingesetzt wurde... Deshalb ja mein ausweichen auf real existierende lösungen, da kann ich zumindest den Schaltplanauszug rauszeichnen. Zu Deinem Radio: ich habe das nicht mehr sonderlich verfolgt, aber so, wie ich es hier jetzt verstehe, hast Du ja den Tuner in Gang und erzeugst die Abstimmspannung per DAC? Wo ist dann eigentlich Dein Problem? Ich weiß ja nicht, wie stabil der Tunerbaustein ist, aber Senderspeicher würde für mich doch dann erstmal heißen, daß ich die Werte für die Sender im Atmel speicher und fertig? Den Rest muß der Atmel per Feldstärke nachstimmen bzw. die AFC erledigen. Sonst würde mir noch der Weg einfallen, die Oszillatorfrequenz zu messen (externer Vorteiler, für UKW reicht ja ein 50kHz-Raster. Dann eben den Atmel durchstimmen lassen, bis die gewünschte Frequenz passt oder die Abstimmspannung aus dem Speicher setzen und nach der aktuellen Frequenz korrigieren. Wäre dann eine digitale AFC mit erweitertem Fangbereich und in Software zu machen (außer Vorteiler). Müßte man mal den nötigen Vorteiler ausrechnen, damit man mit dem Atmel noch genau genug messen kann und schauen, ob es schnell genug ist, Torzeit von 0,1s sollte eigenlich noch Sinn ergeben. Gruß aus Berlin Michael
DU kannst den Wert für den DAC / PWM speicher. Dann baust du eine "autofinetune" Funktion die innerhalb dieser Frequenz das Maximum der Signalstärke sucht (über den ADC). ALternativ kannst du auch Zielfrequenz mitspeichern dun dann mittels Teiler http://www.rowalt.de/mc/avr/avrboard/09/avrb09.htm auf den Input eines Zähler und dann kanste ggf nachregeln.
Dankeschön für deine Antwort So zuerst mal der Rest des Db. Also mein Problem ist folgendes, ich würde eben gerne in das Radio noch nen Senderspeicher einbauen. Wenn ich aber nun den passenden Sender gefunden habe per Sendersuchlauf und ihn dann per Tastendrücke fein abstimme geht ja noch alles, den kleinen Frequenzdrift kann ich ja einfach per nachstellen korrigieren. Schalte ich nun das Radio aus, dann sollte er den zuletzt eingestellten Sender speichern. Aber wird er jetzt wieder eingeschalten, dann ist er natürlich durch den Frequenzdrift verstellt und ich darf alles nochmal machen, das ist ziemlich nervig und solang nichtmal das funktioniert, bringt es ja nichts nen richtigen Senderspeicher einzubauen. Deshalb brauch ich eben irgendein Regelkreis der mir die Tuningspannung stbilisiert.
Falk: Ich habe ehrlich gesagt noch keine einzige PLL aufgebaut, aber ich habe mich mal kurzzeitig damit beschäftigt. Tut mir leid, wenn ich ohne Zusammenhang einfach Begriffe in den Raum geworfen habe und das möglicherweise auch noch falsch. Ich beziehe mich auf http://www.uoguelph.ca/~antoon/gadgets/pll/pll.html unter Fig. 5. Der Oszillator wäre in dem Fall der MC. Die Divide-by-2-Stufe kann man nach meinem Verständnis durch einen beliebigen anderen Zähler oder zumindest 2^n-Teiler ersetzen. Ob das mit einem divide-by-100 auch noch (frequenzstabil) funktioniert, wage ich aber mal zu bezweifeln. Diese Grenze kenne ich nicht. Ich hoffe, meine Ausführungen weiter oben werden jetzt etwas verständlicher.
@Fabian: Geht es immer noch um das Radio, für das die Fernbedienung umgebastelt wurde? ...
Hallo, also normalerweise sind die Dinger nicht unbedingt so instabil, daß man einen Sender nicht wiederfindet. Die Abstimmspannung muß natürlich reproduzierbar sein, also gut stabilisiert und der DAC darf auch nur möglichst wenug Fehler produzieren... Ansonsten liefert eigentlich das Stop-Signal den richtigen Abstimmpunkt. Jedes (alte) Radio mit Stationstasten hat den Sender beibehalten, die Feinabstimmung mußte die AFC erledigen. Sollte hier genauso sein, die AFC mußt Du aber wohl digital mit dem Atmel lösen, der Tuner scheint für eine externe PLL gebaut zu sein. Abstimmspannung etwas unter dem Sollwert setzen und erhöhen, bis Stop die richtige Abstimmung anzeigt. Wenn er rausläuft, sollte eigentlich Stop wieder auf H gehen, dann ist nachstimmen angesagt. Das Problem ohne PLL ist es, die Richtung zu erkennen, in die er weggelaufen ist... Schon deshalb würde ich über Frequenzmessung nachdenken. Gruß aus Berlin Michael
@hannes jo ist noch immer das gleiche. @ Michael danke für deine Antwort kannst du vielleicht bitte noch deine Idee etwas konkreter ausführen? Ich nehm zur Abstimmspannung nen 7810 und für die Steuerung nen 7805. Vielleicht nützt es etwas wenn ich mein bisher genutztes Programm hier reinstelle, das ist von RDSAnfänger.
Fabian Wolf wrote:
> @hannes jo ist noch immer das gleiche.
Na soviel ich mitbekommen habe, steuerst Du das Teil durch Taster bzw.
die modifizierte Pollin-Fernbedienung. Wo und wie willst Du da mit einer
PLL-Schaltung ansetzen? Und was soll das bringen?
...
@ Hannes guck mal weiter oben, ich hab eben das Problem das er denn eigentlich eingespeicherten Sender nach dem nächsten Einschalten nicht richtig widerfindet. Im Anhang das Prog.
Fabian Wolf wrote: > @ Hannes guck mal weiter oben, ich hab eben das Problem das er denn > eigentlich eingespeicherten Sender nach dem nächsten Einschalten nicht > richtig widerfindet. Das hatte ich gelesen... > > Im Anhang das Prog. Damit kann ich nichts anfangen. Da fehlen die Kommentare, sinnvolle (sprechende) Variablennamen usw. Ich habe es mir aber nur im Texteditor angeschaut, BASCOM installiere ich aus Prinzip nicht. Jetzt habe ich aber noch ein Verständnisproblem. Du warst mit der umgestrickten Fernbedienung zufrieden, also gehe ich davon aus, dass sie Deinen Radio-Baustein (um den ich mich nicht weiter gekümmert habe, da ich nicht 'radioaktiv' bin) richtig steuert. Welche Aufgabe hat denn nun noch der Mega16 mit dem konfusen BASCOM-Programm?? ...
Hallo, zum Programm kann ich hannes nur zustimmen. Dazu fehlt ein Schaltplan, um überhaupt zu verstehen, was Du damit machst. Über die Erzeugung der Abstimmspannung wissen wir immernoch genau nichts. Ob ein 7810 dafür sinnvoll ist, kann ich im Moment nicht sagen, wie erzeugts Du die Abstimm-Spannung überhaupt (DAC)? Der Tuner hat eine recht hohe Abstimm-Steilheit, 6V für 20MHz sind 3,3MHz/V. Für 50kHz Verstimmung reichen also 15mV Änderung unter der Vorraussetzung, daß die Abstimmung linear ist. Ist sie normalerweise nicht, unten ist sie steiler, da reichen dann vermutlich schon 5-10mV. Wie genau ist Dein DAC überhaupt? Der müßte ja etwa 10Bit sicher auflösen können, um überhaupt übder den Bereich sinnvoll abstimmen zu können? 20000kHz (88...108MHz) / 1024 = 19,5kHz / Bit Gruß aus Berlin Michael
Er übernimmt die eigentliche Abstimmung, das Programm für die FB war nur zum steuern da. Ich werde mal eine Beschreibung des Programms nachliefern.
Hallo, der TDA1543 ist ein typischer Audio-DAC, das kann er sicher auch gut. Ob der stabil in einer Gleichspannungs-Anwendung ist, wage ich etwas zu bezweifeln. Einfach deshalb, weil er für NF, also Wechselspannungs-, Anwendungen etwickelt wurde. Da zählt Kanalgleichheit und Klirrfaktorarmut (Schaltflanken usw.) mehr als der langzeitstabile Absolutwert der Ausgangsspannung. Der wird in seiner eigentlichen Anwendung sowieso irgendwo im Signalweg ausgefiltert. Wenn ich mich da irre, mag man mich korrigieren. Ich würde wohl eher als Spannungserzeugung eine Z-Diode mit Stromquellenspeisung nehmen, dazu ein R-2R-Netzwerk und einen OPV dahinter. Dabei bleibt noch die Frage, wie stabil der Tunerbaustein ist. Es gab fpr die Entwickler vermutlich auch da wenig Grund, allzuviel Aufwand zu treiben. Nach den Anschlüssen zu urteilen, war er für eine externe PLL und damit war es auch nicht nötig, daß er sonderlich stabil sein mußte. Mach die Abstimmspannung statt mit dem DAC mit einem guten Poti in der sonst gleichen Schaltung. Wenn er da nach Ausschalten und morgen wieder einschalten noch gut auf dem Sender steht, ist der Tuner ok und Deine DAC-Geschichte klemmt. Wenn der Tuner auch dabei zu weit wegläuft, bleibt nur Frequenzzähler ran und PLL oder Digital-AFC bauen. Gruß aus Berlin Michael Gruß aus Berlin Michael
> Wenn der Tuner auch dabei zu weit wegläuft, bleibt nur Frequenzzähler > ran und PLL oder Digital-AFC bauen. Michael, erkläre bitte mal, was DU unter AFC verstehst. Hintergrund: Fabian und ich waren da unterschiedlicher Meinung und hatten dadurch arge Missverständnisse. Kann aber gut sein, dass ich da falsch liege, denn ich bin nicht "radioaktiv", soll heißen, ich habe mich nie für Radiobastelei interessiert. Falls sich jemand für den Quelltext für den Pollin-Fernbedienempfänger in Fabians Radau-Jo interessiert, so kann ich ihn gerne hier veröffentlichen. ...
Hallo, AFC - automatic frequenz control oder so ähnlich. ;) Ursprünglich wurde die Ratio-Richtspannung eines symmetrischen Ratio-Detektors benutzt. Die ist 0V, wenn die ZF der Mittenfrequenz des Filters entspricht (üblicherweise 10,7MHz). Bei Abweichung geht die entweder Richtung positiv oder negativ. Röhrengeräte brachten es auf +/- 10V bei Verstimmung, Transistor-Empfänger weniger. Bei weiterer Verstimmung geht sie wieder gegen 0. Damit wurde wurde eine Kapazitätsdiode gespeist, die parallel zum Oszillatorkreis lag. Hauptabstimmung war üblicherweise ein Drehko. Bei Verstimmung steuerte die Ratiospannung durch die C-Diode entgegen und hilt die Abstimmung möglichst stabil. Es ist keine PLL, nur eine Regelschleife mit Restfehlern im Bereich einer 100Hz. Später wurde C-Dioden als Hauptabstimmung eingebaut und die AFC-Spannung einfach drauf addiert (Oszillator-C-Diode Masse-Ende an die AFC-Spannung, anderes Ende an der Abstimmspannung. Die Funktion blieb genauso. Bei seinem Tuner gibt es leider keinen Ausgang mit der Ratio-Spannung, nur Feldstärke und ein intern irgendwie erzeugtes Stop-Signal. Feldstärke-Maximum ist aber zu ungenau für eine saubere Abstimmung, das Stop-Signal scheint aber die Diskriminator-Spannung intern auszuwerten, um einer PLL die genaue Abstimmung zu signalisieren. Geht mit einer PLL, weil die nur ein- oder ausgerastet sein kann. Wenn die bei Stop einrastet, bleibt die ja auch da phasenstarr. Digita-AFC ist nur eine Umschreibung dafür, wie man die AFC-Spannung ind die Abstimmspannung reinbekommt und wo manb sie herbekommt, ist aber keine PLL. Oszillatorfrequenz zählen und die Abstimm-Spannung so angleichen, daß man möglichst nahe an der Sollfrequenz landet, wäre eben AFC, keine PLL. Hoffentlich war das auf die Schnelle verständlich genug... Gruß aus Berlin Michael
> Hoffentlich war das auf die Schnelle verständlich genug...
Erstmal vielen Dank...
Ja es war verständlich genug. Es ist halt doch etwas komplexer als mein
damaliger Kristalldetektor mit Nadel zur Sendersuche und
Militär-Kopfhörer, dafür aber ohne Batterien oder Netzteil...
Gruß vom westlichen Ende der B246,
Hannes
Hallo, sag das mal nicht, frag doch mal jemanden, wie der Kristalldetektor funktioniert oder nur, wie der magnetische Kopfhörer geht... :-))) Ich sage es mal so: mir ist die Komplextät klar und die Funktion auch. Ich könnte den UKW-Empfänger mit PLL auch komplett aufbauen. Aaaaber: es ist so komplex, daß ich mir die Zeit dafür im Moment nicht nehme. Es soll dann ja auch spielen, daß bedingt aber auch passende Verdrahtung und Layout und Dimensionierung. Wenn man statt des Senders die PLL oder die Frequenzanzeige hört, macht das auch wenig Spaß. Mein letztes komplettes Gerät war so erste Hälfte der 80er. Tuner gekauft, ZF, Stereodekoder mit MPX-Filter, NF mit TDA730/740 und 2x 25W Sinus mit µA709 und 2x2N3055 hinten dran. Dazu Frequenzanzeige mit Vorteiler (74S112), Zähler in CMOS mit LED-Multiplexanzeige. Fernbedienung wieder als Original (RFT), Empfänger dazu auch, Decoder wieder Eigenbau. Am schlimmsten war der ca. 1kHz Multiplex der LED-Anzeigen. Die Oberwellen waren sehr gut zu hören. Bis das alles richtig lief.......... Lebt leider nicht mehr, das Teil. Aus all diesen Gründen mein Vorschalg an ihn, sich ein DRU-100 oder eine ISA-Sound-Booster zu ersteigern. Da stimmt das Layout, der Empfänger spielt und man kann sich um das Drumherum kümmern, Sendersuchlauf, Speicher, RDS anbauen usw. usw. Wenn dann die Selbstbau-Wut für den Empfänger mit PLL durchbrechen sollte (auf die warte ich bei mir noch ;)), hat man wenigstes brauchbare Anhaltspunkte für Leitungsführung und Dimensionierung zum Abschauen. Ist bei mir auch nur Spaß an der Freude, wenn es die Zeit zuläßt. Weckradio UKW-Stereo, RDS ran, Atmel für DCF77, evtl. noch SD-Cardslot und einen MAS3507 (liegt hier noch irgendwo) zum MP3-Spielen oder irgendsowas schwebt mir da noch vor. Gruß aus Berlin Michael
Nunja, Radiobasteln interessierte mich nie. Allerdings hatte ich Ende der 60er, Anfang der 70er einige Rohrenverstärker für unsere Instrumente gebaut bzw. umgebaut / instantgehalten. Beste Grüße, Hannes
Danke für eure Antworten @Michael das mit dem Poti hab ich schon getestet, am Anfang hab ichs Manuell abgestimmt und erst später hab ich dann den Sendersuchlauf nachgerüstet. Da hatte er auch nach dem Einschalten den Sender nichtmehr. kennst du denn noch nen gut geeignetten DAC, nen Pinkompatiblen wirds wohl leider nicht geben. Oder vielleicht noch nen anderen Pll Chip, den es bei Reichelt gibt und wozu es ausführliche Dokumentation gibt. Von Philips müsste es doch bestimmt einen geben? Die Lösung mit dem AFC wird wegen dem Senderspeicher ja wahrscheinlich auch nichts nützen.
Danke für den Post aber genau denn habe ich schon vorher erwähnt, er fiel raus weil er nicht genügend gut dokumentiert ist.
@alfsch Jetzt bin ich aber gespannt, was ihm dazu noch einfällt. Schade daß dieser hervorragende Link nicht schon früher aufgetaucht ist und diesen albernen Thread überflüssig gemacht hat.
Die einfachste Lösung ist hier keine PLL, sondern nur eine einfache Frequenznachregelung. "AFC" heißt eher die analoge Nachregelung innerhalb eines Empfangskanals. Hier spricht man manchmal von FLL also Frequenz-Regelschleife. Ein Mikrocontroller, der über einen Vorteiler die Oszillatorfrequenz mißt und die Abstimmspanung üner DAC nachzieht. Das kann ein paarmal pro Sekunde geschehen, die Stabilität des Tuners sollte ausreichen. Die Spannung am Oszillatorausgeng ist vermutlich noch nicht auf TTL-Pegel, außerdem sind es Frequenzen bis 118 MHz ( 10,7 MHz oberhalb der Empfangsfrequenz), also ein empfindlicher Vorteiler nötig, Reichelt hatte mal den U664 oder U893, das wären passende Kandidaten.
Reichelt-Preise U 666B = U 891 1.50 € U 813 BS SI TV Circuit, SIP-6 0.86 € U 829B IC-SCHALTUNG 0.26 € Ich habe neulich erst Datenblätter gepostet: Beitrag "Datenblätter zu alten Telefunken-Frequenzteilern"
Nein U829 ist ein TV-Tondecoder, der gehörte hier nicht rein. Der U666B teilt nur durch 256, nicht umschaltbar 64/128/256 wie der U891, die Aussage von Reichelt stimmt daher nicht ganz. Alle drei haben ECL-Ausgang, da gehört also noch mindestens ein 74xx14 Schmitt-Trigger dahinter, um auf TTL Pegel zu kommen. Mit Teiler durch 256 werden aus den max 118 MHz etwa 500 kHz das ist kein Problem für den Timereingang eines AVR. Den DAC könnte man durch gut gefilterte PWM ersetzen. Immerhin ist für Stereoempfang eine saubere Niederfrequenz bis 57 kHz nötig. Der PWM-Takt sollte darüber liegen.
Danke für eure Antworten, auf den Link weiter oben von alfsch bin auch mal schon vorher gestoßen, den SAA1057 gibt es aber leider nicht bei den gängigen Händlern zu kaufen (Kessler, Reichelt) ist der LM7001 den Pinkompatibel? Von der Homepage hab ich ja auch das Datenblatt, aber ich werde daraus nicht über die Außenbeschaltung schlau?
steht doch fast alles im 7001 datenblatt.. bis auf den var.spg.ausgang...etwa wie bild...
Falls sich noch jemand für einen DDS Regelkreis interessiert, sollte er mal hier gucken http://www.g4gxo.cwc.net/new_page_17.htm ich finde die Seite sehr gut. Ist mir beim durchstöbern des I-nets aufgefallen. Das mit dem AFC ist garnichtmal sonne schlechte Idee, die werde ich mal ausprobieren, ich hab noch nen U813 rumliegen den werde ich nehmen. Das Problem wird wohl nur die Software sein. Es wäre nett, wenn ihr noch Tipps habt, wie ich das weiter oben gepostete Programm umschreiben kann? Die Lösung wird wohl den geringsten Platzbedarf haben. Wie muss ich den den Schmitt-Trigger dimensionieren? Schaltplan wäre optimal.
Hallo alle nochmal, ich hab noch ne etwas dumme Frage, wie erzeuge ich aus der Frequenz, die der DDS oder eben der PLL-Synthesizer ausgibt meine Abstimmspannung? Bei Pll erfolgt das ja über die Ladungspumpe aber wie bei DDS?
dds is zum erzeugen von signalen...sinus usw... hier brauchste eben sowas wie den 7001 basta
Man kann den Referenzquarz einer PLL durch den DDS ersetzen, damit hat man eine sehr feine Abstufung bei gleichzeitig hoher Vergleichsfrequenz. Aber wie gesagt, ich halte eine PLL für diesen Tuner für überflüssig, eine langsame Nachregelung ist gut genug, dafür reichen ein Mikrocontroller mit Vorteiler und am PWM-Ausgang noch ein Tiefpassfilter.
Hi ich bins wieder, Danke für eure Antworten, ich denke die geschickteste Lösung wird wohl die Abstimmung per PWM mit AFC sein. Dann kann ich ja auch den DAC und den OPV runterbauen und krieg dadurch mehr Platz auf der Platine. Habt ihr zufällig noch Links wie ich das am besten in Bascom realisiere und wie ich die nötigen Parameter für die Abstimmspannung 1,5-7,5V berechnen kann? Ich würde das ganze gerne in Bascom schreiben, da wir in der Schule mit Visual Basic programmieren und ich so schonmal ein bisschen Erfahrung habe. Als Ausgabeschaltung würde ich die von Läubi nehmen, dankeschön.
So hier die Schaltung komisch warum das vorher nicht ging. Als Transen würde ich den BC550 und BC560 nehmen. Aber mit 10V Betriebspannung vom 7810. Der MC ist nen Mega16 ich würde gerne den internet 1 Mhz Quarz für den Takt nehmen. Rest siehe weiter oben.
Wie muss ich denn den Lowpassfilter am Timer Ausgang 1 dimensionieren? Der muss ja noch vor Läubis Schaltung oder?
Hier mein Entwurf für die Abstimmung, getestet mit einer Led hat es funktioniert. Da hatte ich an Pd4 nen Taster dran. Wenn ich die Taster rauf an Pd2, runter an Pd3 drücke dann wird die Abstimmspannung solange erhöht bzw gesenkt, bis er an PD4 ein High Signal bekommt solange wie er sucht zeigt eine zweite Led den Suchvorgang an. An PD4 will ich dann das Stopsignal vom Tunermodul anschließen. Würde das so funktionieren? Oder kann ich mit dem Stopsignal nichts anfangen. Die AFC muss ich später noch hinzufügen. Noch eine weitere Frage, kann ich die Schaltung von Läubi unverändert für meine Schaltung mit 10V verwenden, oder muss ich sie noch anpassen? Außerdem würde ich gerne den BC550 und BC560 als Transistoren nehmen, kann ich das einfach so machen? Danke für eure Antworten.
Joar das ist wurscht. Ich würde aber eher die Feldstärke mittels ADC einlesen das Stopsignal ist nix fürs finetuning
Hallo, @Läubi: der Feldstärkewert ist für FM normalerweise zu ungenau, der Nulldurchgang des Demodulators wäre das Kriterium, das Signal steht bei diesem Tuner aber nach außen nicht zur Verfügung. Das Stopsignal wird aber laut Datenbalt aus Feldstärke UND Nulldurchgang intern erzeugt, damit wäre es merklich genauer. Das eigetnliche Problem bleibt aber, daß ein Weglaufen nicht erkannt werden kann, weil weder aus dem Stopsignal noch aus der Feldstärke die RICHTUNG des weglaufens erkannt werden kann... Gruß aus Berlin Michael
ALso ich hab das Modul hier aufgebaut und der ADC wert leigt für nen getunen sender bei etwa 222 das Stop signal kann man sehr wohl verwenden wurde doch hier im Forum sogar schonmal mit nem DAC gemacht!
ich habe auch zuerst mit dem Stopsignal gearbeitet, doch leider habe ich es nicht geschaft die Eingangsempfindlichkeit einzustellen, deswegen bin ich auf die Feldstärke umgeschwänkt. Das mit dem Nachtunig mit der Feldstärke habe ich auch schon ausprobiert, das war aber ein Flop, da die Feldstärke nach einstellen des Senders auch dann schwankt, wenn die Fequenz sich nicht ändert. Das einzige Problem mit der Feldstärke bei mir war, dass ich ein haufen Sender habe auf denen gar nichts kommt (also auch kein Rauschen) bei denen hält er bei mir auch an.
Hallo mir sind gerade noch die Tuner aufgefallen, die im Markt angeboten werden. Die haben ja alles schon drinnen, oder braucht man noch irgendwas? Hat den schonmal jemand aufgebaut?
Dann wär es wohl am besten, wenn man das Stopsignal verwendet und zusätzlich noch den Frequenzteiler für die AFC nimmt oder? Das Problem ist nur, dass ich nicht weiß, wie man das mit dem Frequenzteiler und der AFC am besten in Software macht, hat jemand vielleicht ne gute Idee? Auch Pseudocode ist erwünscht. @Läubi muss man das Stopsignal denn vorher noch in den ADC einspeisen oder nicht, ich dachte das kann nur High oder Low werden und nimmt keine unterschiedlichen Spannungswerte an? Dein Post weiter oben hat mich da etwas verwirrt. @RDSAnfänger, dass mit den Sendern auf denen nichts kommt kann ich auch bestätigen, sind auch bei mir einige mit dabei. Per zweiter Pwm dürfte es ja auch möglich sein, die Lo/Dx Spannung einzustellen und somit auch die Eingansempfindlichkeit zu regeln.
Das STOP Signal hat nur High oder Low... aber du hast noch nen Feldstärkenausgang
> Hat den schonmal jemand aufgebaut?
Ja, ich! I2C, Antenne und Aktivboxen wegen der Lautstärkeregelung,
fertig.
Hi ich bins nochmal, ich hab noch ne weitere Frage, wann hat das Stopsignal denn nen Sender gefunden? Wenn es H oder L ist? Ich bin gerade etwas verwirrt. Active Low heißt doch das es die meiste Zeit low ist oder??
Hallo, aua... ;)) Naja, wenn er immer auf dem Sender steht, ist er die meiste Zeit Low... Es geht auf Low, wenn die Abstimmung korrekt ist. Gruß aus Berlin Michael
Mist ich hab gerade die DAC Abstimmung gegen die Pwm ausgetauscht, leider tut sich am Radio nichts, ich hab auch die Tuningspannung gemessen, sie ändert sich aber nur manchmal und selbst wenn sie dann im Abstimmbereich ist tut sich nichts. Brauche ich noch zufällig zu Läubis Abstimmsschaltung nen extra Tiefpass am Timerausgang?
Wenn es mit Bascom nicht tut, kann mir dann vielleicht jemand ein Programm ähnlich wie oben in Assembler schicken oder liegt es an etwas anderem?
Hallo wenn du zwischen Radio und PWM Ausgang keinen Kondensator hast kann es gar nicht gehen. Ist denn wenn du das teil anmachst ein Pfeifen oder so zu hören? Dann brauchst du noch einen Tiefpass. (Oder die Frquenz ist so hoch, dass du sie gar nicht hörst. dann braucht man den glaube ich nicht. (Oder doch?). An Bascom liegt es bestimmt nicht. Poste doch einfach nochmal das aktuelle Programm.
Hi danke für deine Antwort zuerstmal das von mir verwendete Programm. Wie muss der Kondensator denn angeschlossen werden, parallel zwischen Läubis Schaltung, Pwm und des Abstimmpins oder in reihe? Jo ich hör pfeifen Weißt du denn zufällig wie ich den Tiefpassfilter dimensionieren muss bzw kennst du ne Formel, der muss doch dann an Pwm von Läubis Schaltung gehängt werden oder?
Hallo, nimm Dir doch mal 5 Minuten und versuche Dir vorzustellen, was eine PWM macht. Dann vursuch Dir vorzustellen, weshalb eine angeschlossen LED die Helligkeit ändert. Weil sich deren Spannung ändert? NEIN. Weil sich das Verhältnis von LED an und LED aus ändert. Die Mittelwerte der Helligkeit bilder Dein träges Auge... Jetzt stell Dir vor, wie ein Tuner mit Abstimmung duch Kapazitätsdioden funktioniert. Richtig, die Kapazität der Dioden ändert sich mit der anliegenden Spannung und damit ändert sich die Frequenz des Schwingkreises und damit stimmt er den Sender ab. Was passiert wohl mit dem Tuner, wenn Du da ganz schnell 0V und 5V im Wechsel anlegst, die Deine PWM liefert? Auch richtig, der Tuner wird schnell zwischen Frequenz 1 und Frequenz 2 hin- und her abgestimmt. Du brauchst aber eine Spannung, die sich mit der PWM verändert läßt. Genau das erledingt ein passend dimensionierter Tiefpaß, indem er den Mittelwert bildet, der dem Tastverhältnis der PWM entspricht. Genau, wie Dein Auge mit der LED... Alles sehr stark vereinfacht... PS: ich habe mir inzwischen noch 3 ISA-Radio-Karten ersteigert, pro Stück rund 5 Euro inclusive Versand. Den Radio-Boostar kenne ich schon, da ist als PLL der LM7000 drauf. Die ESS hat einen schönen kleinen GEMTEK-Tuner drauf gehabt, PLL ist eine BU2614. Die dritte ist eine Audio-Surfer. Das Modul macht einen sehr guten Eindruck, diskreter Tuner mit vermutlich 2 abgestimmten Vorkreisen, Stereo-Dekoder mit MPX-Filter usw. Als Zugabe ist ein RDS-Dekoder drauf, ein NF-Prozessor mit I2C (Höhen/Tiefen/Lautstärke/4 Stereo-Eingänge umschaltbar) und ein 2x1W BF-Verstärker. Wenn diese Karte nicht so riesengroß wäre, würde ich da vermutlich nur die PLL-Steuerleitungen , das RDS-Signal und den I2C an einen AVR hängen und die Software dazu schreiben... Der Vorteil dabei ist, der Kram spielt prinzipiell erstmal komplett. Datenblätter der ICs sind im Netz zu finden, die benötigten Steuerleitungen lassen sich damit gur finden, auftrennen und an einen AVR hängen. Normalerweise läuft der Kram mit den 5V vom PC-Bus, also noch Spannung an den ISA-Stekverbinder gelötet. Naja, mein Weg zum Experimentieren mit "Radios". ;) Gruß aus Berlin Michael
Danke für deine Antwort Michael, wie kann ich den Tiefpass den jetzt passend berechnen? Da das Radio halt schon so gut wie fertig ist und schon in nem Gehäuse sitzt würde ich den gerne fertig bauen, wär ja schade drum wenn es deshalb in der Bastelkiste verschwinden würde. Ich bin eben eher an der Schaltung an sich als an der Software interessiert (bin vom Bastelvirus befallen :D).
Dein Tiefpass muss ein Kompromiss zwischen zwei Gegensätzen werden. Einerseits soll sich die Gleichspannung am Tiefpass-Ausgang so langsam ändern, dass die PWM-Frequenz keinen Einfluss mehr hat. Andererseits soll sich die Gleichspannung aber schnell genug ändern, dass der Tuner spürbar auf Tastgradänderungen reagiert (und nicht erst einige Sekunden später). Die Zeitkonstante Tau berechnet sich aus R * C. Nun kommt es noch darauf an, wie hochohmig Dein Tiefpass sein darf, also wieviel Strom in den Abstimmeingang hinein fließt. Weiter oben stellst Du die Frage, ob Du "den Kondensator" (also den einen Teil des Tiefpasses) in Reihe oder parallel schalten sollst. Das tut weh, das sollte man eigentlich wissen, wenn man Radios bastelt. Beim Tiefpass liegt nunmal der Widerstand in Reihe und der Kondensator gegen GND. Noch eine kurze Bemerkung zu Deinen hier veröffentlichten Programmen. Wenn ich so an Deinen Fernbedienungsempfänger herangegangen wäre, würde der nächstes Jahr noch nicht funktionieren. Du musst zuerst ganz konkret wissen, WAS das Programm machen soll, also auf welche Inputs es mit welchen Outputs reagieren soll. Das muss klar definiert sein, ansonsten wird Dir niemand das Programm schreiben können. Ich habe den Eindruck, dass Du selbst nicht weißt, was das Programm tun soll. Denke an meinen Mehraufwand bei Deinem Fernbedienungsempfänger aufgrund der Missverständnisse dank der unklaren Aufgabenstellung. ...
Hi danke Hannes für deinen Post, kannst du vielleicht die Tiefpassberechnung noch etwas genauer erläutern, ich weiß leider immer noch nicht genau wie ich den berechne? Als Kondensator hab ich noch nen 100nf rumliegen, denn würde ich gerne nehmen, welchen Wert muss den dann der Widerstand haben? Ich denke das Programm oben wird schon funktionieren, nur hab ich halt den Tiefpass vergessen. Grüße Fabian
Hallo, warum sollte das Radio in der Bastelkiste verschwinden müssen? Ich kenne Deine Konstruktion ja nicht und weiß somit nichts über Anordnung, Aufteilung, Platzverhältnisse. Als Beispiel: die Platine des DRU-100 (mein Favorit, nur leider kaum noch unter 15Euro zu bekommen...) ist 45mm x 55mm groß und hat eine Bauhöhe von 15mm wenn man die Cinch-Antennebuchse runterlötet und ein Kabel anlötet. Oder man läßt die Buchse gleich als Antennenbuchse durch die Rückwand schauen. Das dürfte also nicht merklich mehr Platz beanspruchen als Dein Pollin-Tuner. Anschlüsse brauchst(hast) Du dort GND, +5V, NF-Out L, NF-Out R auf einem Ministecjverbinder, den man aus dem DRU-100 recyclen kann. Für den AVR sind dann noch 6 Portleitungen nötig für Clock, DataIn, DataOut, MPX-Out, Feldstärke und Stereo-Anzeige. Der tuner, den ich hier gerade beim Wickel habe, ist eine Blechbüchse mit 50mm x 35mm und 10mm höhe mit 2x 13Pin Stiften an den beiden Schmalseiten. Bei den Anschlüssen bin ich noch beim Sortieren. ;) GND, +5V, NF-L, NF-R stehen fest, genauso die PLL-Leitungen Clock, CE, DataIn. Feldstärke, Stereoanzeige sind auch irgendwo, muß ich noch klären. Erstmal muß er einen Ton von sich geben. ;) Es würde mich wundern, wenn Dein Radio gleich mit dem ertsen "Inhalt" so spielen würde, wie Du es willst. Gerade wenn Du mehr an der Schaltung als an der Software interesiert bist, solltest Du über die Funktionsweise eines Empfängers und über etliche Grundlagen, die man dabei zwangsläufig braucht, mehr wissen. "Was man nicht in Assembler programmieren kann, daß muß man löten" ;-)) Die Entscheidung, welche Teile man in Software erledigen kann und will und welche man in Hardware macht, hat man immer wieder. Software kostet Zeit und Wissen um die Zusammenhänge, Hardware auch. Man kann die gleiche Geschichte oft sowohl als auch realisieren, hängt von Möglichkeiten, Wissen, Kosten, Beschaffbarkeit, oft auch von Lust und Laune ab. Den Rest hat Hannes ja schon geschrieben. Gruß aus Berlin Michael
danke an alle für eure Antworten, die Abstimmung tut jetzt. jetzt muss ich nochmal schauen welcher Pwm Frequenzwert am besten ist. Kann mir vielleicht trotzdem bitte noch jemand genauer sagen wie man einen Tiefpass berechnen kann?
Hi nochmal so die Software läuft jetzt einigermaßen ich hab aber wohl leider noch nen Masseproblem. Wenn ich das Gerät einschalte hört sich das an wie ne laufende Bohrmaschine oder nen Staubsauger. Liegt das an der Masse oder was könnte noch dafür verantwortlich sein? Zur Abstimmung hab ich jetzt das Stop Signal genommen, das geht ganz gut.
Danke für deine Antwort Läubi Nen Lc Filter 100µH Spule und 100nF Kondensator hab ich bereits bei beiden Spannungsversorgungszweigen drin 5V 7805 und 10V 7810. Davor wird die Spannung noch mit 1000µ pro Spannungsregler gefiltert. Die Pwm Spannung hab ich mit zwei Tiefpässen 100k und 100nF gefiltert. Woran könnte es noch liegen?
Schlechte Massenführung? Benuzt du nen Stereodecoder? Kannst du das ganze ggf in einer Metallbox unterbringen.
Ok dann wirds wohl an der Masse liegen. Hab ich wohl etwas geschlampt, mit dem DAC hatte ich keine Masseprobleme, hilft wohl nur neu vebinden. Stereodecoder ist ein MC1310 (A290) Ich habs in ner Alu box drinnen, ich weiß ist net optimal für die Abschirmung aber ich hab kein anderes Gehäuse da.
Nen Senderspeicher hab ich leider noch nicht eingebaut. So ich hab jetzt gerade die Masseführung geändert leider ist das Geräusch immer noch da? Was kann ich noch tun?
Das Stereosignal liegt ja auf einer höheren Frequenz, villeicht wird die ja durch die PWM gestört
Hallo, NF-Band bis 15kHz bei Rundfunk. 19kHz Pilotton für Stereo 38kHz Stereo-Hilfsträger und die Seitenbänder +-15Khz, also 23...53kHz 57kHz RDS darüber ist dann Ruhe. ;) Wenn Du die PWM drüber legen kannst, hast Du es einfacher. Betriebsspannung von Tuner/Stereodekoder usw. sauber von dem Digital-Kram trennen, gut entkoppeln, Masseführung beachten usw. usw. Gruß aus Berlin Michael
Hallo PLL Freunde, habe diesen thread gefunden, weil ein Funkfreund da mal eine Frage zum LM7001 hatte. Vor zwei Jahren habe ich angefangen, ein PC Programm zur Steuerung der zwei hier genannten PLL Schaltkreise zu schreiben. Das Prgrammgerüst ist für beide IC's gleich, beides sind programmierbare, über quasi I2C Steuersignale ansteuerbar. Deshalb habe ich sowohl per Parallelport als auch über den RS232 Port die Ansteuerung realisiert, momentan im Programm nur noch der RS232, das Ganze momentan unter XP. Zum Testen ist die Demoversion gut geeignet, d.h. um die PLL für den angeschlossenen Tuner überhaupt erst einmal zum 'Leben zu erwecken'. Wer also Lust hat, kann mich ruhig anschreiben, es gibt dann die entspr. Software personalisiert für Selbstkosten 5,00€ plus Versand 1,20. Momentan habe ich auch eine Entwicklung über USB am Laufen, wo man sowohl über USB vom PC, als auch über einen Mikrocontroller, egal welchen Typs, an einen SAA1057 zur Steuerung ankoppeln kann. Kompatibel ist die MC - Seite zum OOPIC, hierzulande wenig bekannt, aber äußerst effektiv zu programmieren, nämlich objektorientiert. Soweit meine 'Eigenwerbung'. Zum Problem der PLL - und DDS Problematik möchte ich nur anmerken, dass die PLL grundsätzlich eine Frequenzregelung beinhaltet und die DDS grundsätzlich eine Steuerung darstellt, d.h. die DDS beinhaltet keinerlei Rückkopplung (feedback auf neudeutsch) zum Objekt, in diesem Falle des Hochfrequenz-Oszillators des entspr. Empfängers. Die Pll beinhaltet einen Frequenz-Zähler für den ISTWERT der Frequenz und gleichzeitig ein Register für den Sollwert. Die Intelligenz des PLL IC besteht also darin, den übergebenen Sollwert entsprechend zum zu steuerenden Oszillator zu übertragen (Gleichspannung sinnrichtig auf die Kapazitätsdiode des Oszillator-Schwingkresi geben) und anschließend die erfolgte Änderung der daraus resultierenden Frequenzänderung zu messen und mit dem Wert im Sollwert-Register zu vergleichen. Bei Gleichheit ist der Vorgang abgeschlossen. In diesem Fall spricht man von einem digitalen Regler und von keiner einfachen (rückkopplungs-freien) Steuerung wie beim DDS Verfahren. Viel Spass weiterhin mit dem Hobby - der Funkbazillus möge sich entfalten :-) Peter Geisler / DL6CLM http://www.peter-geisler.de
Danke für deine Antwort Michael ich werde mir mal nen 4MHZ Quarz besorgen um die Pwm mit ner höheren Frequenz laufen zu lassen, vielleicht hilft das ja schon. Momentan nehm ich den internen 1MHZ Quarz des Atmega, vielleicht hilft das ja schon, bei der DAC Abstimmung hatte ich keine großen Masseprobleme und ich hab ja nur die Platine mit dem Tuner geändert und an den Platinen mit Stereo, RDS Decoder hab ich ja nichts geändert.
Sorry für die Tippfehler. Bei meinem oben geposteten Programm hab ich die Frequenz noch nicht angepasst, ich hab das Programm nämlich vorher mit nem Experimentierboard von Pollin getestet, da war nen 8 MHZ Quarz drauf.
> Momentan nehm ich den internen 1MHZ Quarz > des Atmega, Es gibt keinen ATmega mit internem Quarz. ...
Würde es für die Entstötung vielleicht noch etwas bringen wenn ich die zwei Tiefpassfilter näher am Pwmout des Atmegas platziere? Momentan hab ich sie hinter Läubis Schaltung eingebaut. Außerdem werde ich noch nen paar kleine Pufferelkos auf der Tunermodulplatine platzieren.
> paar kleine Pufferelkos
'n paar kleine Kerkos könnten da mehr bringen. Aber ein verhuntztes
Layout kann man damit auch nicht reparieren.
Hast Du an sternförmige Masseverbindung gedacht?
Und auch an sternförmige Verteilung der Betriebsspannung (Trennng
Digital und Analog, Siebkette bei Analog)?
...
Alle Gnd Leitungen einer Platine (sind insgesamt 3 Platinen Tunermodul, Stereo Decoder und RDS Decoder alle auf Lochraster) hab ich in einem Punkt auf der Platine verbunden und dann an die Netzteilplatine angeschlossen. Das Netzteil hab ich folgendermaßen aufgebaut: 12V Trafo, dann Gleichrichter, dann zwei 1000µF Elkos und dann 7810 und 7805 , jede Ausgangsspannung der Spannungsregler wird mit nem LC glied 100µH und 100n noch gefiltert. Der 7805 versorgt eigentlich nur den Digitalteil, der 7810 nur den Analogteil
Hi nochmal, ich habe das Radio vorhin noch getestet, und hab mal nur einen Kopfhörer direkt an den Mpx Out angeschlossen, die Störgeräusche sind leider trotzdem noch da, immerhin grenzt sich dadurch die Fehlersuche ein. Es kann wohl nur an der Tunerplatine liegen. Was mir auch noch eingefallen ist, wäre eine falsche Dimensionierung des Tiefpasses, kann mir vielleicht noch jemand ne Formel geben um ihn richtig zu berechnen als ich die Gleichung für fc (Wikipedia) mit dem 1oonF Kondensator durchgerechnet habe, kam ein unmöglich kleiner Widerstand raus deshalb hab ich einfach 100K ohm und 100nf genommen. Die Pwm Frequenz beträgt 1 MHZ, 1MHZ interner Ozillator des Megas und Prescaler eins. Wenn die Pwm Frequenz nicht stimmt sagt es bitte. Bestimmt hab ich wieder was übersehen. Als ich mal mit dem Prescaler experimentiert habe und ihn auf 8 stellte, hat das Tuning garnicht mehr getan.
Um zu testen ob die Störgeräusche auch im Mono Betrieb auftreten bzw ob am Stereo Decoder ein Fehler vorliegt ? Mpx ist der Ausgang des Fm Demodulator...
> Die Pwm Frequenz beträgt 1 > MHZ, 1MHZ interner Ozillator des Megas und Prescaler eins. Irrtum... Dein Timer rattert mit 1 MHz, nicht die PWM... Wieviele Timerschritte braucht Deine PWM für eine "Runde"? Bei 8-Bit-PWM wären es 256 Timerschritte, da wäre die PWM-Frequenz dann etwa 4 kHz. Wenn Du mit höherer Bitbreite (Auflösung) arbeitest, dann wird es entsprechend langsamer... ...
Danke für deine Klarstellung Er braucht 1024 Timerschritte, läuft im 10bit Modus um genügend Genauigkeit beim Abstimmen zu haben. Wie kann ich den im 10bit Modus über 57KHz Frequenz kommen hab mal alles so durchgerechnet und das höchste waren gerade mal 20khz bei 16MHZ Quarz ?
also 1khz pwm...versuch mal statt 100k / 100nf , 100k / 100nf+10uf , dann sollte es besser gehen
100k, 100nf gibt etwa 40db reduktion des 1khz pwm signals, das is zuwenig. mit 10u gibts etwa 80db, das könnte bei geringen ansprüchen grade mal reichen...
> Wie kann ich den im 10bit Modus über 57KHz Frequenz kommen hab mal alles > so durchgerechnet und das höchste waren gerade mal 20khz bei 16MHZ Quarz > ? Gar nicht... Bei 16 MHz Quarz sind es auch keine 20 kHz, sondern nur 15,625 kHz... ...
Danke ich hab jetzt zwei 10µF Elkos in die zwei Tiefpässe eingebaut, leider hab ich jetzt das Problem das die Frequenz nicht stabil bleibt, die Störgeräusche scheinen aber jetzt weg zu sein. Ich werde mal ein Elko rausbauen, vielleicht bleibt die Spannung dann konstant. @Hannes Hast ja recht wer den Taschenrechner richtig lesen kann ist klar im Vorteil. Ich denke 255 Schritte werden aber nicht genau genung sein. Edit die Störgeräusche sind wirklich weg habs gerade in Stereo getestet, danke Ernst. Bei einem Sender hör ich immer noch ein bisschen etwas, ich werde mal noch nen grösseren Elko nehmen dann gehts da vielleicht auch.
MAn müsste den AVR nach dem erfolgreichem Sendersuchlauf abschalten können, um die Störungen abzustellen. Wäre das eine Idee?
@ Axel War das ne Fangfrage, wenn man den Avr abschaltet dann laufen weder Timer noch Compare Unit also kann er auch den Port nicht ein ausschalten und somit auch nicht tunen oder seh ich das falsch? @ Ernst meinst du 47µ würde auch noch gehen oder wär das schon wieder zuviel?
@ Axel Bleibt natuerlich die frage zu klaeren, wie du das PWM Signal erzeugen willst, wenn der uC aus ist. @Fabian hast du schon einen Sendesuchlauf?
>wie du das PWM Signal erzeugen willst, wenn der uC aus ist.
janun, wenn der Sender gefunden wurde, wurde doch schon hinreichend
ge"pwm"mt.
Der Siebkondensator (der 10uF am PWM Ausgang) hat sich auf die Spannung
aufgeladen, welche benötigt wurde, um den Sender korrekt abzustimmen.
Nun kann man doch aufhören, den Kondensator über den Vorwiderstand vom
PWM-Pin umzuladen.
Geht natürlich nicht mehr mitm 'Schnulli'Elko aus der Bastelkiste. Bei
diesem dürfte der Leckstrom zu hoch sein...
Ja hab ich der funktioniert auch einigermaßen, ich hab nur irgendwie das Problem, das nicht der volle Tuningbereicht ausgenutzt werden kann, AFN, 107.7 , DLF krieg ich irgendwie net rein, weiß auch nicht warum. Ab und zu muss man aber nochmal auf ne Taste draufdrücken, damit er nen Sender findet. Ich benutze das Stopsignal das geht ganz gut.
Hallo, Testroutinen für ATMega16 für TEA5757, LM7000, BU2614 und seit eben auch LC7218 in Assembler kann ich auch noch anbieten. Es sind !Testroutinen!, man kann damit die jeweiligen Tuner in Gang bekommen und sich dann Gedanken machen, was weiter... LM7000: RadioBoostar ISA-Karte. Bei ebay normalerweise für 1 Euro zu bekommen, gibt etliche baugleiche Typen. Karte mit elektronischem Lautstärkeregler (nur 16 Stufen) und 2x1W Verstärker. TEA5757: DRU-100 USB, leider etwas teuer gehandelt Nur Empfängermodul. BU2614: Tunermodul der ESS-ISA-Soundkarte, wohl recht selten. Nur Empfängermodul, sehr klein, hat wohl keine Stop-/Feldstärkeausgänge. LC7218: Miro PCM20 Radio oder Kathrein Radio-Surfer. Große ISA-Karte mit Tunermodul, RDS-Decoder, Audio-Prozessor und 2x 1W Verstärker. Dieser Tuner läuft seit vorhin und hat eine ausgezeichnete Qualität! So nebenbei hat er offenbar noch MW drauf, das wird nirgends bei den Karten genutzt. Alle Module haben selbstverständlich Stereodecoder mit drauf. Für besagte Karten/Module stelle ich auf Anfrage gern Anschlüsse/nötige Änderungen zur Verfügung. Auf dem Bild mein "Radiobastelbrett" ;) Das Tunermodul ist das Alps von der Miro/Kathrein-Karte, die kleine Leiterplatte ist ein Kopfhörer-Verstärker. Der AVR ist ein Mega16 mit 8MHz getaktet. Auf dem Display wird zum Test bisher nur der PLL-Teilerwert angezeigt. Keinerlei Störungen, auch mit den anderen Modulen liefen die Drahtverhaue absolut sauber. Stromversorgung ist ein 5V 1A stabilisiertes Netzteil eines IOMEGA-ZIP-LW und ein 12V 0,5A unbekannter Herkunft mit einem 7809 dahinter, weil dieser Tuner 5V und 9-12V braucht. Gruß aus Berlin Michael
@Michael Nen bissle Offtopic hat Kathrein jemals den Radiokarten für PCs produziert?
Hallo, @Fabian Wolf: produziert vermutlich nicht, ich denke, es ist eine umgelabelte miro-Karte. Das "Handbuch" weist Kathrein als Hersteller aus, aber das sagt ja nichts... Gruß aus Berlin Michael
Hi ich bins wieder, ich hab gerade das blöde Problem, dass die Pwm nur bis 4,60V, geht, somit kann ich viele Sender garnicht empfangen was muss ich ändern damit sie auch bis 7,5V geht ? Sonst sind die Sender aber gut abgestimmt und Störgeräusche hör ich auch nicht mehr. Freundliche Grüße Fabian
Hallo, nicht invertierenden OPV mit Verstärkung von 1,xx fach dahinter. Wenn Du mit der Abstimmspannung für 87,5MHz sehr weit runter mußt, ist ein Rail-to-Rail In/Out nötig, wenn Du ohne negative Hilfsspannung auskommen willst. Was macht die Stabilität und die Wiederkehrgenaugkeit der Geschichte denn so? Oder hast Du da jetzt schon über Zähler und Auswertung nachgedacht? Gruß aus Berlin Michael
Hi danke für deine Antwort, am Anfang driftet die Frequenz, dann bleibt sie aber ganz stabil. Nen Senderspeicher hab ich noch nicht eingebaut, deshalb kann ich über die Wiederkehrgenauigkeit noch keine Aussagen machen. Beim Zähler hab ich das Problem wie ich das am besten in Software umsetzte, mit dem U813 dahinter nen Schmitt Trigger und dann an den Counter aber wie realisiere ich dann am besten die Nachstimmung? Nen Opv hab ich ja noch von der DAC Abstimmung, meinst du für R2 220 ohm und R1 390 ohm wären passende Werte ich komme somit auf ne Verstärkung von 1,5? Siehe Wikipedia OPV Elektrometerverstärker.
Hallo ich hab mal in einem anderen Threat gelesen, dass auch die Frequenz des internen 10,7Mhz Oszi abdriftet, stimmt das? Dann wuerde das mit dem nachtunen ja gar nichts bringen. @Fabian genau das Problem habe ich auch. Ich vermute dass im Radio erst irgendetwas auf Betriebstemperatur kommen muss, bevor sich die Frequenz Stabilisiert. Das ist ja auch das Problem beim Abspeichern, nach dem Abspeichern muss sich das Radio vermutlich erst wieder aufheizen bevor es geht. Villeicht muss man einfach ein Paar Minuten warten, bis der Sender wieder da ist. Oder ne Heizung einbauen? (sowas hat mein alter Verstaerker)
Der opv ist nen NE5532Ap von Ti, aber das dürfte ja eigentlich egal sein, da die meisten ja sowieso ziemlich ähnlich aufgebaut sind. Aber wahrscheinlich werde ich sowieso nen Rail to Rail Opv brauchen, da 1,5V untere Tuninggrenze extrem wenig sind. Hast du zufällig ne Chipempfehlung?
Hallo, es gibt keinen 10,7MHz Oszi, der driften könnte. Die Oszillatorfrequenz liegt um 10,7MHz über der Empfangsfrequenz. Beides wird gemischt, das ergibt z.B. bei 100MHz fe und 110,7MH fosc einmal fosc-fe = 10,7MHz und einmal fosc+fe = 210,7MHz. Dahinter ist der ZF-Verstärker, der ist auf die 10,7MHz abgestimmt und verstärkt diese und hinten werde sie demoduliert. Prinzipiell wandert natürlich auch Mittenfrequenz der dazu üblicherweise benutzten Keramik-Filter mit der Temperatur, das kann man aber vernachlässigen. Diese Änderung ist auch nicht im Empfänger zu erfassen und damit auch nicht zu korrigieren. Alle üblichen Empfänger verlassen sich darauf, daß diese Werte konstant sind und sorgen nur dafür, daß der Oszillator stabil ist. Theoretisch müßten ältere Empfänger mit AFC da sogar besser wegkommen, die regeln mit dem Null-Durchgang der Demodulatorkurve. Damit würde ein wegdriften des Demodulators mit kompensiert werden. Ist aber mehr theoretisch, da der Restfehler der AFC sowieso grüßer sein dürfte als die thermische Drift. Gruß aus Berlin Michael
@RDSAnfänger Kannst du mir vielleicht noch beim Tuningprogramm helfen und zwar hab ich noch folgendes kleineres Problem, die Led zur Tuningsanzeige leuchtet nur solange wie ich eine der Tasten rauf runter gedrückt halte, sie soll aber solange leuchten bis er den nächsten Sender gefunden hat. Das gleiche Problem habe ich mit dem Audiomuting, (MuteOff). Zweites Problem wie sage ich dem MC, dass er bei jedem Tastendruck zum Senderspeichern einen anderen Speicherplatz im EEPROM belegt und den alten nicht überschreibt. Wenn die Sendespeichertaste länger gedrückt gehalten wird, dann soll er den gerade eingestellten Sender (also die Variable A) im EEPROM ablegen, wenn ich nun die Speichertaste kurz drücke dann soll er in den EEPROM gehen und ich kann dann die eingespeicherten Sender mit den Tasten fürs Tuning auswählen. Drücke ich nun die Senderspeichertaste erneut kurz, dann soll er denn Senderpeicher verlassen und ich kann wieder ganz normal mit den Tasten rauf, runter tunen. Die Tuningled soll dann anzeigen wenn man sich im Senderspeicher befindet. Danke für alle Antworten
ich würde mal versuchen das Automuting und die Led zwischen das If und Do zu setzen (und das wieder Ausschalten zwischen das until und end if also da hin If Pind.4 = 1 Then ... Do
@RDSAnfänger Hi, Schade dein obengeposteter Tipp hat leider nicht funktioniert, kannst du mir vielleicht bitte auch noch bei der 2ten Frage (Senderspeicher) helfen?
was hat denn nicht funktioniert? so ungefär hab ich mir das vorgestellt:
1 | If Pind.3 = 1 Then 'Wenn Taster gedrückt... |
2 | Portd.1 = 0 |
3 | Portd.6 = 1 |
4 | Do
|
5 | |
6 | |
7 | If A < 1023 Then |
8 | A = A + 1 'Abstimmspannung um 1 Stufe erhöhen |
9 | |
10 | Compare1a = A |
11 | Waitms 20 |
12 | Loop Until Pind.2 = 0 Or Pind.4 = 1 |
13 | |
14 | End If |
15 | Portd.6 = 0 'Led zeigt das laufende Tuning an |
16 | Portd.1 = 1 'Audio muting einschalten |
17 | |
18 | End If |
So hab ichs auch gemacht, es hat sich aber zum vorherigen Zustand nichts verändet. Led leuchtet immer noch nur solange ich den Taster gedrückt halte. Aber das ist jetzt eher net so schlimm ein funktionierender Senderspeicher wäre mir noch lieber.
so das andere es ist zwar nicht gut fertige sachen zu servieren, aber villeicht kannst du es ja daran erschließen.(villeicht geht es ja auch nicht und du musst dir das ganze noch genauer ansehen.
1 | Dim E(10) As Eram Integer |
2 | Dim Zaler As Byte 'muss beides oben hin |
3 | If Pind.0 = 1 Then |
4 | Waitms 35 |
5 | If Pind.0 = 1 Then |
6 | Zaler = 0 |
7 | Do
|
8 | Zaler = Zaler + 1 |
9 | If Zaler = 10 Then Goto Tuning |
10 | Loop Until E(zaler) = 0 |
11 | E(zaler) = A |
12 | Goto Tuning |
13 | Else
|
14 | Zaler = 0 |
15 | Do
|
16 | If Pind.0 = 1 Then Goto Tuning |
17 | If Pind.3 = 1 Then |
18 | Zaler = Zaler + 1 |
19 | If Zaler = 10 Then Zaler = 1 |
20 | Compare1a = E(zaler) |
21 | End If |
22 | If Pind.4 = 1 Then |
23 | Zaler = Zaler - 1 |
24 | If Zaler > 10 Then Zaler = 1 |
25 | Compare1a = E(zaler) |
26 | End If |
27 | Loop
|
28 | End If |
29 | |
30 | Portd.6 = 0 |
31 | |
32 | End If |
hallo das Programm oben hat nen kleinen fehler, den ich erst noch beheben muss!
jo danke erstmal für das Programm die Fehler sind mir auch gerade beim Kompilieren aufgefallen :D.
Danke jetzt gehts kompilieren, ich denke ich habe jetzt schon verstanden wie so ein Senderspeicher realisiert wird und hab mir fleißig Kommentare dazugeschrieben. Dann fehlt nur noch der Frequenzteiler und die AFC und der Empfänger ist fertig. Mal sehen wie sich die am besten realisieren lässt.
ich würde erstmal probieren obs geht. Die Wartezeiten hab ich noch eingefügt, damit nich der gleiche Sender zweimal hintereinander abgespeichert wird. Die kann man unter umständen noch ein bisschen verändern.
Hi ich habs gerade getestet. Leider funktioniert das mit dem Audiomuting und der Led immer noch net hab das gleiche Problem wie vorher, der Senderspeicher scheint auch nicht zu funkionieren, wenn ich in den Senderspeicher gehe leuchtet die Led leider nicht und der tunt normal weiter, geh ich wieder raus, dann kann geht garnichts mehr ich kann auch nicht mehr tunen und die Led fürs Tuning leuchtet garnicht mehr. Woran könnte das den liegen? Ich hab dein oben gepostetes Programm benutzt. Als Pull Down Widerstand für den neuen Anschluss hab ich nen 15k ohm genommen. Ich werde das jetzt mal mit nur einem Senderspeicherplatz testen vielleicht gehts dann, wenn nicht dann hab ich wohl was falsch angeschlossen.
Weißt du zufällig warum der Mc wenn er eingeschaltet wird, erstmal ständig tunt bis man ein paar mal eine der Tuningtasten gedrückt hat? Das gleiche macht er wenn ich in den Senderspeicher gehe...
Da hier im Thread ja ISA-Radiokarten erwähnt wurden: Ich habe eine übrig, Noname (wurde iirc einst unter dem Namen Aimslab verkauft) mit LM7000-PLL und TEA5712-Tuner. Bevor ich sie wegwerfe, biete ich sie geschenkt gegen Portoübernahme (1,65EUR als Warensendung innerhalb Deutschlands) an. Bei Interesse: czietz(at)gmx.net
Hallo, na? Wer noch ein Klo- Bad- Küchen- Weck- Werkstattradio bauen will... AVR, Display und ein paar Tasten ran und und fertig. Na gut, etwas Software noch. ;) Gruß aus Berlin Michael
Hallo scheint ja doch nicht ganz so einfach zu sein. Wie hast du Portd.0 beschaltet? Den schalterausgang an Minus und dann den Pullup in richtung +, oder anderstrum? und wie die LED, ist die an Minus oder an Plus angeschlossen?
so jetzt hab ichs nochmal überarbeitet! Aber das mit den LEDs verstehe ich nicht ganz, denn bei mir im Simulator hat das reibungslos Funktioniert. (Ich vermute mal Portd.6 ist die LED)
Hi Led Kathode an masse und Anode an Portd.6, ich hab bei Portd.0 nen Pull down eingebaut, also nen Widerstand gegen Masse und den Taster dann gegen +.
Tut leider immer noch nicht, habs gerade getestet. Vielleicht wärs geschickter wen wir ersmal nur einen Senderspeicherplatz einbauen um das zu testen.
Der Senderspeicher, die Led leuchtet zwar wenn ich den Taster gedrückt halte, aber drücke ich den dann nochmal kurz, dann geht sie aus und er tunt die ganze Zeit weiter, dann muss ich ihn erst wieder per Tastendrücke einfangen. Drück ich dann nochmal, also um den Speicher wieder zu verlassen, dann kann ich wieder per Tastendrücke tunen. Und die Sache mit der Led und dem Audiomuting, geht auch noch nicht, dass lustige ist, am Anfang wenn er ohne Tastendrücke meinerseits, die ganze Zeit die Sender wechselt dann funktioniert das Audiomuting und die Led leuchtet beim Senderwechsel. Drück ich dann auf eine Taste um ihn wieder einzufangen, dann geht beides wieder nicht.
hast du gesehen, dass du um einen seder abzuspeichern den taster länger als eine Sekunde drücken musst? mach mal folgendes hintereinander: - sender suchen -abspeichern (portd.0 länger als eine Sekunde drücken) -anderen sender einstellen -abspeichern -anderen sender einstellen -portd.0 kurz drücken - portd.3 kurz drücken (und loslassen) ->sender einestellt?
ok ein fehler ist drinnen: bei dem untersten loop until muss es pind.4 und nicht pind.3 heißen
Es tut nicht wenn ich den Sender gespeichert habe, dann wechselt er erstmal ständig die Sender durch ohne anzuhalten wie nach dem Einschalten, ohne das ich was gedrückt habe. Drück ich nun den Taster kurz dann passiert garnichts die Led leuchtet auch nicht und er wechselt wieder ständig die Sender durch. Vielleicht tut es wegen dem selbständigen Senderwechsel nicht?
dann hast du vermutlich zu kurz gedrückt (hast du das neuste programm verwendet?)
Weißt du zufällig wie man, dass mit dem selbständigen Tuning am Anfang beheben kann?
hast du das Programm mal simuliert? von selbständigen tunen steht im Programm nichts drinnen nichts drinnen. Sind alle deine Schalter gleich angeschlossen? (Alktiv=high)?
Alle sind gleich angeschlossen. Sind alle mit Pull Down an den Mc angeschlossen, wenn sie gedrückt werden dann liegen +4V am MC an, eigentlich müssten es 5V sein, aber ich glaube kaum das der 7805 bereits überlastet ist...
Hallo also ab Programm kann es eigentlich wirklich nichtmehr liegen. Nur ein winziger Bug ist mir noch aufgefallen. Nach dem Einschalten ist das Automuting zunächst aktiv. das ist jedoch nicht weiter schlimm, weil sobald man einen sender einstellt das Problem behoben wird. Das die LED jedoch ausgeht, sobald man den Taster losläst ist mir unerkärlich. Davon ist zumindes in der simulation nichts zu merken. Ob der 7805 überlastet ist merkt man ganz einfach an der Hitzeentwicklung. Die Spannung sinkt glaube ich fast nie. Villeicht ist irgendein Widerstand in der Leitung, oder die Eingangsspannung zu gering.
Hi, kann mir vielleicht jemand zufällig ein Ponyprog Screenshot von den Standart Fusebit Einstellungen eines Atmega16 schicken. Ich hab die bei mir nämlich geändert jetzt funktioniert das Programm nichtmehr. Ausgesperrt habe ich mich aber nicht.
Die Standard-Einstellungen der Fusebits stehen doch im Datenblatt jedes AVRs. Zwar nicht alle an einer Stelle, aber da muss man eben etwas suchen. ...
Hi es tut einigermaßen, aber die Tasten müssen noch entprellt werden. Wenn ich nämlich per Fernbedienung den Sender wechsle, dann leuchtet die Led bis er nen Sender gefunden hat, das Audio Muting scheint solange auch zu tun. Der Senderspeicher jedoch noch nicht. Wäre es den nicht geschickter, wenn man das Erkennen des Senderspeicherknopfdruck mit nem Timer machen würde (Wenn der Senderspeicherknopf gedrückt wird, dann zählt der Timer solange hoch bis eine Sekunde vergangen ist. Wird nach der Zeispanne immer noch gedrückt dann soll er den Sender speichern.) Wie mache ich das eigentlich, dass er nach dem erneuten Einschalten den zuletzt eingestellten Sender voreingestellt hat. Ich würde erstmal vorschlagen einen Senderspeicherplatz einzubauen, den kann man dann ja später auch noch auf mehrere Speicherplätze "aufrüsten". Dazu kommt der automatische Senderwechsel beim Einschalten des Radios. Dass ist extrem nervig, dann muss ich solange auf die Senderwechseltasten drücken bis er anhält.
ich würde erstmal alle Tasten entprellen, villeicht verschwindet da noch so manch anderes Phänomen. Das mit dem Sender wiederhohlen ist ganz einfach, von daher solltest du das auch alleine hinbekommen... das mit der Schleife als Wartezeit ist übrigens nur noch aufwendiger und bringt nur minnimal gesteigerten komfort.
Hallo, eigentlich wpllte ich mich hier nicht mehr melden, aber irgendwie interessierte mich Euer Fortschritt dann doch. ;) Auch wenn es mich nichts angeht, wie Fabian und Du da vorgeht, ich sag trotzdem mal was dazu: ich habe mal in den letzten Code reingeschaut, weil mich interessierte, wie die Probleme, die Fabian hat, eigentlich zustande kommne. Leider kann man als Außenstehender da kaum helfen. Config Pind.5 = Output 'Pwm out Config Portd.6 = Output Config Portd.1 = Output 'Led Config Pind.3 = Input Config Pind.4 = Input Config Pind.2 = Input 'Anschluss für das Stoppsignal vom Tunermodul Config Pind.0 = Input Es werden im Programm alle Portleitungen irgendwo benutzt, leider ist aber nicht bei allen kommentiert, was da wo dranhängt... Zum Tsaten-Entprellen sage ich nichts, das ist logischerweise nötig. Was mich aber verwundert: warum hast Du das Programm nicht wenigstens soweit strukturiert, das es halbwegs les- und wartbar ist? Subroutinen gibt es ja wohl auch in BasCom, Goto sollte man generell vermeiden, es verführt zu unlesbarem Spaghetti-Code, wenn man dem Programmlauf folgen möchte. Warum gibt es nicht eine Subroutine, die die Tasten abfragt und nur eindeutig zurückliefert, welche Tste gedrückt war und ob kurz oder lang? Wenn kurz oder lang benutzt werden soll, kann in dieser Variante ja sowieso erst nach dem loslassen reagiert werden. Ich kenne diesen Tuner selbst nicht, normalerweise ist das Stopp-Signal für die Abstimmung eindeutig. Abstimmung als Suchlauf könnte also auch sauber mit dem aktuellen Wert der PWM aufgerufen werden und kehrt zurück, wenn Stopp erkannt wurde. Wie sich das Stopp-Signal verhält, bekommt Fabian am schnellsten raus, wenn er in Einzelschritten abstimmt, das Verhalten von Stopp beobachtet und sich anhört, ob die Abstimmung ok ist, wenn Stopp aktiv wird. Es sollte eigentlich beim nächten Abstimmschritt wieder inaktiv werden. Wenn es über mehrere Schritte aktiv bleibt, dann ist die Schrittweite der Abstimmspannung sehr klein. Möglich wäre dann z.B. bei aktiv werden die einen Zähler mitzählen zu lassen, bis es wieder inaktiv wird, dieses Ergebnis durch 2 zu teilen und um soviele Schritte wieder zurückzugehen. Dann wäre man bestmöglichst in der Mitte. Das kann er aber nur austesten, weil das Verhalten der Abstimmung nicht linear zum PWM-Wert sein dürfte, unten sollte es steiler sein als oben. Bei mir würde das wohl etwa so aussehen: Start: Gosub Init Startwerte nach Reset setzen Loop: Gosub Tasten Wartet auf Taste IF Taste1_kurz Gosub Suchen nächsten Sender suchen ELSE IF Taste1_lang Gosub Speichern ELSE IF Taste2_kurz Gosub blabla ENDIF Gosub Status zeigt Stereo, Frequenz, Sonnenstand an ;) ... ENDLOOP Init: Suchen: Speichern: blabla: Status: Ist jetzt kein echter Code, soll nur das Prinzip verständlich machen. Dann gibt es nur einzelne konkrete Baustelln, ohne immer alles durcheinander zu bringen... Ich hätte mir an Fabians Stelle auch die ISA-Karte von oben beschafft, das Porto ist sicher zu verkrafte. Selbst wenn er die nicht komplett verwenden will, ist eine komplette PLL mit dem LM7000 drauf, das Zeug runtergelötet und auf 2x3cm Lochraster verdrahtet und an seinen Tuner gehängt... Gut, genug rumgemault, geht mich ja eigentlich alles nichts an, also nicht zu böse sein. ;)) Gruß aus Berlin Michael
Hi RDS Anfänger, wie entprellst du denn immer deine Tasten, einfach per Waitms oder benutzt du den Debounce Befehl?
Fabian Wolf wrote: > Hi RDS Anfänger, > > wie entprellst du denn immer deine Tasten, einfach per Waitms oder > benutzt du den Debounce Befehl? Beides ist Quark. Taster entprellt man im Hintergrund mittels Timer-Interrupt. Da ist Entprellung und Flankenerkennung zusammengefasst. Recherchiere mal, wie Inline-Assembler unter BASCOM auf Variablen zugreift, dann kannst Du den ASM-Entprellcode von PeDa (hat Karl heinz im AVR-Tutorial ausführlich erklärt) benutzen. Damit sind dann die Tasten entprellt, die Flanken erkannt und auch die längeren Tastendrücke erkannt. Das ist eine echte Sorglos-Routine. Wer die nicht benutzt ist selber schuld. MFG
Hallo @Michael Mich verwirren tausend Unterprogramme immer und solang das Programm nicht zu lang ist. Auserdem ist es ja auch strukturiert. ein Block fangt immer mit if taster x =1 dann dann folgt das unterprogramm. Mir wurde das mit dem sender verschieben auch zu blod, deshalb hab ich mir jetzt den Tuner aus dem Markt gegoennt. Tasten entprelle ich immer ganz klassisch mit einem Kondensator, aber du kannst ja auch mal das auf Softwareebene probieren
Hallo, @Mikrocon Troll-er: diesen Vorschlag habe ich extra vermieden, man kann mit Sicherheit auch in BasCom sowas ordentlich erledigen. Ich würde es nicht machen (ich benutze kein BasCom), Du würdest es nicht machen. Das ist aber nicht das Problem. Das, was da zur Zeit meiner Meinung nach rauskommen soll, kann man prinzipiell zu Fuß machen, es gibt keinerlei wirklich zeitkritische Geschichten, es gibt keine intern unabhängig ablaufenden Sachen. Es wird nur auf einen Tastendruck gewarte, es läuft dann eine Reaktion ab, die theoretisch ewig dauern kann und danach wird wieder auf einen Tastendruck gewartet. Insofern schreit das Projekt bis jetzt geradezu nach BasCom. ;)) Trotzedem gibt es offenbar diverse seltsame Effekte, die es eigentlich nicht geben dürfte. RDSAnfanger: spätestens, wenn ein Programm umfangreicher und komplexer im Zusammenspiel wird, strafst Du Dich selbst mit solch einem Programmierstil. Es wird letztlich Deine Zeit sein, die Du mit Fehlersuche an den falschen Stellen verbringst. Ein Unterprogramm hat eigentlich 2 sinnvolle Anwendungen: es spart Code und Platz, wenn eine bestimmte identisch Befehlsfolge mehrmals im Programm benutzt wird und es erleichtert Änderungen, wenn Funktionsblöcke unabhängig vom Rest des Programmlaufs notfalls komplett umgebaut werden sollen oder müssen. Beispiel: Ein Unterprgramm "Warte auf Tastendruck" wird aufgerufen. In diesem wird auf eine gedrückte Taste gewartet, dann wird gewartet, bis die wieder losgelassen wurde und dann geht es zurück. Zurück kommt in einer Variablen die Nummer der gedrückten Taste und in einer anderen der Zustand kurz oder lang gedrückt. Der Kram wird im Hauptprogramm jetzt in Ruhe ausgewertet. Wenn jetzt die Tastenroutine umgebaut werden muß (Software-Entprellung, andere Wartezeit für Lang, zusätzliche Wiederholfunktion) passiert das nur genau in diesem Unterprogramm. Das Hauptprogramm merkt davon nicht, es muß mit Sicherheit an keiner anderen Stelle im Programm was verändert werden, man kann es also auch nicht vergessen. Beispiel: Sendersuche - das Unterprogramm bekommt in einer Variablen das Flag aufwärts oder abwärts suchen mit. Dort wird abgestimmt, geteste, ob ein Sender gefunden wurde, die Such-LED geschaltet, überprüft, ob die Abstimmgrenzen beim Suchen erreicht wurden usw. Zurück kommt ein Flag Sender gefunden oder nicht gefunden. Wenn jetzt ein anderer Tuner angebaut wird, die Abstimmspannung anders erzeugt wird usw. muß nur in genau dieser Routine umgebaut werden. Man kann auch schnell mehrere Versionen Testen, gibt es eben Subroutine Suche1, Suche2 Suche3 usw, und im Hauptprogramm wird eben die passende aufgerufen. So kann man schnell vergleichen, was besser läuft, auch diretkt in Funktion, wenn man noch eine Taste hat und einfach von da entscheidet, wie gesucht werden soll. Das ist ohne Unterprogramme so gut wie unmöglich, man vergisst eine der 10 Stellen zu ändern, nichts geht mehr, man such ewig Fehler... PS: RDSAnfänger - hat der Name einen konkreten Grund? Ich habe mir gestern noch schnell einen TDA8425 geholt, ich mache aus meinen Tunerexperimenten nun doch ein Küchen-/Klo-/Bastelzimmer-Radio. Entweder ich stecke am Wochenende den Kram auch noch auf das Steckbrett oder ich löte gleich alles soweit auf eine Lochraster und mache dann noch die I2C-Routinen fertig. Mal schauen... ;) Gruß aus Berlin Michael
Der Name hatte mal einen konkreten Grund, das mit dem RDS kan ich aber vergessen, weil es wo ich jetzt wohne kein RDS gibt :-((((
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.