Android 在与MCP-4131进行SPI交易期间,IOIO锁定有任何解决方案吗?

Android 在与MCP-4131进行SPI交易期间,IOIO锁定有任何解决方案吗?,android,spi,ioio,Android,Spi,Ioio,我试图使用IOIO-RTG板通过SPI控制MCP-4131数字电位器。我是SPI新手,但我相信我已经遵循了SPI的例子。显然我可以设置一个阻力,但IOIO在之后仍然被卡住。继续的唯一方法是断开并重新连接到电路板。我注意到SPI示例需要一个MISO和MOSI引脚,而pot有一个组合SDI/SDO引脚。这是我的问题的根源吗 IOIO RTG IOIOLIb 0326 应用程序固件0506 引导加载程序固件0402 硬件Sprk 0020 我尝试实现异步事务,以避免等待响应,但最终结果是相同的。我在L

我试图使用IOIO-RTG板通过SPI控制MCP-4131数字电位器。我是SPI新手,但我相信我已经遵循了SPI的例子。显然我可以设置一个阻力,但IOIO在之后仍然被卡住。继续的唯一方法是断开并重新连接到电路板。我注意到SPI示例需要一个MISO和MOSI引脚,而pot有一个组合SDI/SDO引脚。这是我的问题的根源吗

IOIO RTG IOIOLIb 0326 应用程序固件0506 引导加载程序固件0402 硬件Sprk 0020

我尝试实现异步事务,以避免等待响应,但最终结果是相同的。我在Looper类内部和外部调用了highgear函数,没有任何更改

class Looper extends BaseIOIOLooper
 {
   SpiMaster spi;

   protected void setup() throws ConnectionLostException
   {
            int clkPin = 39;//left side = 36
            int misoPin = 38;//left side = 33, not expecting output
            int mosiPin = 38;//left side = 35


           spi = ioio_.openSpiMaster(new DigitalInput.Spec(misoPin,
           Mode.PULL_UP), new DigitalOutput.Spec(mosiPin),
            new DigitalOutput.Spec(clkPin),
            new DigitalOutput.Spec[] { new DigitalOutput.Spec(40), new DigitalOutput.Spec(37),  },
            new SpiMaster.Config(Rate.RATE_125k, true, true));
   }

   public void highgear()
        {
            byte[] request = new byte[] {0,0,0,0,0,5,5,5};
            byte[] response = new byte[4];
            try {
                SpiMaster.Result result = spi.writeReadAsync(0, request, request.length, 7, response, 0);                
            } catch (ConnectionLostException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
}

预期的结果是,具有所需阻力的MCP和IOIO将可用于进一步的指挥。没有错误,因为电路板只是在其设置配置中冻结。

MCP-4131的共享SDO/SDI引脚不应该是问题所在

从第31页的数据表中可以看出:“8引脚单电位计设备受引脚限制,因此SDO引脚与SDI引脚(SDI/SDO引脚)进行多路复用。收到地址/命令(前6位)后,如果请求了有效的读取命令,SDO引脚开始将请求的读取数据驱动到SDI/SDO引脚。”

只要您只向数字电位器写入,所有内容都应与其他SPI设备相同

您是否在其他SPI设备上尝试过您的代码,或者甚至没有连接其他SPI设备