SPI-Verfahren

#6891956
Lesenswert?

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?
Gast #6891983
Lesenswert?

1
class MCP3008:
2
    def __init__(self, bus = 0, device = 0):
3
        self.bus, self.device = bus, device
4
        self.spi = SpiDev()
5
        self.open()
6
        self.spi.max_speed_hz = 1000000 # 1MHz
7
 
8
    def open(self):
9
        self.spi.open(self.bus, self.device)
10
        self.spi.max_speed_hz = 1000000 # 1MHz
11
    
12
    def read(self, channel = 0):
13
        cmd1 = 4 | 2 | (( channel & 4) >> 2)
14
        cmd2 = (channel & 3) << 6
15
 
16
        adc = self.spi.xfer2([cmd1, cmd2, 0])
17
        data = ((adc[1] & 15) << 8) + adc[2]
18
        return data
19
            
20
    def close(self):
21
        self.spi.close()

an beiden CS ist 3,3v
Gast #6892003
Lesenswert?

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?
#6892148
Lesenswert?

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.
#6892302
Lesenswert?

> 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
Gast #6892392
Lesenswert?

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.
(Firma: Hobbytheoretiker) #6892405
Lesenswert?

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.
Gast #6892522
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren