JN5168的SPI使用

前言

在使用NXP的这狂JN5168芯片时,使用它的一些外围接口总是用的有点懵,网上的资料又特别小,毕竟是一款比较
小众的芯片。在使用SPI的时候,需要复用SPI引脚,因为该芯片只有一个SPI接口。因此写下一些调试心得。

实际使用

在使用时,需要用一组## 标题SPI口先驱动AS3933,配置完成后,继续用SPI口来驱动另外一个芯片.

SPI复用规则口线复用图
上面两个图片表示了口线的复用以及SPI的复用规则,我们这里选择的是CS0接DW1000以及CS2接AS3933。

如何插入一段漂亮的代码片

#define CS_DEV           2                      //片选线2
#define CS_ENABLE_MASK  (1 << CS_DEV)  /*active the appropriate bit for CS line DIO1*/
 vAHI_SpiConfigure(CS_DEV, E_SPI_MSB_FIRST, E_AHI_SPIM_TXPOS_EDGE, E_AHI_SPIM_RXNEG_EDGE, E_SPI_CLOCK_2M, FALSE, FALSE);
    //vAHI_SpiRegisterCallback(SPIReceiveinterrupt);
vAHI_SpiSelSetLocation(E_AHI_SPISEL_2,FALSE);
 vAHI_SpiSelect(CS_ENABLE_MASK);

这是配置片选2,也是AS3933的引脚,配置完这个之后就可以往AS3933传输信息。

    vAHI_DioSetDirection(0,E_AHI_DIO1_INT);
    vAHI_DioSetOutput(0,E_AHI_DIO1_INT);        //复用完DIO1,需要配置成普通IO口

非常重要的一点,就是复用完之后要配置成普通IO口,不然到时在用另外一个的使用,会有干扰,导致一些错误。

    vAHI_SpiSelect(0);	//拉高片选
    vAHI_SpiStartTransfer(0xf,(uint32)sendvalue);
    vAHI_SpiWaitBusy();
    readvalue=(uint16)u16AHI_SpiReadTransfer16();
    vAHI_SpiSelect(CS_ENABLE_MASK);		//拉低片选

SPI的时序生成上面的代码可以看出。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值