完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嘿,
在我的公司,我们想使用 PN5190 RFID 阅读器与 STM32 MCU 一起工作。不幸的是,当我尝试通过 SPI 与它通信时,我无法从 PN5190 得到答案。问题是 PN5190 的文档在涉及 spi 通信的结构时似乎有点不精确(或者我只是没弄对)。所以我不能百分百确定我是否只是以错误的方式与芯片通信,或者硬件是否存在其他问题。因此,我使用逻辑分析器(SendDieIDCmd_Logic_Analyzer.png 和 RcvDieID_Logic_Analyzer.png)跟踪了我的传出 SPI 通信。我希望有人能告诉我我的 spi 消息是否有误,或者它们是否应该工作,也许存在一些与硬件相关的问题。不幸的是,我没有评估板,而且 PN5190 评估板目前缺货。 所以我们使用的PN5190电路如RFID_circuit.png所示。我们使用 3.8V 电源 (VSYS1)。启动后,我首先将 VEN 引脚设置为高电平以启用芯片。之后我尝试获取 Die ID。但我总是收到 0xFF。我还尝试获取版本或写入和读取寄存器,如指令层数据表附录 A“示例”。但它们都不起作用。我还看到我从未收到来自 IRQ 引脚的任何中断。 这是我的代码看起来像读取 DieID(简化): /* TLV Header */ uint8_t MSG_FLOW_WRITE = 0x7F; uint8_t MSG_FLOW_READ = 0xFF; /* PN5190 Command/Response List */ uint8_t CMD_GET_DIEID = 0x26; uint32_t tiMEOUT_SPI = 100; /* Enable VEN Pin */ gpioRfidEn.WriteHigh(); /* Get Die ID * send: 0x7F, 0x26, 0x00, 0x00 * recv: 0xFF, 0x26, 0x00, 0x03, 0x??, 0x??, 0x?? */ uint16_t length = 0; uint8_t* pLength = (uint8_t*)&length; uint8_t writeBuf[] = { MSG_FLOW_READ, CMD_GET_DIEID, pLength[1], pLength[0] }; uint8_t readBuf[7] = { 0 }; rfidSpi.CsLow(); rfidSpi.Transmit(writeBuf, sizeof(writeBuf), TIMEOUT_SPI); rfidSpi.CsHigh(); osDelay(100); rfidSpi.CsLow(); rfidSpi.Receive(readBuf, sizeof(readBuf), TIMEOUT_SPI); rfidSpi.CsHigh(); 我希望至少有人能给我一个提示,问题是我构建消息的方式。如果您需要更多信息,请告诉我。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1932个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36419 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4849 浏览 1 评论
6106 浏览 1 评论
6816 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4247 浏览 0 评论
642浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
639浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
640浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
727浏览 2评论
842浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 13:03 , Processed in 1.690391 second(s), Total 77, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号