Raspberry pi SPI钻头撞击;MCP3208;覆盆子;错误 我使用树莓皮2板与树莓加载。需要通过位碰撞和接口进行SPIMCP3208

Raspberry pi SPI钻头撞击;MCP3208;覆盆子;错误 我使用树莓皮2板与树莓加载。需要通过位碰撞和接口进行SPIMCP3208,raspberry-pi,spi,Raspberry Pi,Spi,我已经吃过了。它是为MCp3008(10位adc)编写的 我在代码中所做的唯一更改是,不调用: adcValue=recvBits(12,clkPin,misoPin) 我调用了adcValue=recvBits(14,clkPin,misoPin),因为我必须接收14位的数据 问题:它不断发送0-10700之间的随机数据。即使数据最大值应为4095。这意味着我没有正确读取数据 我认为问题在于MCP3208的最大频率为2Mhz,但在代码中,两次连续数据读取或写入之间没有延迟。我想我需要添加一些0

我已经吃过了。它是为MCp3008(10位adc)编写的

  • 我在代码中所做的唯一更改是,不调用:

    adcValue=recvBits(12,clkPin,misoPin)

  • 我调用了
    adcValue=recvBits(14,clkPin,misoPin)
    ,因为我必须接收14位的数据

  • 问题:它不断发送0-10700之间的随机数据。即使数据最大值应为4095。这意味着我没有正确读取数据

  • 我认为问题在于MCP3208的最大频率为2Mhz,但在代码中,两次连续数据读取或写入之间没有延迟。我想我需要添加一些0.5us的延迟,每当我需要转换时钟时,因为我的工作频率是1Mhz

  • 我目前正在阅读一篇文章

  • 摘录:

    …当我们需要精确的微秒级短延迟时 并不总是最好的方法,所以在研究BCM2835之后,要解决这个问题 ARM外设手册,和别人聊天,我想出了一个 wiringPi的混合解决方案。我现在所做的是为不到一个月的延误 100μS我使用硬件定时器(在其他方面似乎未使用), 并在繁忙的循环中轮询它,但对于100μS或更大的延迟,则 求助于标准的nanosleep(2)通话


    多亏了RaresPlescan,我终于找到了一些py代码来简化3208的读取。


    我有一个基于pi的数据记录器,它使用的是3008。我试图复制的COTS数据记录器具有更好的分辨率,因此我开始寻找12位,并找到了3208。我将3008换成了3208,通过这段代码,我获得了比COTS数据记录器更好的分辨率。

    Hi palu,我使用CRO进行了检查。确切的问题是python中的位绑定非常慢。我必须把C和它混合在一起才能做到这一点。就像我在这里一样。现在就想弄清楚。当我接通电话时,我会回来和大家分享密码。