SPI bit banging; MCP3208; Raspberry;error -
- i using raspberry pi 2 board raspbian loaded. need spi bit banging & interface
mcp3208
. i have taken code github. written mcp3008(10 bit adc).
only change made in code instead of calling:
adcvalue = recvbits(12, clkpin, misopin)
i called adcvalue = recvbits(14, clkpin, misopin)
since have receive 14 bits of data.
problem: keeps on sending random data ranging 0-10700. though data should max 4095. means not reading data correctly.
i think problem mcp3208 has max freq = 2mhz, in code there no delay between 2 consecutive data read or write. think need add delay of 0.5us whenever need transition clock since operating @ 1mhz.
for small delay reading accurate delays on raspberry pi
excerpt:
...when need accurate short delays in order of microseconds, it’s not best way, combat this, after studying bcm2835 arm peripherals manual , chatting others, i’ve come hybrid solution wiringpi. delays of under 100μs use hardware timer (which appears otherwise unused), , poll in busy-loop, delays of 100μs or more, resort standard nanosleep(2) call.
i found py code simplify reading 3208 raresplescan. https://github.com/raresplescan/daisypi/blob/master/sense/mcp3208/adc_3.py
i had data logger build on pi, using 3008. cots data logger trying replicate had better resolution, started looking 12 bit , found 3208. literally swapped 3008 out 3208 , guys code have achieved better resolution cots data logger.
Comments
Post a Comment