adding software spi and spi hw/sw autodetection

This commit is contained in:
jason bruce
2023-11-30 15:05:53 -05:00
parent 100d5ccb6d
commit e1490187c7
3 changed files with 90 additions and 21 deletions
+22 -1
View File
@@ -7,6 +7,7 @@ import config
import os
import digitalio
import busio
import bitbangio
import statistics
log = logging.getLogger(__name__)
@@ -117,9 +118,29 @@ class TempSensorReal(TempSensor):
TempSensor.__init__(self)
self.sleeptime = self.time_step / float(config.temperature_average_samples)
self.temptracker = TempTracker()
self.spi = busio.SPI(config.spi_sclk, config.spi_mosi, config.spi_miso)
self.spi_setup()
self.cs = digitalio.DigitalInOut(config.spi_cs)
def hw_spi(self):
import board
if(hasattr(board,'SCLK') and
hasattr(board,'MOSI') and
hasattr(board,'MISO')):
if(board.SCLK == config.spi_sclk and
board.MOSI == config.spi_mosi and
board.MISO == config.spi_miso):
return board.SPI();
return None
def spi_setup(self):
self.spi = self.hw_spi()
if self.spi is None:
self.spi = bitbangio.SPI(config.spi_sclk, config.spi_mosi, config.spi_miso)
log.info("Software SPI selected for reading thermocouple")
else:
log.info("Hardware SPI selected for reading thermocouple")
def get_temperature(self):
'''read temp from tc and convert if needed'''
try: