Ein nettes Hallo an alle, Ich habe mich hier mal angemeldet weil ich aktuell das Problem habe, mit einem Attiny2313 und einem LM7001 PLL IC. Ich versuche nun schon, satte drei Monate diesen IC mit einem AVR anzusprechen und bin langsam am verzweifeln. Ich habe alles nach Datenblatt richtig konnektiert, ein entsprechendes Senderchen (CB-Funk Bereich) angefertigt (funktioniert definitiv mit Poti am Varicap) und viele verschiedene Anregungen aus dem Internet eingeholt. Viele Bastelvarianten mit dem dazugehörigen AVR Code gibt es aber leider nicht soviel im WWW. Die Leute bei denen es funktioniert, benutzen nur C als Programmiersprache. Ich kann aber nur mit Bascom umgehen und konnte damit viele Sachen erfolgreich umgesetzen. Zuletzt habe ich es hinbekommen einen Frequenzgenerator mittels AD9850 in Betrieb zu bekommen und nun scheitert es an einem relativ einfachen PLL IC ??? Ich habe nun schonmal angefangen, einen einfachen 32 bit "Logic Analyzer" mittels 74HC595 aufzubauen um mal zu schauen, ob am IC auch das richtige Datenpaket ankommt ... Die Fertigstellung dauert aber noch ein Weilchen, da ich noch anderweitig beschäftigt bin. Ein Nebengedanke wäre auch noch, die Datenanschlüsse mit einem 10K Widerstand auf Masse zu legen um einen sicheren Datenfluss zu gewährleisten. Was meint ihr? ... Der Haupfehler liegt aber wahrscheinlich sogar an der Bitübertragung, Thema MSB und LSB ... ! Ich habe mal als Dateianhang meinen Bascom Code angehangen, damit ihr mal schauen könnt ob alles soweit richtig umgesetzt wurde. Wer programmiert viel mit Bascom und kann mir helfen? Wer hat/hatte ähnliche Probleme einen IC anzusprechen. Wer kann mit netterweise Tipps, Ratschläge, Hilfestellungen geben? Für Fragen von euch stehe ich gerne zur Verfügnung. Danke schonmal im Vorraus.
A. K. schrieb: > Probleme einen IC anzusprechen. Wer kann mit netterweise Tipps, > Ratschläge, Hilfestellungen geben? Für Fragen von euch stehe ich gerne Vielleicht hier ? http://sq1ftb.n12.pl/articles.php?article_id=8
A. K. schrieb: > Der Haupfehler > liegt aber wahrscheinlich sogar an der Bitübertragung, Nein, der Hauptfehler liegt daran dass du nicht erzählst - was du erreichen willst - was du für eine Schaltung hast - was du bisher gemacht hast - was herauskommen soll - was du für Beobachtungen hinsichtlich deiner Aktivitäten gemacht hast (Reaktion der Hardware) Denn, wie sollen wir das alles aus unseren Kritallkugeln herauslesen?
@Mark Vesely Die Seite kenne ich schon ... die ist wohl Polnisch !?? Hier hatte ich versucht nachzuvollziehen was er da programmiert hat (Soweit ich den englischen Begriffen folgen konnte). Einiges habe ich entnommen und in meinen Code eingefügt ... leider kam nichts erfolgreiches dabei raus ... oder ich habe es falsch "verknüpft" !? Zum anderen gibt es wie gesagt nur wenige Seiten wie z.B. diese hier > https://diankurniawan.wordpress.com/2010/06/25/low-cost-simple-wide-band-vco-lm7006-74hc04/ die sich überhaupt mit dem LM7001 + Bascom beschäftigen ... Die Programmierer benutzen auch leider nur die FOR NEXT Schleife ... Ich benutze aber gerne "shiftout", mit dem ich bisher richtig gute und einfache Lösungen umsetzen konnte. @Frickelfritze Was soll ich denn da alles erzählen ??? Was eine PLL macht sollte doch bekannt sein ... Oder !?? Die Hauptproblematik hatte ich doch genannt. Ein Attiny AVR soll je nach Tastendruck/Drehgeber etc. binär mit dem LM7001 reden (so das er es versteht !!!), um eine bestimmte exakte Frequenz in einem freischwingenden Oszillator festzuhalten. Den Attiny, zusammen mit einem LM7001, habe ich nun extra (aus Verzweifelung) ganz neu und frisch auf eine Platine gelötet, wo ich gleichzeitig den AVR über einen USB ISP programmieren kann und auch gleich feststellen kann ob die Regelschleife, verbunden mit dem kleinen Senderchen überhaupt funktioniert. Mit einem Oszilloskop kann ich dann sofort nachvollziehen was mit der Sinuskurve passiert. Egal was ich bisher nun in den Attiny gechrieben habe, hat bisher nicht funktioniert, die Frequenz hat sich nie geändert oder angepasst >> das ist die Beobachtung... warum auch immer ... deshalb bin ich nun hier und hoffe auf Hilfe! Am besten wäre für mich ein Logic Analyzer um zu schauen was beim AVR rauskommt, aber leider habe ich nicht den dicken Geldbeutel. Bei Bedarf kann ich auch noch Bilderchen von den Schaltungen zukommen lassen ... aber die werden nicht sonderlich weiterhelfen, da alles korrekt verbunden ist.
A. K. schrieb: > Am besten wäre für mich ein Logic Analyzer um zu > schauen was beim AVR rauskommt, aber leider habe ich nicht den dicken > Geldbeutel. Kostet nicht die Welt:http://www.dx.com/p/logic-analyzer-w-dupont-lines-and-usb-cable-for-scm-black-148945#.V0MyuDWLS70
A. K. schrieb: > um eine bestimmte exakte > Frequenz in einem freischwingenden Oszillator festzuhalten. Um den geht es zum Beispiel. Der muss ja a) schwingen b) verstimmbar sein c) auf einer bestimmten Frequenz schwingen damit der PLL Baustein was damit anfangen kann. Tut er das? Wenn drei Male "Ja", wie stellst du das fest? Wenn man dir die Funkionalität aus der Nase ziehen muss macht das hier niemandem Spass. Also muss eigentlich der Schaltplan und der Aufbau her ....
@Frank G. Danke für den Link ... ich werd mir das mal genauer anschauen. Ich bin bei solchen "günstigen" Sachen aber immer skeptisch ob diese Teile auch das leisten, was sie sollten ... ! @Frickelfritze Alle drei Fragen, kann ich mit einem JA beantworten ... Festellen tue ich sowas mit einem Oszilloskop. Das ist Grundausrüstung in der HF Technik. Für mich zumindest ;-) Einen Oszillator/Sendeschaltung zu bauen ist schon eine Sache für sich. Am Anfang, als ich noch kein Oszi hatte habe ich gedacht ... was auf einem Schaltungsbild zu sehen wird wohl nach dem zusammenbau 1A funktionieren. Falsch gedacht ... Es gibt einiges zu beachten ... Ist halt eine Wissenschaft für sich. Wenn also die PLL geregelt hätte, hätte ich am Oszi Bildschirm live verfolgen können, ob sich der Sinus verschiebt. Ich kann nun auch gerne ein paar Bilderchen machen und werde Sie dann hochladen, dies dauert aber ein bisschen ... Ich melde mich aber zeitnah wie möglich nochmal. Zwei wichtige Fragen hätte ich aber noch: Wie kann ich am LM7001 prüfen ob irgendwas schief gelaufen ist (LED Anzeige ?) und WER kann anhand meines BASCOM Codes nachvollziehen ob die Binärdaten korrekt am LM7001 ankommen könnten.
A. K. schrieb: > Ich bin > bei solchen "günstigen" Sachen aber immer skeptisch ob diese Teile auch > das leisten, was sie sollten ... ! Ich hab selber auch einen Saleae Logic Clone für 10$ und der funktioniert insoweit, als dass er die relativen Pegel (also high / low) auf den angesteckten Pins zuverlässig in Abhängigkeit von der Zeit darstellt. Mehr kann ich leider nicht beitragen.
:
Bearbeitet durch User
A. K. schrieb: > "günstigen" Sachen aber immer skeptisch Habe ich selbst seit längerem im Einsatz. Funktioniert bestens bei mir (Win7) Mit dieser Software: https://sigrok.org/wiki/File:PulseView_I2C_DS1307_Decode.png
@Frank G. Mmhm ... Hab das Bild mal angeschaut, im Prinzip keine schlechte Sache. Ich benutze aber schon lange kein "Fenster" von "WinzigWeich" mehr. Bei mir muss die Software unter Linux/Ubuntu laufen. Mal schauen ob ich da was passendes finde ... Ich hatte mal vor langer/langer Zeit einen ganz simplen Logic Anlayzer unter Win am laufen, dieser hieß "Digitrace". Man brauchte da nur Software runterladen und ein altes LPT Kabel entsprechend herrichten.
A. K. schrieb: > Zwei wichtige Fragen hätte ich aber noch: Wie kann ich am LM7001 prüfen > ob irgendwas schief gelaufen ist (LED Anzeige ?) und WER kann anhand > meines BASCOM Codes nachvollziehen ob die Binärdaten korrekt am LM7001 > ankommen könnten. Sollte der PortD nicht zuerst als Ausgang gesetzt werden, etwa so:
1 | Config PortD = Output |
Oder so:
1 | DDRD = DDRD OR &B00011100 |
Beim Start sind es doch Eingänge.
A. K. schrieb: > Zwei wichtige Fragen hätte ich aber noch: Wie kann ich am LM7001 prüfen > ob irgendwas schief gelaufen ist (LED Anzeige ?) und WER kann anhand > meines BASCOM Codes nachvollziehen ob die Binärdaten korrekt am LM7001 > ankommen könnten. Das kannst du an deiner Schaltung recht einfach mit den TB und B0..B2 Bits selber testen. Ein gesetztes TB sollte ja ein 8 Hz Timebase Signal am Ausgang /BO1 erzeugen, die Bn Bits setzen die Bandwahl Ausgänge(siehe die Tabelle). Mit diesem Wissen kannst du schon mal das SPI prüfen. Wenn die Drain des externen FET immer auf high hängt, kann es sein, das der Chip zu wenig Pegel auf FMIN bekommt und deswegen probiert, die VCO Frequenz zu erhöhen.
:
Bearbeitet durch User
@Mark Vesely Die Zuweisung der Pins habe ich unter BASCOM bisher immer folgendermaßen gemacht: PORTD.1 = Ausgang und PIND.1 = Eingang. Deine Angaben mit Config oder Binärzuweisung funktionieren natürlich auch. Es ist eben das Gute an BASCOM ... ohne viel zu tippen kann man eine Zuweisung regeln. @Matthias Sch Dein Hinweis klingt sehr interessant und ich werde es mal testen. Allerdings lagen an FMin des LM7001 ca. 0,5 Vss an. Ist dies zu wenig ??? @all Ich mach jetzt mal ne Pause ... Melde mich aber wieder !
A. K. schrieb: > Allerdings lagen an FMin des LM7001 ca. 0,5 Vss an. Ist dies zu wenig > ??? Die Frage ist nah wie vor, wo die PLL denn hängt (gemessen an der Drain des externen FET). Am oberen Ende heisst, da ist zu wenig Frequenz und am unteren Ende heisst zu viel davon. Ob das nun ein falsches SPI oder ein fehlender Pegel des VCO ist, musst du testen. O,5 Vss sollten lt. Datenblatt reichen.
:
Bearbeitet durch User
A. K. schrieb: > Die Zuweisung der Pins habe ich unter BASCOM bisher immer folgendermaßen > gemacht: PORTD.1 = Ausgang und PIND.1 = Eingang. Deine Angaben mit Kenne mich mit Bascom nicht aus, aber das klingt irgendwie nicht logisch.
1 | Set Lm_da |
Hier wird nur der Pullup am Eingang eingeschaltet.
Guten Morgen @all Ich habe nun mal ein paar Bilder gemacht, damit der ein oder andere mal schauen kann, ob irgendein Fehler erkennbar ist ... Bild1: Das PLL Modul mit Attiny2313 und LM7001, verdrahtet nach Datenblatt und mit vielen Pins zur Signalabnahme, Tasten, LED's etc. Bild2: Die Anordnung zeigt die Verknüpfung mit dem Testsender. Das gelbe Kabel nimmt die Frequenz ab und gibt Sie auf FMin am LM7001 weiter. Das grüne Kabel gibt die Spannung von der Regelschleife zum Varicap weiter. Varicap ist ein BB609 und hat bei 0V ca. 30 pf. Die Spannung geht von 0 - 5 Volt. Bild3: Hier sieht man die Regelschleife nach Datenblatt an PD1. Ob Sie nun funktioniert kann ich nicht genau sagen. Ich hatte auch mal direkt am PD1 Port mit dem Oszilloskop gemessen, weil dort ja im Prinzip Impulse rauskommen ... Hier war auch nichts messbar. So ich hoffe mal, das mir jemand helfen kann, ansonsten werde ich alleine weitermachen müssen.
Das geht nicht mit einem NPN als PLL Amp, es muss ein FET sein, denn der Ausgang des LM7001 ist ein Tristate und verlässt sich darauf, das im hochohmigen Zustand der FET einfach die Spannung hält - im Prinzip wie eine Sample&Hold Schaltung. Ein BF245 oder BF256 tuts hier, ich habe in meiner LM7001 Schaltung einen 2SK30 Audio FET genommen, weil ich die säckeweise habe. Als nächstes teste doch mal deine SPI Routine mit den TB und Bn Bits, wie oben vorgeschlagen. Übrigens ist ein abgeschirmtes Kabel zum FMIN vom VCO nicht die schlechteste Idee, nimm doch mal eines.
:
Bearbeitet durch User
@Matthias Sch. Also das mit dem Transistor/FET ist mir nicht ganz klar ... Du sagst zwar das der Ausgang ein Tristate ist, das klingt auch logisch, nur es gibt eine andere Schaltung bei dem auch ein einfacher NPN Transistor verwendet wurde > Siehe Anhang. Diese Schaltung funktioniert im UKW Radio Bereich (selber aufgebaut und getestet) ... !!?? Leider konnte der Erbauer auch nicht mit dem Code weiterhelfen, da er nur mit C, C++ arbeitet. Ich werde aber mal ein FET ausprobieren. kopfkratz Kannst du mir mal kurz erklären bzw. eine Anleitung geben wie ich das mit der SPI Routine, TB etc. testen kann ??? ... Ich muss da bestimmt irgendwelche LED's anschließen um zu schauen, was da passiert, Richtig? Ich bin aber aktuell zu doof dafür ggg Deine Aussage mit dem abgeschirmten Kabel ist richtig und ich setzte sowas normalerweise auch ein. Nur das hier ist ein Testaufbau und der Sinus macht am anderen Ende des Kabels trotzdem Kuckkuck hier bin ich ;-)
A. K. schrieb: > Kannst du mir mal kurz erklären bzw. eine Anleitung geben wie ich das > mit der SPI Routine, TB etc. testen kann ??? ... Ich muss da bestimmt > irgendwelche LED's anschließen um zu schauen, was da passiert, Richtig? Nö, Oszi reicht, wenn es 8Hz abbilden kann. Du schreibst doch einen 'RWert' in den Chip. In diesem 'RWert' ist sowohl die Raster- als auch die Einstellung für die Bandwahl Pins drin. Aus Gründen der Übersichtlichkeit würde ich dir empfehlen, das alles binär zu schreiben, dann blickst du besser durch. Also T0 und T1 sollen immer low sein. Danach kommen 4 Bandwahlbits, dann drei Rasterbits und dann S. Setzen wir mal TB und B02 und B03 auf high, lassen das Raster bei 5kHz. Binär: 0b00n1111111, wobei das n for 'don't care' steht, kann also 1 oder 0 sein. Ok, das ist also Hex 07F. Ob und wie Bascom damit umgeht, weiss ich aber nicht. In meinem C Programm setze ich den gesamten String vorher zusammen und bit-bange ihn dann auf dem LM7001, damit ich vorher mir die Werte für Raster, TB, B-Bits und S zusammensetzen kann. Das sieht dann so aus:
1 | Data = (PLL Teiler << 10) + (T-Bits << 8) + (B-Bits << 4) + (Rset << 1) + S. |
2 | ^ immer null |
:
Bearbeitet durch User
A. K. schrieb: > Ich versuche nun schon, satte > drei Monate diesen IC mit einem AVR anzusprechen und bin langsam am > verzweifeln. A. K. schrieb: > Die Leute bei denen es > funktioniert, benutzen nur C als Programmiersprache. > > Ich kann aber nur mit Bascom umgehen und konnte damit viele Sachen > erfolgreich umgesetzen. Aber in DREI Monaten haettest Du Dich da einarbeiten koennen und Dir viel Frust erspart. wendelsberg
Matthias S. schrieb: > Das sieht dann so aus:Data = (PLL Teiler << 10) + (T-Bits << 8) + > (B-Bits << 4) + (Rset << 1) + S. > ^ immer null In Wahrheit (ich habe gerade nochmal nachgeschaut), schiebe ich die ganze Nummer linksbündig in eine 32-bit Variable, so das die Shiftwerte anders aussehen. Dann werden die ersten 24 Bits davon 'gebitbanged' Richtung LM7001. Aber das Prinzip bleibt das gleiche.
:
Bearbeitet durch User
@Matthias Sch. Besten Dank für die Hilfestellung. Das mit den Rasterbits und dem S-bit habe ich bisher richtig umgesetzt ... Ich hab da, aber trotzdem noch ne kleine Frage: Laut Datenblatt kann man zweimal 5 Khz Rasterbits einsetzen. Einmal 011 und 111. Wozu soll das gut sein bzw. muss ich da irgendwas beachten? In BASCOM kann ich natürlich auch Binärdaten einer Variable zuweisen, und zwar so > &B00001111. Ich habe natürlich auch versucht mit Binärdaten zu arbeiten, z.B. habe ich für die Setup Daten folgenden Binärwert aufgestellt > &B1111000000 (auch siehe mein Bacom Code) Nun ist bei mir der Rwert eine Word-Variable (16bit) Im Shiftoutbefehl kann ich ihm nun sagen das er nur 10 bit aus den 16 bit verwenden soll. Nimmt er da nun auch die richtigen Bits zum senden raus?
@Wendelsberg Ich bin nebenbei noch beruflich Webprogrammierer und kann zusätzlich mit dem Basicdialekt recht gut umgehen. Die Programmiersprache C, C++ ist zwar interessant, aber erstens habe ich recht wenig Zeit die auch noch zu verinnerlichen und zweitens muss ich doch nicht für kleine private Elektronikprojekte so ein Aufwand betreiben. Ich gehe immer den Weg des gringsten Widerstands. Ich versuche generell auch schnell, sauber, exakt und vorallem effizient, Projekte umzusetzen. Aber wer weis ... vielleicht muss ich irgendwann doch nochmal ran an den Speck.
A. K. schrieb: > Laut Datenblatt kann man zweimal 5 Khz Rasterbits > einsetzen. Einmal 011 und 111. Wozu soll das gut sein bzw. muss ich da > irgendwas beachten? Wenn alle B-Bits null sind, übernimmt der LM7001 das Bandswitching aus dem gewählten Raster, also bei 100, 50 und 25 kHz wird der FM Zug per /B03 aktiviert. Bei 5,10 und 9 kHz ist AM aktiv, per /B02. Das 5kHz Raster vermutlich nur 2 mal drin, weil 3 bits eben 8 Möglichkeiten bieten, aber nur 7 gebraucht werden für alle Raster. Für eine SingleBand PLL ist das alles egal, denn Bandswitching hast du im Moment noch nicht vor. A. K. schrieb: > Im > Shiftoutbefehl kann ich ihm nun sagen das er nur 10 bit aus den 16 bit > verwenden soll. Nimmt er da nun auch die richtigen Bits zum senden raus? Das kann ich dir nicht sagen, weil ich Basic nur noch auf dem MCS-51 laufen habe und Bascom mir persönlich unbekannt ist. Ich habe ein C-Projekt mit meiner universellen Mega328 Plattform mit LCD für den LM7001, bei Interesse kann ich das mal posten.
:
Bearbeitet durch User
A. K. schrieb: > @Mark Vesely > > Die Zuweisung der Pins habe ich unter BASCOM bisher immer folgendermaßen > gemacht: PORTD.1 = Ausgang und PIND.1 = Eingang. Deine Angaben mit > Config oder Binärzuweisung funktionieren natürlich auch. Es ist eben das > Gute an BASCOM ... ohne viel zu tippen kann man eine Zuweisung regeln. Nein und nochmal nein. Dein gepostetes Programm setzt nirgendwo die entsprechenden Pins als Ausgänge. NIRGENDWO. Ist es so schwer, die folgende Zeile in dein Programm reinzuschreiben:
1 | DDRD = DDRD OR &B00011100 |
Und erst dann nach Hardware Fehlern zu suchen ? P.S. Mit obiger Anweisung funktioniert es. P.P.S. Aber da dir am Ende ein Do...Loop, End oder ähnliches fehlt, resettet sich dein Programm dauernd.
:
Bearbeitet durch User
Marc hat recht. Da wird nirgendwo ein Port als Ausgang gesetzt und das Programm läuft nicht in einer Loop... zumindest bei dem Code, den du oben gepostet hast.
@Marc Vesely Also ich kann es gerne mal nach deinem Vorschlag testen ... Ich habe es als Ausgang bisher immer so hinbekommen > PORTC.x PORTD.x usw. Und als Eingabe für Tasten habe ich immer direkt im Code dieses geschrieben: IF PINC.x = 1 THEN mache dies EndIf Hat bisher einwandfrei funktioniert. Aber wie gesagt ich werde es mal ausprobieren. Das mit dem Do ... Loop wendet man doch nur an, wenn etwas pausenlos abgefragt werden soll bspw. ob eine Taste gedrückt wurde oder nicht. Wenn gedrückt dann geht er z.B. kurz nach GOSUB, führt aus und geht wieder auf die Abfrageschleife zurück ... Wenn man nun die passende Bitfolge per Do ... Loop versendet, dann passiert dies doch andauernd ... solange der AVR eingeschaltet ist. Soweit ich weis,braucht man die Bitfolge nur einmal senden und der LM7001 hält diesen Datensatz fest solange er Strom hat.
A. K. schrieb: > Also ich kann es gerne mal nach deinem Vorschlag testen ... Ich habe es > als Ausgang bisher immer so hinbekommen > PORTC.x PORTD.x usw. Und als Bezweifle ich sehr, aber OK, wenn du es sagst... > Eingabe für Tasten habe ich immer direkt im Code dieses geschrieben: > IF PINC.x = 1 THEN mache dies EndIf > Hat bisher einwandfrei funktioniert. Naturlich funktioniert das, Pins sind immer Eingänge, es sei den, du setztst die explizit als Ausgänge. A. K. schrieb: > ausprobieren. Das mit dem Do ... Loop wendet man doch nur an, wenn etwas > pausenlos abgefragt werden soll bspw. ob eine Taste gedrückt wurde oder Nein. Irgendwo muss dein Programm zu Ende sein und da schreibst du End oder lässt ihn in eine Endlos Schleife laufen. Sonst läuft es bis zum Flashende und fängt wieder von vorne an oder er findet vorher ein RET und springt ins Nirwana.
:
Bearbeitet durch User
Mann, mann... Natürlich kannst du auch einen Eingangspin über dein Aliase als Ports ansprechen und diese auf High setzen. Was dann passiert, ist, dass der PullUp aktiviert wird, so dass der Eingang tatsächlich wie ein schwacher Ausgang wirkt (ca. 35kOhm gegen Vcc). Wenn du ihn per Alias als Port wieder auf Low setzt, ist der Eingang wieder ohne PullUp hochohmig und eine daran angeschlossene Last wird ihn (gemäss ihrer Impedanz gegen Gnd) auf Low ziehen. Genau dieses Verhalten wird das wohl sein, was bei dir zufälligerweise mit den nichtdefinierten "Ausgängen" in der Vergangenheit "geklappt" hat... Mit einer richtigen Verwendung als sauber deklariertem TP-Ausgang (per DDRx) hat das nix zu tun. Und an deinem offenen Code-Ende läuft dir der Programmcounter ins Nirwana. Da du aber erst seit 3 Monaten nach dem "Fehler" suchst und hier alle Hinweise auf deine kardinalen Programmier-Chimären in den Wind schlägst, hast du gute Karten zum "Mr. Lernresistenz" des Monats Mai gekürt zu werden...
Habe mir gerade mal Bascom angeschaut und installiert - überhaupt nicht schlecht, um etwas auf die Schnelle mal auszuprobieren... Probiere es mal mit angehängtem Programm, die PLL-Werte sind unverändert.
Hi@all Mal ein kurzes Update ... Also, den Tipp von Matthias Sch. mit dem FET habe ich nun mal ausprobiert. Ich habe den BC547 gegen einen BF245 ausgetauscht. Ergebnis: Es geht immer noch nicht. Auf dem Multimeter sah ich aber nun 0,0 Volt statt vorher 4,9 Volt mit BC547 am Loopfilter Ausgang. @Marc Vesely Ich habe deinen Code mal 1:1 übernommen und war schon voller Freude, das es nun endlich geht ... Pustekuchen ... Es geht auch mit deinem Code nicht. Der Sinus will sich einfach nicht verändern. Ich habe natürlich auch die Frequenzwerte für Nwert immer mal verändert um zu schauen ob es daran vielleicht liegt. Ich weis nun auch nicht mehr weiter. Am besten wäre es nun, wenn einer so nett wäre, einen funktionierenden Code in BASCOM zu erstellen, auf seinem selbstgebauten PLL Modul zum laufen bringt und mir dann den Code zur Verfügung stellt. Ich werde wohl einen Logic Analyzer Check machen müssen ... ! Wo ist denn nur der Hund begraben ... Ist doch nur eine simple serielle Bitübertragung ... Mann, Mann, Mann
Wie sollte dir vernünftig geholfen werden, wenn du außer deinem Code nichts weiter angibst. Ein Schaltplan wäre z.B. das mindeste, damit man auch ohne LM7001 wenigstens alles aufbauen könnte was dem LM7001 vermittelt werden sollte. Logikanalyser existiert hier, aber Testen deiner Software alleine aufgrund deines Programmes wird noch abgelehnt, solange nicht nachvollziehbar ist, wie die Schaltung mit allen Teilen aussieht.
Fang doch bitte - wie schon mehrfach vorgeschlagen - mit einem einfachen Test an. Spendiere am LM7001 dem Port B0 einen Pullup (10kOhm) und schreib ein Programm, das nur im Sekundentakt an B0 wackelt. Wenn das funktioniert, weisst du, dass die Kommunikation zwischen ATtiny und LM7001 wie gewünscht läuft. Und dann sehen wir weiter. Momentan stocherst du mit einer Stange im Nebel. Ist es die Kommunikation? Ist es der Eingangspegel des LM7001? Ist es der VCO? Also: Ganz unten anfangen, Stück für Stück vorarbeiten.
@all Ich glaub ich brauch erstmal Urlaub :) .... Ich werde mich später nochmal darum kümmern. Trotzdem erstmal ein dickes Danke an alle Helfer.
A. K. schrieb: > Ich habe deinen Code mal 1:1 übernommen und war schon voller Freude, das > es nun endlich geht ... Pustekuchen ... Es geht auch mit deinem Code Es ist dein Code, nur bisschen verändert. Wenn Hardwaremässig alles OK ist, solltest du vielleicht mit Matthias weitersehen und seine Routinen übernehmen. Matthias S. schrieb: > Ich habe ein C-Projekt mit meiner universellen Mega328 Plattform mit LCD > für den LM7001, bei Interesse kann ich das mal posten. Georg G. schrieb: > Momentan stocherst du mit einer Stange im Nebel. Ist es die > Kommunikation? Ist es der Eingangspegel des LM7001? Ist es der VCO? > Also: Ganz unten anfangen, Stück für Stück vorarbeiten. Ja, es geht nun mal nicht anders.
Sind da noch Bauteile auf der Lötseite? Auf der Bestückungsseite sind jedenfalls keine Abblockkondensatoren.
Marc V. schrieb: > Ja, es geht nun mal nicht anders. Das sehe ich anders. Zielgerichtete Fehlersuche geht anders. Es fehlen (nur als Beispiel) Angaben zur Frequenz des VCO bei 1V Regelspannung und 4V Regelspannung. Woher weiss der TO, ob seine PLL überhaupt fangen kann, ob der VCO im gewünschten Bereich liegt?
:
Bearbeitet durch User
Georg G. schrieb: > Das sehe ich anders. Zielgerichtete Fehlersuche geht anders. Marc hat nur die Schritt-für-Schritt Fehlersuche von dir bestätigt - er ist nicht der TE. tommy_v schrieb: > Sind da noch Bauteile auf der Lötseite? > Auf der Bestückungsseite sind jedenfalls keine Abblockkondensatoren. Gut gesehen und kriegt von mir auch gleich mal +1, Daumen hoch! So richtig HF-tauglich sieht mir der gesamte Aufbau nicht aus, auch wenn es nur 27MHz sind.
Hi Jungs, Ich möchte mich mal wieder melden zum Thema LM7001 PLL IC. Ich habe mal kurz Pause gemacht, wie oben erwähnt und habe mir danach einen 32 bit Logic Analyzer aus 4 mal 74HC595 zusammengebaut. War recht aufwendig, aber sehr hilfreich. Ich habe damit den Datenstrom mit einem Referenzmodul getestet und angeschaut und danach mein Bauwunder :). Soweit scheint alles I.O. zu sein. Die Datenübermittlung ist offensichtlich fehlerfrei. Wer Interesse an dem Logic Analyzer hat, schicke ich gerne den Schaltplan zu, das mal nebenbei. Eine tolle Sache, für Leute mit nicht so dickem Geldbeutel. Als zweites habe ich mir mal den 27 Mhz Sender genauer angeschaut um zu prüfen, was dort falsch oder fehlerhaft sein könnte. Es gab auf der Platine tatsächlich einige Verknüpfungen die nicht sein durften. Es sah unterhalb der Platine wie ein wildes Durcheinander aus ... Wer gerne mal bastelt und testet wird dieses Schauspiel wohl kennen. Ich habe nun nochmal alles sauber aufgebaut und kann nun die Sendefrequenz von ca. 25 - 29 Mhz mit 22 K Poti wunderbar regeln. Falls jemand fragt, wie ich die Frequenzen ermittelt habe ... Über das Oszi und der dazu üblichen Rechnerei. Nun habe ich wieder alles zusammengestöpselt (LM7001 + Sender), wie auf meinen Bildern zu sehen war. Das Ergebnis war folgendes: Die PLL scheint zu funktionieren. Ich schreibe deshalb "scheint", weil die auserwählte Frequenz, hier mal als Test 27,305 Mhz Kanal 30 irgendwie angesteuert wurde, zumindest konnte ich schonmal am Oszi den Sinuswert in Augenschein nehmen und den ungefähren Wert ermitteln. Der Sinus lag irgendwie richtig, zumindest laut Rechnung war die Frequenz im Bereich. Leider habe ich kein Frequenzzähler, die Oszi und Rechnungsmethode sollte aber auch gehen. Da auf meiner Testfunke (Stabo) der Kanal 30 aber nur ein Rauschen zu hören war, konnte ich mir nicht erklären, warum auf dem Oszi der Wert anscheinend korrekt ist, aber auf der Funke es auf dem Kanal rauschte, Ich fand raus das es auf verschiedenen Kanälen (8,25,29) ein 50 Hz brummen zu hören war, allerdings recht leise. (Das berümte brummen von einem Netzteil kennt man ja). Nach einigen Kabel hin und her gewurschtel war auf Kanal 30 manchmal ein Festes sauberes Signal zu hören. Ging ich mit meiner Hand über ein Kabel oder über die Platine, ohne beides zu berühren, kam es entweder zum Erfolg oder es ging in die andere Richtung. Ich dachte mir nun auch, wenn die PLL regelt, dann muss doch bei einer manuellen Frequenzänderung z.B. durch Hand am Oszillator (Finger auf Transistor) die Frequenz nachgeregelt werden. Dies tat es aber nicht! Was ist denn hier die Ursache ??? Schlechtes Signal am PLL Eingang ??? Habs aber per Oszi angeschaut. Dort lag ein relativ sauberer Sinus an. Die Phasenregelschleife habe ich von einer bekannten Website übernommen. Diese Regelschleife hat auch ein ganz toller Mensch, Namens "eflose" auf Youtube verwendet. Bei ihm hat anscheinend alles korrekt funktioniert. Was könnte ich jetzt machen um rauszufinden, was nicht korrekt ist? Und Bitte Bitte Bitte, erzählt mir nicht hohe Frequenzen = alles sehr empfindlich = geschirmtes 50 Ohm Kabel verwenden etc. .... Dies ist mir alles bewusst. Es ist nur ein Testaufbau ... Falls es nötig ist irgendwas zu schirmen, dann werde ich es tun ... Dazu brauche ich aber einen netten Rat von euch. So nun seid ihr dran ... :-)
:
Bearbeitet durch User
Irgendwie komme ich mir so vor, als poste ich gegen eine Wand. Du hast aber auch gar nichts von dem gemacht, was wir dir vorgeschlagen haben, also z.B. mal mit dem TB Bit im Datenstrom gespielt oder gar die Regelspannung der PLL gemessen. Stattdessen tappst du immer noch im Nebel - und das, obwohl du da ein Oszi stehen hast und mittlerweile einen völlig überflüssigen SIPO Shifter (gut, da kann man ja was lernen). Nochmal zum Mitschreiben - wenn die Regelspannung auf low hängt, schwingt der VCO auf zu hoher Frequenz und kommt nicht mehr niedriger, wenn die Regelspannung auf high klebt, findet der LM7001 keine Frequenz zum Einrasten (Pegel zu niedrig am AMin/FMIn) oder der VCO schwingt auf zu tiefer Frequenz und kommt nicht mehr höher. Hast du den Ozillator jetzt abgeblockt mit Kondensatoren? Ist seine Betriebsspannung sauber und brummfrei?
:
Bearbeitet durch User
@Matthias Sch. Hey Hey, immer schön ruhig bleiben ... woher willst du denn wissen, das ich bestimmete Sachen überhaupt nicht getestet hab ??? Und solche Aussagen wie >Stattdessen tappst du immer noch im Nebel - und das, obwohl du >da ein Oszi stehen hast und mittlerweile einen völlig überflüssigen SIPO >Shifter (gut, da kann man ja was lernen). Was sollen denn solche Aussagen ... Ich musste doch mit einfachen Mitteln rausfinden ob die Bitreihenfolge stimmt. Mit BO1,BO2,BO3 und TB habe ich bereits rumgespielt. BO zeigt mir ja nur an, ob das Raster richtig eingestellt wurde. Dies war der Fall. Mit TB hatte ich auch ein 8 Hz Signal erzeugen können. Das dazu! Mir gehts jetzt nur darum wie ich rausfinden kann, warum er nicht regelt. die mittige Frequenz von 27 Mhz ist mit einem Poti einstellbar. Laut Multimetermessung waren ca. 2,4 Volt ablesbar. Nun sollte doch der IC in der Lage sein in den Schleifenfilter zu pumpen, bis die Spannung erreicht ist. Ich habe als Schleifenfilter als zweite Möglichkeit diesen integriert: http://www.hobbyelektronikwerkstatt.info/pll/pll-schleifenfilter.php >Nochmal zum Mitschreiben - wenn die Regelspannung auf low hängt, >schwingt der VCO auf zu hoher Frequenz und kommt nicht mehr niedriger, >wenn die Regelspannung auf high klebt, findet der LM7001 keine Frequenz >zum Einrasten (Pegel zu niedrig am AMin/FMIn) oder der VCO schwingt auf >zu tiefer Frequenz und kommt nicht mehr höher. Der IC sollte doch erkennen, welche Frequenz grade anliegt und entsprechend positiv oder negativ pumpen. Mit 5V sollte es doch wohl möglich sein die Frequenz zu erreichen. Wie kann ich nun testen, wo der Fehler liegt? P.S. Ab jetzt nur noch sachliche und vorallem freundliche Aussagen, Hilfestellungen sonst melde ich mich hier wieder ab ... :)!
A. K. schrieb: > Mit BO1,BO2,BO3 und TB habe ich bereits rumgespielt. BO zeigt mir ja nur > an, ob das Raster richtig eingestellt wurde. Dies war der Fall. Mit TB > hatte ich auch ein 8 Hz Signal erzeugen können. Das dazu! Dann schreib das doch auch. Ich z.B. sehe doch nicht, was du da machst und was du probiert hast, wenn du nix dazu schreibst. Du schreibst auch nicht, ob du den Oszillator abgeblockt hast, was tommy_v schon vor Tagen erwähnte, usw. Viel Spass noch und ich bin jetzt weg hier.
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.