- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 26

Thema: MAX31855 via SPI ansprechen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    31.05.2009
    Beiträge
    270
    Hallo Mario,

    die Temperaturerfassung ist doch nicht im ms-Takt notwendig.
    Wenn du die Ausreisser herausfilterst und gleichzeitig die Werte mittelst wird das für den Regler ausreichen.
    Selbst 10 Sekunden Zykluszeit würde reichen.
    mfG
    Willi

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.07.2012
    Beiträge
    201
    Hallo Willi,

    danke für deine Antwort.

    Da gebe ich dir Recht, aber die Zeit ist auch nicht das Problem (das war nur meine erste Vermutung). Betreibst du deine Module an 5V?
    Ich lese im Hauptprogramm die Temperatur alle 500ms aus und in deinem Programm jede Sekunde und trotzdem bekomme ich so wilde Werte das da auch mit Filtern nichts zu machen ist. (Im Hauptprogramm ist ein Filter drin)
    Selbst die Referenztemperatur passt überhaupt nicht mehr...

    Hier mal dein angepasster TestCode und ein paar Werte (bei Raumtemperatur ca. 22°C):Atmega328P_MAX31855.TXT

    Code:
    '*******************************************************************************.
    '*******************************************************************************
    '******************************** MAX31855 *************************************
    '*******************************************************************************
    '************************** 25.08.2020 by CYBORG *******************************
    '*******************************************************************************
    '*******************************************************************************
    
    $regfile = "m328pdef.dat"
    
    $crystal = 8000000
    $hwstack = 40
    $swstack = 40
    $framesize = 40
    
    Baud = 9600
    
    '*************************** UART - Interrupt **********************************
    
    Dim Iuart As Integer
    On Urxc Onrxd                     'Interrupt-Routine setzen
    Enable Urxc                      'Interrupt URXC einschalten
    Enable Interrupts               'Interrupts global zulassen
    
    '************************* I2C - DISPLAY 1602 **********************************
    
    $lib "YwRobot_Lcd_i2c.lib"       'My I2C driver for the LCD
    
    Const Pcf8574_lcd = &H4E         'Defines the address of the I/O expander for LCD
    Dim Lcd_backlight As Byte
    Lcd_backlight = 1                 'Hintergrundbeleuchtung einschalten (1/0)
    
    Config Scl = Portc.5             'Configure I2C SCL
    Config Sda = Portc.4             'Configure I2C SDA
    Config Lcd = 16 * 2              'nicht unbedingt nötig
    Config I2cdelay = 1
    
    Waitms 300                        'warte bis Kondensator bei Ta0 geladen, auch für LCD-Init!
    
    
    '**************************** SPI - MAX31855 ************************************
    
    Config Spi = Hard , Interrupt = Off , Data_Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 16  , Noss = 1
    
    Spiinit
    
    Config Portb.3 = Output
    Max_cs Alias Portb.3
    Max_cs = 1
    
    Dim Text11 As String * 40
    Dim Temp_s As Single
    
    Dim Element As Integer
    Dim Element_l As Byte At Element Overlay
    Dim Element_h As Byte At Element + 1 Overlay
    Dim Referenz As Integer
    Dim Referenz_l As Byte At Referenz Overlay
    Dim Referenz_h As Byte At Referenz + 1 Overlay
    
    print "Start"
    Locate 1 , 1
    Lcd "Start"
    wait 1
    
    '**************************** HAUPTSCHLEIFE ************************************
    
    Do
    
    
    Max_cs = 0
    Spiin Element_h , 1
    Spiin Element_l , 1
    Spiin Referenz_h , 1
    Spiin Referenz_l , 1
    Max_cs = 1
    
    cls
    
    Text11 = Bin(referenz)
    print text11
    Locate 1 , 8
    Lcd Text11
    
    Text11 = Bin(element)
    print text11
    Locate 1 , 1
    Lcd Text11
    
    Shift Referenz , Right , 4
    Temp_s = Referenz \ 16
    Text11 = Fusing(temp_s , "#.#")
    print text11
    Locate 2 , 1
    Lcd Text11
    
    
    Shift Element , Right , 2
    Temp_s = Element \ 4
    Text11 = Fusing(temp_s , "#.#")
    print text11
    Locate 2 , 8
    Lcd temp_s
    
    waitms 1000
    
    Loop
    
    end
    
    '**************************** UART - Interrupt *********************************
    
    Onrxd:
    
      Iuart = Udr
    
      Print "+++ Empfangen: " ; Iuart
    
      Select Case Iuart
      'RESET
      Case 123
         Print "+++ Reset: " ; Iuart
         Goto &H3C00       'M328
    
      Case Else
         Print "+++ Unbekannter Befehl: " ; Iuart
      End Select
    
    Return
    Wenn das die Lösung sein soll...
    ...will ich mein Problem zurück !!!

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    31.05.2009
    Beiträge
    270
    Zitat Zitat von dj_cyborg Beitrag anzeigen
    Betreibst du deine Module an 5V?
    Nein, die gesamte Schaltung wird mit 3,3V versorgt (wegen LCD).

    Auf deinem Modul scheint der Kondensator am Eingang zu fehlen.
    Löte doch mal einen 10 oder 100n an die Klemmstelle.
    mfG
    Willi

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.07.2012
    Beiträge
    201
    Meinst du den 10nF Kondensator zwischen T+ und T- ? Der ist nicht drauf nur der 0.1uF zwischen VCC und GND ist drauf.

    Ich teste das mal, Danke...

    Ich vermute aber mal dass das Modul doch nicht 5V kompatibel ist... Ich wüsste auch nicht wo der Level Shifter versteckt sein sollte.

    mfG
    Mario

    - - - Aktualisiert - - -

    Ich glaube bei meinen ist kein LevelShifter drauf (trotz Beschreibung)

    https://www.amazon.de/gp/product/B07...?ie=UTF8&psc=1

    bei dem hier wahrscheinlich schon

    https://www.ebay.de/itm/MAX31855-K-T....c100005.m1851

    Wenn das die Lösung sein soll...
    ...will ich mein Problem zurück !!!

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    31.05.2009
    Beiträge
    270
    Bild hier  Klicke auf die Grafik für eine größere Ansicht

Name:	MAX31855.jpg
Hits:	8
Größe:	27,5 KB
ID:	35227

    Der MAX31855 darf nur mit 3,3V betrieben werden (abs.Max. 4V)!
    Das kann man leicht dem Datenblatt entnehmen.
    mfG
    Willi

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.07.2012
    Beiträge
    201
    Der Chip ja aber das BreakoutBoard kann (wenn man auch das richtige bekommt) mit 3-5V betrieben werden...
    Wenn das die Lösung sein soll...
    ...will ich mein Problem zurück !!!

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    31.05.2009
    Beiträge
    270
    Wenn wir die ganze Zeit von diesem:

    https://www.amazon.de/gp/product/B07RYD35SJ/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1

    sprechen und auf der Rückseite keine weiteren Bauteile vorhanden sind ist das Board jetzt defekt.

    Auch auf diesem:

    https://www.ebay.de/itm/MAX31855-K-T....c100005.m1851

    ist kein "richtiger" Levelshifter erkennbar (wohl mit Widerständen realisiert),nur ein 3V3 Regler (immerhin!).

    Auch der Kondensator am Elementeingang scheint vorhanden zu sein.

    Ich drücke dir die Daumen...........
    mfG
    Willi

Ähnliche Themen

  1. LCD über I2C ansprechen
    Von Reissdorf im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 30.12.2012, 20:48
  2. RFM ansprechen
    Von runner02 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 11.03.2012, 12:01
  3. PCF 8474 ansprechen ?
    Von Goliath im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 23.03.2008, 15:17
  4. USB Ansprechen
    Von DHigh im Forum Software, Algorithmen und KI
    Antworten: 8
    Letzter Beitrag: 05.10.2006, 21:37
  5. RS232 ansprechen
    Von Goblin im Forum Software, Algorithmen und KI
    Antworten: 3
    Letzter Beitrag: 25.04.2005, 09:24

Stichworte

Berechtigungen

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

12V Akku bauen