AS3933低频接收机的SPI问题

3个员额/0个新员额
最后一篇文章
伊坦姆
离线
最后一次见到:5年2周前
加入:2015-10-13 09:50
AS3933低频接收机的SPI问题

你好

我们正在尝试与基于SPI的低频LF接收机(AS3933)通信,
正如你可能猜到的,如果你正在读这篇文章,我们面临着一些问题。

以下是我们的设置:
o P0_0 SPI时钟
o P0_1 LF_启用(CS)
o P0_5味噌
o P0_6 MOSI

这是代码:
GPIO_配置引脚(GPIO_端口0,GPIO_引脚0,输出,PID_SPI_CLK,false);//时钟
GPIO_配置引脚(GPIO_端口0,GPIO_引脚1,输出,PID_SPI_EN,真);//CS
GPIO_配置引脚(GPIO_端口0,GPIO_引脚5,输入,PID_SPI_DI,false);//MISO
GPIO_配置引脚(GPIO_端口0,GPIO_引脚6,输出,PID_SPI_DO,false);//摩西
// …
spi_init(&cs_pad_参数,//注意:此点指向cs线的管脚和端口
SPI_模式_8BIT,
SPI_角色_主机,
SPI_CLK_IDLE_POL_LOW,
SPI_PHA_模式_1,
SPI_MINT_禁用,
SPI第8分部);

和一个简单的读取寄存器代码:
spi_cs_高();
spi_设置_位模式(spi_模式_8BIT);
spi_访问((uint8_t)(读取模式地址));
regval=(uint8_t)spi_访问(0x0000);//注意:regval始终为0xff
spi_cs_low();

现在,读取尝试总是返回0xff(地址0x50001202处的值),
我们确信这是错误的,因为我们试图读取一个默认值,它应该是0x0e。为了验证这一点,我们使用了逻辑,从逻辑的角度来看,一切都很好
(实际值0x0e是在MISO行上返回的),但是如上所述,代码总是从调用spi_access()返回0xff。

非常感谢。
伊坦·迈克尔森。

设备:
RvA
离线
最后一次见到:1周1天前
工作人员
加入:2014-02-07 14:10
嗨,伊坦,

嗨,伊坦,

感谢您的描述和逻辑捕获。您还可以制作通信的示波器图像吗?在这种情况下,我们可以仔细检查逻辑电平是否正常。您是否确保接地线是否正常?您是否已经制作了PCB,或者设计只是在两个DVK之间连接?谢谢!

RvA

巴斯瓦拉伊
离线
最后一次见到:4年11个月前
加入:2015-05-20 07:18
嗨,伊坦·迈克尔森。

嗨,伊坦·迈克尔森。

对于BMI055(加速计),我也遇到了同样的问题。

如果你已经解决了这个问题,请告诉我。

非常感谢。
巴斯瓦拉伊