Source code for DesignSpark.Pmod.MIC3

# -*- coding: utf-8 -*-
# Copyright (c) 2017 RS Components Ltd
# SPDX-License-Identifier: MIT License

"""
Interface for PmodMIC3 (ADCS7476 + Knowles Acoustics SPA2410LR5H-B).
"""

import spidev
CAP = 'SPI'
PHY = '1x6'


[docs]class PmodMIC3: MIC3_NO_BITS = 12 dReference = 3.3 def __init__(self, DSPMod6): self.port = DSPMod6 self.cs = self.port.pin1 self.nc = self.port.pin2 self.miso = self.port.pin3 self.sclk = self.port.pin4 self.spi = spidev.SpiDev() self.__startSPI() def __startSPI(self): if self.cs == 7: #CE1 self.spi.open(0,1) elif self.cs == 8: #CE0 self.spi.open(0,0) else: #throw exception here return self.spi.max_speed_hz = 100000 self.spi.mode = 0b00 def __stopSPI(self): self.spi.close() def __spiRead16(self): resp = self.spi.xfer2([0x00, 0x00]) w = resp[0] w <<= 8 w |= resp[1] return w
[docs] def readIntegerValue(self): return self.__spiRead16()
[docs] def readPhysicalValue(self): wIntVal = self.readIntegerValue() dVal = wIntVal* (self.dReference/((1<<self.MIC3_NO_BITS)-1)) return dVal
[docs] def cleanup(self): self.__stopSPI()