Zum Hauptinhalt springen Zur Suche springen Zur Hauptnavigation springen

ADC MCP3202 12Bit 2-Kanal SPI DIL8

Produktinformationen "ADC MCP3202 12Bit 2-Kanal SPI DIL8"

ADC MCP3202 12Bit 2-Kanal SPI DIL8

Leistungsdaten: 
Modell: MCP3202
Hersteller: verschiedene
Typ: Elektronik
Empfindlichkeit: Vdd=3.3V: 0.0-3.3V,  Vdd=5.0V: 0.0-5.0V, 
Auflösung: 12Bit 
Gehäuse: DIL8
Chip: MCP3202
Betriebsspannung: 2.7-5.5V DC
Schnittstelen: SPI (10-50kHz)
ADC-Auflösung: 12Bit
ADC-Kanäle: 2 
Technologie: CMOS (low Power Design)
Stromaufnahme: 0.5uA / 375uA
Ausgangssignal: Digitale Schnittstelle SPI
Temperaturbereich:  -40°C bis +85°C
Abmessungen: 2.8x1.7x0.3cm

Raspberry Pi Python Demo Code:
import machine
import utime
#############################################################
## MCP3202 ADC 12 Bit, mit 2 Kanälen, mit SPI Schnittstelle
## Demo Raspberry PICO
## MCP3202 Vcc: 2.7-5.5V, 12Bit, 2 Kanal, SPI 10-50kps
##
## /CS   1    **    8 VDD (& VRef)
## CH0  2            7 CLK
## CH1  3            6 D-OUT
## GND 4             5 D-IN
##
## RaspBeryy-PICO Wiering:
## RPI-4 GP2 --> MPC-7 CLK
## RPI-5 GP3 --> MPC-5 D-IN
## RPI-6 GP4 --> MPC-6 D-OUT
## RPI-7 GP5 --> MPC-1 /CS
## RPI-8 GND --> MPC-4 GND
## RPI-36 3.3V --> MPC-8 3.3V
##
## Timing-Init: /CS=0, CLK=0
## SPI: INIT /CS-Setzen, CLK=0, *CLK=1, CLK=0, D-OUT lesen.
## SPI: DATA 0->1 Write, 1->0 Read
## SPI: Total 17, CLK Zyklen für 17 Bit Ueberagung
## DIN: 1, 1 (1SINGEL/DIFF), 0 Kanal (Kan0), 1 (MSBF), ......
## DOUT: X,X,X,X,0,B11,B10,B9,B8,B7,B6,B5,B4,B3,B2,B1,B0

print ("ADC MCP3202 Demo")
led = machine.Pin(25, machine.Pin.OUT)
MCPCLK = machine.Pin(2, machine.Pin.OUT)
MCPDIN = machine.Pin(3, machine.Pin.OUT)
MCPDOUT = machine.Pin(4, machine.Pin.IN)
MCPCS = machine.Pin(5, machine.Pin.OUT)

MCPCS.off()        # Sicherheitsstart nach Power ON
MCPCS.on()        # Sicherheitsstart nach Power ON

def MCPCLKONOFF(): # Clock Puls senden 25MHz
         global MCPCLK # (Mind. 10MHz max. 50MHz)
         utime.sleep_us(10)
         MCPCLK.on()
         utime.sleep_us(20)
         MCPCLK.off()
         utime.sleep_us(10)

while True:                                                        # Endlos-Schleiffe
        led.toggle()                                               # LED OnBoard soll blinken
        utime.sleep(0.5)                                     # 2 Messungen pro Sekunde

        ## SPI-Init: /CS=0, CLK=0
        ## SPI-Data: /CS-Setzen, CLK=0, *CLK=1, CLK=0, D-OUT lesen. 1 1 0 1
        MCPADC0 = 0                                            # DatenWert variable starten mit 0
        MCPCLK.off()                                            # Clock Off zum starten
        MCPCS.off()                                               # Chip aktivieren

        for BitNo in range(17):                          # SPI Werte 0..16 (17)
                MCPDIN.off()                                     # Standard DataWrite = 0               
                # 1=Start, 1=Singelend, 0=Kanal, 1=MSB
                if (BitNo==0) or (BitNo==1) or (BitNo==3):    # Folgende Bits = 1
                        MCPDIN.on()                             # Data = 1
                MCPCLKONOFF()                            # Tackt Senden
                MCPADC0 = (MCPADC0 << 1)      # Bit schieben
                MCPADC0 = MCPADC0 + MCPDOUT.value()    # Daten Bit input laden

        MCPCS.on()                                              # Ende der Uebertragung
        ADC0V = round((MCPADC0 >> 1 & 4095)*3.3/0.4096)/10000 # Umrechnen
        print("ADC-Wert: "+str((MCPADC0>>1) & 4095),end="")
        print("   Kanal0: "+str(ADC0V)+"V    Bit: ",end="")
        for BitNo in range(17):                         # SPI 0..16 (17) Bits ausgeben
                print(str(MCPADC0 & 1)+" ",end="")
                MCPADC0 = (MCPADC0 >> 1)
        print("")                                                     # Ende, neue Linie

0 von 0 Bewertungen

Durchschnittliche Bewertung von 0 von 5 Sternen

Bewerten Sie dieses Produkt!

Teilen Sie Ihre Erfahrungen mit anderen Kunden.