Forum: Mikrocontroller und Digitale Elektronik Attiny2313 + LM7001 + Bascom - Wer kann helfen?


von A. K. (watt_ihr_volt)


Angehängte Dateien:

Lesenswert?

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.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

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

von Frickelfritze (Gast)


Lesenswert?

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?

von A. K. (watt_ihr_volt)


Lesenswert?

@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.

von Frank G. (frank_g53)


Lesenswert?

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

von Frickelfritze (Gast)


Lesenswert?

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 ....

von A. K. (watt_ihr_volt)


Lesenswert?

@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.

von Max M. (maxmicr)


Lesenswert?

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
von Frank G. (frank_g53)


Lesenswert?

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

von A. K. (watt_ihr_volt)


Lesenswert?

@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.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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
von A. K. (watt_ihr_volt)


Lesenswert?

@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 !

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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
von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

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.

von A. K. (watt_ihr_volt)


Angehängte Dateien:

Lesenswert?

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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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
von A. K. (watt_ihr_volt)


Angehängte Dateien:

Lesenswert?

@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 ;-)

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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
von wendelsberg (Gast)


Lesenswert?

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

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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
von A. K. (watt_ihr_volt)


Lesenswert?

@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?

von A. K. (watt_ihr_volt)


Lesenswert?

@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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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
von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

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
von Simpel (Gast)


Lesenswert?

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.

von A. K. (watt_ihr_volt)


Lesenswert?

@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.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

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
von Simpel (Gast)


Lesenswert?

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...

von Marc V. (Firma: Vescomp) (logarithmus)


Angehängte Dateien:

Lesenswert?

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.

von A. K. (watt_ihr_volt)


Lesenswert?

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

von Herbert423 (Gast)


Lesenswert?

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.

von Georg G. (df2au)


Lesenswert?

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.

von A. K. (watt_ihr_volt)


Lesenswert?

@all

Ich glaub ich brauch erstmal Urlaub :) .... Ich werde mich später 
nochmal darum kümmern. Trotzdem erstmal ein dickes Danke an alle Helfer.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

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.

von tommy_v (Gast)


Lesenswert?

Sind da noch Bauteile auf der Lötseite?
Auf der Bestückungsseite sind jedenfalls keine Abblockkondensatoren.

von Georg G. (df2au)


Lesenswert?

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
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von A. K. (watt_ihr_volt)


Lesenswert?

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
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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
von A. K. (watt_ihr_volt)


Lesenswert?

@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 ... :)!

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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
Noch kein Account? Hier anmelden.