-         
Ergebnis 1 bis 2 von 2

Thema: DS1722 SPI-Thermometer-IC ansprechen...

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594

    DS1722 SPI-Thermometer-IC ansprechen...

    Anzeige

    Hallo!

    Ich plage mich hier mit dem DS1722 rum, irgendwie mag er mich nicht.
    Das Datenblatt findet Ihr hier: http://datasheets.maxim-ic.com/en/ds/DS1722.pdf
    Die wichtigsten Infos habe ich mal ins Listing reingeschrieben, sollte eigentlich alles stimmen.
    Die SPI-Optionen habe ich schon alle getestet, hilft nicht.

    Die Ausgaben vom SPI sind immer alle 11111111.

    hat jemand ne Idee?
    Der Chip sollte bis 5 MHz SPI können.

    Code:
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    $hwstack = 32                                               'default use 32 for the hardware stack
    $swstack = 10                                               'default use 10 for the SW stack
    $framesize = 40                                             'default use 40 for the frame space
    
    '******* BYTE-ORDER *******
    'SPI MSB first   /   3-Wire LSB first
    Config Spi = Hard , Interrupt = On , Data Order = Msb , Master = Yes , Polarity = High , Phase = 0 , Clockrate = 4 , Noss = 0
    Spiinit
    
    '******* TEMPERATURE FORMAT *******
    'MSB                  LSB         MSB                  LSB
    ' 1  2  3  4  5  6  7  8  02h      1  2  3  4  5  6  7  8  01h
    ' S  6  5  4  3  2  1  0          -1 -2 -3 -4  0  0  0  0
    Dim Temp_lsb As Byte
    Dim Temp_msb As Byte
    Dim Config_in As Byte
    Dim Befehl As Byte
    
    '******* R/W ADDRESSES *******
    'Read Address     Write Address     Active Register
    '    00h              80h           Configuration
    '    01h          no access         Temperature LSB
    '    02h          no access         Temperature MSB
    Const Write_config = &H80
    Const Read_config = &H00
    Const Read_temp_lsb = &H01
    Const Read_temp_msb = &H02
    
    '******* CONFIGURATIONS *******
    'Configuration/Statur Register
    'MSB                  LSB
    ' 1  2  3  4  5  6  7  8
    ' 1  1  1 1-S R2 R1 R0 SD
    
    '   (1-S) 1SHOT - When set, one conversion will be made and stored in output-registers. Bit will reset to 0 then.
    ' (R0-R1) TERMO-RESOLUTION
    '         R2 R1 R0   Resolution      Max Conversion Time
    '         0  0  0       8-Bit             0.075s
    '         0  0  1       9-Bit (Default)    0.15s
    '         0  1  0      10-Bit               0.3s
    '         0  1  1      11-Bit               0.6s
    '         1  X  X      12-Bit               1.2s
    '    (SD) SHUTDOWN-BIT
    '         0 > continuous conversion
    '         1 > Last result saved, power-down-mode (default)
    Const Config_9bit_cont_conv = &B11100010
    Const Config_12bit_cont_conv = &B11101000
    
    'Print initial variable-values
    Print
    Print "-------------"
    Print "LSB  " ; Bin(temp_lsb)
    Print "MSB  " ; Bin(temp_msb)
    Print "CFG  " ; Bin(config_in)
    
    'Initiate configuration-write
    Befehl = Write_config
    Spiout Befehl , 1
    
    'Write config-register
    Befehl = Config_9bit_cont_conv
    Spiout Befehl , 1
    
    'Initiate configuration-read
    Befehl = Read_config
    Spiout Befehl , 1
    
    'Save configuration to Variable
    Spiin Config_in , 1
    
    Waitms 500
    
    Do
       'Request Temperature LSB
       Befehl = Read_temp_lsb
       Spiout Befehl , 1
       'Save to Variable
       Spiin Temp_lsb , 1
    
       'Request Temperature MSB
       Befehl = Read_temp_msb
       Spiout Befehl , 1
       'Save to Variable
       Spiin Temp_msb , 1
    
       Print "LSB  " ; Bin(temp_lsb)
       Print "MSB  " ; Bin(temp_msb)
       Print "CFG  " ; Bin(config_in)
       Wait 2
    Loop
    
    End

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594
    Hat keiner ne Idee?

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •