Ich habe zwei ad-wandler(slaves) der mit einem master kommuniziert.
Allerdings werden bei einem die Bits nicht richtig übertragen obwohl
gleich programmiert und angeschlossen. Am chip select liegt 3,3v an
Wenn die SPI-Lib eine Black-Box ist, kann man das SPI auch zu Fuß
programmieren mit Bit setzen, Bit löschen Befehlen. Dann kann man es
exakt so ablaufen lassen, wie es im Timingdiagramm im Datenblatt
abgebildet ist. Eventuell muß man die Delayfunktion benutzen, damit die
Signale nicht zu schnell sind.
Geht es immer noch um den MCP3008?
Chip select ist üblicherweise Low Aktiv, d.h. damit der Chip ausgewählt
ist, sollte 0V (bzw. ein Low level Pegel entsprechend dem Datenblatt) an
dem Pin anliegen.
richard schrieb:> Ich habe zwei ad-wandler(slaves) der mit einem master kommuniziert.> Allerdings werden bei einem die Bits nicht richtig übertragen obwohl> gleich programmiert und angeschlossen. Am chip select liegt 3,3v an
Mit Logic Analyzer prüfen was auf dem SPI wirklich passiert.
Chipselect macht man immer selber, weil die SPI-Bibliothek nicht weiss,
welchen GPIO man nimmt.
Wo wird in dem Code der Chip-Select geschaltet? Das finde ich nicht.
richard schrieb:> an beiden CS ist 3,3v
Wie Johannes M. schon gesagt hat: bei dem IC mit dem du kommunizieren
willst muss CS auf 0V gezogen werden, bei allen anderen auf 3.3V damit
sie diese Kommunikation nicht stören.
richard schrieb:> Ich habe zwei ad-wandler(slaves)
Vielleicht hängst du dich an den bereits laufenden Thread mit dran.
Da geht es um genau das gleiche Problem.
Beitrag "Raspberry - AD-Wandler"richard schrieb:> an beiden CS ist 3,3v
Damit wirst du den Wandler nicht ansprechen können. Der erwartet 0V,
weil der Eingang invertierend arbeitet.
Mit welcher Spannung betreibst du den MCP3008?
Verwendest du den für den MCP3008 passenden SPI-Mode?
richard schrieb:> das finde ich selber nicht habe es nicht geschrieben
Dann nimm einen Logikanalysator und gucke, was auf dem Bus los ist -
erst mit jeweils nur einem der beiden ADCs angeschlossen und dann mit
beiden.
Lothar M. schrieb:> M. K. schrieb:>> Schaltplan und Code wären sicher hilfreich ;)> Bekannt aus Funk und Fernsehen und dem> Beitrag "AD Wandler misst falsch" sowie dem> Beitrag "Raspberry - AD-Wandler"
Ja, jedes mal das gleiche Problem, aber immer unzureichend beschrieben,
jedes mal heißt er anders, jedes mal ignoriert er die Antworten. Also
ganz offensichtlich ein Troll.
richard schrieb:> würde gerne einen anderen GPIO verwenden
Ja, die Doku ist extrem mager.
Schau mal in die Kommentare:
"wenn du CS1 statt CS0 verwendest, musst du device auf 1 ändern."
> Ja, die Doku ist extrem mager.> Schau mal in die Kommentare:> "wenn du CS1 statt CS0 verwendest, musst du device auf 1 ändern."
meine nicht den Slave sondern mein Cs0 hängt an Gpio8 und womöglich ist
der ja kaputt. Der drübere Gpio25 würd ich verwenden. aber iwo im
Programm muss ich ja dann das hinterlegen, also iwo eine 8 zu 25 machen
Sebastian M. schrieb:> und womöglich ist der ja kaputt.
Das kann man Messen. Gibt einfach mal eine Dauer-'0' an diesem Pin aus.
Und dann eine Dauer-'1'. Und miss, ob das Ding reagiert.
Und nicht vergessen: nur 1 Benutzername pro Thread!
Siehe die simplen Nutzungsbedingungen
Schon wieder ein neuer Thread zum selben Thema. Wozu soll das gut sein?
Also ich habe die Nase voll, ich finde das Verhalten des TO Respektlos
(nicht nur wegen dem 3. Thread).
Ich habe das Gefühl, da macht jemand nur copy & paste und wundert sich
dann, dass nichts geht.
Eigentlich sollte davor ein paar Basics kommen:
Was ist ein GPIO, wie programmiere ich den.
Was ist ein SPI-Bus, und wie funktioniert der.
Und davor noch: was ist eine Programmiersprache, und wie erstelle ich
selber Code.
Programmieren ist mehr als copy & paste.
Erstmal verlinke ich hier noch mal auf die nun geschlossenen Threads.
Dort sind einige Bilder zu sehen.
Hier wäre kurz nach dem Beginn die Schemaschaltung aufgeführt:
Beitrag "AD Wandler misst falsch"
Hier sind einige Bilder vom Aufbau, die nicht ausgelassen werden
sollten:
Beitrag "Raspberry - AD-Wandler"
Hauptsächliche Fehler wären zum Beispiel fehlende Kondensatoren zur
Glättung, bzw. Störungsminimierung.
Zu erwähnen wäre noch der Kabelwulst auf den Bildern. Es ist sehr
wahrscheinlich, dass Du noch EMV-Problem in dem Aufbau hast. Auf den
GPIO-Leitungen befinden sich viele kleine Klicks, die stören können. Es
gibt zum Beispiel sogar für die kleinen µC Anleitungen, dass bestimmte
Befehle und Routinen deshalb parallel unterlassen werden sollen, weil
dessen eigenen internen Klicks beim Messen stören.
In so eine Problematik scheinst Du voll hineingerasselt zu sein.
Stefan ⛄ F. schrieb:> Schon wieder ein neuer Thread zum selben Thema. Wozu soll das gut sein?
Ja, finde ich auch! Hat offensichtlich keinen Zweck...
Rainer
Sebastian M. schrieb:> meine nicht den Slave sondern mein Cs0 hängt an Gpio8 und womöglich ist> der ja kaputt. Der drübere Gpio25 würd ich verwenden. aber iwo im> Programm muss ich ja dann das hinterlegen, also iwo eine 8 zu 25 machen
Das ist keine Konfiguration, die im Programm gemacht wird! Zumindest
nicht beim RasPi, da ist der Kernel-Treiber für sowas zuständig.
Wie man das konfiguriert darfst Du selber nachlesen:
https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#spi-software
Lothar M. schrieb:> M. K. schrieb:>> Schaltplan und Code wären sicher hilfreich ;)> Bekannt aus Funk und Fernsehen und dem> Beitrag "AD Wandler misst falsch" sowie dem> Beitrag "Raspberry - AD-Wandler"
Man nennt das auch Multithreading...
Magnus M. schrieb:> Jetzt ist ENDLICH klar wer sich hinter den drei Gastnamen und unnötigen> Threads versteckt.
Es würde mich nicht wundern, wenn er auch noch der "Forenfreund" wäre.
Eine eigene Frage?
Dieser Thread ist über 4 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.