AS3933 LF接收器的SPI问题

3个帖子/ 0个新帖子
最后发表
eitanm
离线
最后看到:5年2个月前
加入:2015-10-13 09:50
AS3933 LF接收器的SPI问题

你好,

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

下面是我们的设置:
o P0_0 SPI时钟
o P0_1 LF_Enable (CS)
o P0_5味噌
o P0_6莫西人

下面是代码:
GPIO_ConfigurePin(GPIO_PORT_0, GPIO_PIN_0, OUTPUT, PID_SPI_CLK, false);/ /时钟
GPIO_ConfigurePin(GPIO_PORT_0, GPIO_PIN_1, OUTPUT, PID_SPI_EN, true);/ / CS
GPIO_ConfigurePin(GPIO_PORT_0, GPIO_PIN_5, INPUT, PID_SPI_DI, false);/ /味噌
GPIO_ConfigurePin(GPIO_PORT_0, GPIO_PIN_6, OUTPUT, PID_SPI_DO, false);/ /莫西人
/ /……
注意:这个指向CS线的引脚和端口
SPI_MODE_8BIT,
SPI_ROLE_MASTER,
SPI_CLK_IDLE_POL_LOW,
SPI_PHA_MODE_1,
SPI_MINT_DISABLE,
SPI_XTAL_DIV_8);

和一个简单的读寄存器代码:
spi_cs_high ();
spi_set_bitmode (SPI_MODE_8BIT);
spi_access ((uint8_t) (READ_MODE |地址));
regval = (uint8_t) spi_access (0 x0000);//注意:regval总是0xff
spi_cs_low ();

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

谢谢你!
埃坦Michaelson。

设备:
RvA
离线
最后看到:2个月6天前
工作人员
加入:2014-02-07 14:10
嗨,搞清楚,

嗨,搞清楚,

感谢您的描述和逻辑捕获。你也能制作一个通信的示波器图像吗?在这种情况下,我们可以再次检查逻辑层是否正常。还有,你确定接地线没有问题吗?例如,你是否已经制作了PCB,或者设计只是在两个dvk之间连接?谢谢!

RvA

Baswaraj
离线
最后看到:5年1个月前
加入:2015-05-20 07:18
埃坦嗨Michaelson。

埃坦嗨Michaelson。

我在BMI055(加速计)上也遇到了同样的问题。

如果你们解决了这个问题,请让我知道。

谢谢你!
Baswaraj