Forum: Mikrocontroller und Digitale Elektronik SPI Anfängerprobleme Digitaler Widerstand


von KArl Fred M. (Gast)


Lesenswert?

Beim MCP41HVX1
https://cdn-reichelt.de/documents/datenblatt/A200/DS_MCP41HVX1.pdf

Wird da der WLAT Eingang benötigt oder geht es auch ohne?!
Ich bekomme das Teil nicht an laufen

Ich Initialisiere die SPI Schnittstelle, sende dann
CS auf GND
0xFF
0xFF
CD wieder auf 5V
Pause 100ms

Aber es passiert nichts:-(
Und wenn 2x 0xFF falsch ist, mit welcher passiert erstmal was?

von Walter T. (nicolas)


Lesenswert?

KArl Fred M. schrieb:
> Wird da der WLAT Eingang benötigt oder geht es auch ohne?!

Natürlich. Wie das Datenblatt richtig anmerkt, wird hier das Kommando 
gegeben, den Zahlenwert im Speicher in eine Potistellung zu übertragen.

Für Dich der wichtigste Teil ist Diagramm 1-2.

: Bearbeitet durch User
von beo bachta (Gast)


Lesenswert?

KArl Fred M. schrieb:
> Aber es passiert nichts:-(

Zuerst musst du mal sagen was passieren soll.

KArl Fred M. schrieb:
> Und wenn 2x 0xFF falsch ist, mit welcher passiert erstmal was?

Kannst du Datenblatt lesen?
Steht im Datenblatt auf Seite 47, es gibt vier Kommandos von
denen du das verwenden solltest was du erreichen willst.

RTFM, SCNR

von Udo S. (urschmitt)


Lesenswert?

Auch noch wichtig:
Wie ist das Teil zum Test angeschlossen (Schaltplan)

von KArl Fred M. (Gast)


Lesenswert?

Ach ja, und messen tu ich es indem ich an den Poti Ausgängen ein 
Multimeter angeschlossen habe. Ich vermute es benötigt keine 
Masseverbindung sondern verhält sich wirklich wie ein Poti, ist das 
richtig?

von karl (Gast)


Lesenswert?

KArl Fred M. schrieb:
> Wird da der WLAT Eingang benötigt oder geht es auch ohne?!

auf Seite 30 des Datenblatts:

If the application does not require synchronized Wiper
register updates, then the WLAT pin should be tied low.

Bei meinen ersten Versuchen mit SPI ging erstmal auch erstmal nichts.
Dann man einen Logic Analyser (ein billiger tuts auch) angeschlossen und 
schon kam die Erleutung.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

KArl Fred M. schrieb:
> Ach ja, und messen tu ich es indem ich an den Poti Ausgängen ein
> Multimeter angeschlossen habe. Ich vermute
Ganz schlechter Ansatz...

> es benötigt keine Masseverbindung
> sondern verhält sich wirklich wie ein Poti, ist das richtig?
Nein.
Du musst mit der Beschaltung der Pins dafür sorgen, dass die Pegel an 
den Potianschlüssen im erlaubten und definierten Spanungsbereich sind. 
Das ist mit offenen unbeschalteten Pins nicht zuverlässig der Fall. Also 
solltest du wenigsten 1 der 3 Poti-Pins auf GND legen (laut Datenblatt: 
The voltage
on terminal B/A/W must be between V+ and V-).

Ich würde aber noch einen Schritt weiter gehen und den "oberen" 
Poti-Anschluss an Vcc und den unteren an GND legen, und dann am 
Schleifer die Spannung messen.

: Bearbeitet durch Moderator
von KArl Fred M. (Gast)


Lesenswert?

Und zur Frage weiter oben
"Kannst du Datenblatt lesen?"
nein, nicht wirklich gut, deshalb frage ich als blutiger Anfänger;-)


Wie müsste denn dann eine Testsequenz aussehen, damit überhaupt erstmal 
was pssiert?

Ich dachte einfach nur
0xFF
0xFF

sollte funktionieren laut den Beispielen im 8 Bit Modus
WLAT dauerhaft auf Masse

1
cs:=0;
2
  delay_ms(1);
3
         SPI1_Write(%01000011);
4
          SPI1_Write(0xFF);
5
6
  cs:=1;
7
  Delay_ms(100);

von KArl Fred M. (Gast)


Lesenswert?

hier würde ich erwarten das er nun den Wiper inkrementiert
1
While True DO
2
  Begin
3
 cs:=0;
4
  delay_ms(1);
5
         SPI1_Write(%00000100);
6
  cs:=1;
7
  Delay_ms(10);

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

KArl Fred M. schrieb:
> sollte funktionieren
Hast du gemessen, ob das Timing auf dem Bus zum Timing im Datenblatt 
passt?

Und wie hast du das Poti versorgt? Alle 4 Versorgungsanschlüsse sind 
angeschlossen?

von KArl Fred M. (Gast)


Lesenswert?

Ahhhhhh, so geht es:-)
Nun kann ich den Rest wieder notfalls durch probieren herausfinden:-)
Aber seit gestern war ich daran ...
1
While True DO
2
  Begin
3
 cs:=0;
4
  wlat:=0;
5
  delay_ms(1);
6
         SPI1_Write(%00000100);
7
          wlat:=1;
8
  cs:=1;
9
  Delay_ms(100);

von Andre G. (andgst01)


Lesenswert?

KArl Fred M. schrieb:
> While True DO
>   Begin
>  cs:=0;
>   wlat:=0;
>   delay_ms(1);
>          SPI1_Write(%00000100);
>           wlat:=1;
>   cs:=1;
>   Delay_ms(100);

Blöde Frage:
Was für eine Sprache ist denn das?

von Udo S. (urschmitt)


Lesenswert?

KArl Fred M. schrieb:
> Ach ja, und messen tu ich es indem ich an den Poti Ausgängen ein
> Multimeter angeschlossen habe. Ich vermute es benötigt keine
> Masseverbindung sondern verhält sich wirklich wie ein Poti, ist das
> richtig?

Ich habs geahnt.

Das Teil simuliert mit einer (komplexen) Elektronik einen Potentiometer.
Dazu benötigt es natürlich Masse und Versorgung, einen 
Abblockkondensator und den Rest siehe Datenblatt.

Nein, da hockt kein kleiner Chinese drin, hört mit was du auf die SPI 
Schnittstelle gibts und dreht dann den Poti entsprechend. :-)

von 1234 (Gast)


Lesenswert?

Andre G. schrieb:
> Blöde Frage:
> Was für eine Sprache ist denn das?

Pascal.

von KArl Fred M. (Gast)


Lesenswert?

Und nochmal als Feedback.
Ich hatte es dann auch noch mit dem Poti auf GND und V versucht und den 
Schleifer ans Multimeter.
Aber ich sehe gerade es funktioniert auch, wie gehofft, mit einem 
Multimeter.

Leider ist der kleinste Wert 530Ohm
Zur Steuerung eines Solarregler benötige ich leider werte bis hinunter 0 
:-(
Ausgerechnet diese Werte unter 500Ohn sind wichtig.
Ich werde wohl doch ein Poti mi einem Servo verbinden müssen...
Die Steuerung via PWM brachte aus irgendeinen nicht erfindlichen Grund 
keine Lösung.

von KArl Fred M. (Gast)


Lesenswert?

"Was für eine Sprache ist denn das?"

Die schönste aller Programmiersprachen:-)
Und dank Lazarus(FreePascal)auch heutzutage noch Up to Date

von KArl Fred M. (Gast)


Lesenswert?

Wenn im Datenblatt steht"Wiper resistance 75Ohm" sollte er dann nicht 
beim Vollanschlag 75Ohm haben und nicht 500?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

KArl Fred M. schrieb:
> Zur Steuerung eines Solarregler benötige ich leider werte bis hinunter 0
Mit recht hoher Wahrscheinlichkeit brauchst du das nicht.

Hast du ein Datenblatt dieses Reglers und dieser Schnittstelle? Nur, 
damit man selber mal schauen kann, was da eingestellt und verändert 
werden muss.


KArl Fred M. schrieb:
> Wenn im Datenblatt steht"Wiper resistance 75Ohm" sollte er dann nicht
> beim Vollanschlag 75Ohm haben und nicht 500?
Doch, wenn du die selben (Versorgungs- und Potential-)Bedingungen hast, 
wie sie dort in der Tabelle angegeben für die Ermittlung dieser 75 Ohm 
verwendet wurden.

: Bearbeitet durch Moderator
Beitrag #7142467 wurde von einem Moderator gelöscht.
von KArl Fred M. (Gast)


Lesenswert?

Nein darüber gibt es keine Daten.
Abe nur mit einem 250Ohm Poti komme ich halbwegs regelbar von 200-40W
Deshalb Logarithmisches Digitales Poti, in einer zweiten Stufe muss ich 
dann bis auf 10kOhm
Nur gerade der Bereich von 40-200W ist sehr wichtig halbwegs vernünftig 
regeln zu können da dort die größte Einsparmöglichkeit besteht
HAtte gehofft damit gehts:-(
Ich weiß von anderen auf Youtube das die es aus Verzweiflung mit einem 
poti und einem Servo gebaut haben, was icha ber natürlich auch versuche 
zu vermden, aber das verflixte ding ist echt schlecht regelbar (SUN GTIL 
2000)

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.