你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

[中秋活动]使用STM32L552驱动25R3916C操作NFC

[复制链接]
奇迹 发布时间:2021-9-20 00:43
题目说是操作,其实主要是移植。该芯片支持iic与spi两种操作方式,对于现在我使用的NFC06A1扩展板来说,默认即为spi模式,本文将记录下移植时需要注意的点.9 E. s1 T$ D2 {8 h! u# u/ l9 e
1.原理图4 V" o* w, A  z( e* ~3 G8 ^5 F& x% L
QQ截图20210920002529.png QQ截图20210920002542.png ( e+ f" A0 J4 W. E
扩展板引脚标注与实际板卡的引脚是不同的,这里需要根据实际修改一下。4 p* U$ }% q4 C

" |6 R8 k( @0 V4 x3 e, Z2.spi配置
4 ?7 d, n5 f; ^- X/ n( E QQ截图20210920002701.png 5 m. n1 t7 h! m; k! M4 ]# b7 L/ i
上图是本次移植中,笔者使用的配置,亲测可行
% G; X+ V; _& S3 C* \
/ I5 P7 k/ W) p0 B* a6 N3.外部中断配置
  x9 @% ~" V* {( L( b4 O% r
  1. /**- g. R$ l5 h) H. z$ \# [- m
  2.   * @brief This function handles EXTI line3 interrupt.& |, `( F8 [9 v/ ]& w
  3.   */
    ' F9 H# n% V3 j# a# I
  4. void EXTI3_IRQHandler(void). @' w# }. H$ g! j$ I
  5. {' @, }  e- C( u1 d
  6.   /* USER CODE BEGIN EXTI3_IRQn 0 */+ T5 ^/ T  A; d; ]

  7. 4 w2 j% X3 L$ h3 G0 T1 z0 n% q
  8.   /* USER CODE END EXTI3_IRQn 0 *// }; m# d* k# l
  9.   HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_3);
    . E. k. a: [6 c* R& X
  10.   /* USER CODE BEGIN EXTI3_IRQn 1 */3 k) Z2 H  v' O9 w0 {
  11.     st25r3916Isr();5 ~* P- p( ?5 G, N0 f# K+ K
  12.   /* USER CODE END EXTI3_IRQn 1 */
    * f. c* K: i( {' _0 W9 ~
  13. }
复制代码
需要在外部中断中加入st25r3916Isr();处理。注意:该函数操作了接口的读写,如果使用spi中断或者iic中断接受需要注意。建议使用操作系统的时候使用通知进行操作。3 r% y; n6 Q# _
; Q" \$ i. ^& p1 E( f. X6 b

: z$ g6 q$ Y( N: }" q7 K  w; J9 E( Z4.代码配置2 v$ B5 I# t" [2 c
基本所有的配置都集中在platform.h文件里面。下面代码是关于NFC支持相关功能的开关。" h/ M: B) j5 T6 |" a3 X
  1. #define RFAL_FEATURE_LISTEN_MODE               true       /*!< Enable/Disable RFAL support for Listen Mode                               */
    + H$ x0 I$ v$ j1 v- W  D( U/ Q
  2. #define RFAL_FEATURE_WAKEUP_MODE               true       /*!< Enable/Disable RFAL support for the Wake-Up mode                          */
    2 ]% ~( x- T( o3 Q: }$ V
  3. #define RFAL_FEATURE_NFCA                      true       /*!< Enable/Disable RFAL support for NFC-A (ISO14443A)                         */
    # a+ ^- K  B6 g1 {7 {4 I4 [
  4. #define RFAL_FEATURE_NFCB                      true       /*!< Enable/Disable RFAL support for NFC-B (ISO14443B)                         */
    . l6 i* S& S$ I# m2 i% ^
  5. #define RFAL_FEATURE_NFCF                      true       /*!< Enable/Disable RFAL support for NFC-F (FeliCa)                            */
    4 j  _  A4 v: |  m6 Z
  6. #define RFAL_FEATURE_NFCV                      true       /*!< Enable/Disable RFAL support for NFC-V (ISO15693)                          */
    ' R% P" X4 O! i% I! F
  7. #define RFAL_FEATURE_T1T                       true       /*!< Enable/Disable RFAL support for T1T (Topaz)                               */
    2 U/ k8 P- y; Z
  8. #define RFAL_FEATURE_T2T                       true       /*!< Enable/Disable RFAL support for T2T (Mifare)                              */
    , [( `0 }' x4 }! Z' e
  9. #define RFAL_FEATURE_T4T                       true       /*!< Enable/Disable RFAL support for T4T                                       */
    # o' ~2 P8 m3 F& f+ ^( Q
  10. #define RFAL_FEATURE_ST25TB                    true       /*!< Enable/Disable RFAL support for ST25TB                                    */
    7 U1 Q' v* V; A- E
  11. #define RFAL_FEATURE_ST25xV                    true       /*!< Enable/Disable RFAL support for  ST25TV/ST25DV                            */
    . ]5 s% w* d7 P
  12. #define RFAL_FEATURE_DYNAMIC_ANALOG_CONFIG     false      /*!< Enable/Disable Analog Configs to be dynamically updated (RAM)             */, ~6 H1 {- l. ]4 ~' z, ^: M
  13. #define RFAL_FEATURE_DPO                       false      /*!< Enable/Disable RFAL dynamic power support                                 */7 ~" N9 x6 K$ Y9 o3 }
  14. #define RFAL_FEATURE_ISO_DEP                   true       /*!< Enable/Disable RFAL support for ISO-DEP (ISO14443-4)                      */
    % o. s1 ^% C+ Z; H, X. B" R; r
  15. #define RFAL_FEATURE_ISO_DEP_POLL              true       /*!< Enable/Disable RFAL support for Poller mode (PCD) ISO-DEP (ISO14443-4)    */5 X3 v8 n" G2 t( j& }* ^: |7 O
  16. #define RFAL_FEATURE_ISO_DEP_LISTEN            true       /*!< Enable/Disable RFAL support for Listen mode (PICC) ISO-DEP (ISO14443-4)   */: P4 x% X. t# j# U& O6 b( B
  17. #define RFAL_FEATURE_NFC_DEP                   true       /*!< Enable/Disable RFAL support for NFC-DEP (NFCIP1/P2P)                      */" A; Y5 o' O; D* h3 h( |" @
  18.   K9 n, u$ C- C
  19. #define RFAL_FEATURE_ISO_DEP_IBLOCK_MAX_LEN    256U       /*!< ISO-DEP I-Block max length. Please use values as defined by rfalIsoDepFSx */
    ) L! q$ u8 f0 F: W& F
  20. #define RFAL_FEATURE_NFC_DEP_BLOCK_MAX_LEN     254U       /*!< NFC-DEP Block/Payload length. Allowed values: 64, 128, 192, 254           */
    4 A: ]1 D8 ~* x* w- U5 G
  21. #define RFAL_FEATURE_NFC_RF_BUF_LEN            258U       /*!< RF buffer length used by RFAL NFC layer                                   */4 o  o  t& F# Q
  22. : ~2 I) a  G' ^! V7 S* `, i% h
  23. #define RFAL_FEATURE_ISO_DEP_APDU_MAX_LEN      512U       /*!< ISO-DEP APDU max length. Please use multiples of I-Block max length       */
    4 `9 |/ _* D# f7 v
  24. #define RFAL_FEATURE_NFC_DEP_PDU_MAX_LEN       512U       /*!< NFC-DEP PDU max length.                                                   */
复制代码

) A# Z& ]8 U$ {: b( ~' U0 ]# I& C- h* i9 M( A. K* I( T7 j4 x. \$ L8 q3 M
效果演示:
: z) g. @$ g, O6 B; e6 W IMG_20210920_001819.jpg
4 T" v9 C( S! [读取M1卡卡号,不支持M1协议,但是支持NRFA。
' R4 p3 A" p4 @# j& R5 T) o! V4 M1 S4 d3 W# k' n5 T/ g# H
IMG_20210920_001842.jpg
0 S# j( @7 D( r4 `手机读取板子,识别为NFCF协议了,其实是因为手机啥都支持,读到的就看板子处在那种模式。7 ^( \# {6 A! W6 }6 p- W$ b
5 q* b8 A# ?9 B/ ]
QQ截图20210920001916.png " j% _9 D' V) J9 f7 b
相关打印
! g; t5 H4 W* J  a0 _. T" \" Y' Q% e' _6 X
最后附上程序,注:为了减小代码体积,删除了CMSIS的DSP相关文件- o' m$ A1 c/ s- s1 T
nfc.zip (6.59 MB, 下载次数: 0)
赞 收藏 评论0 发布时间:2021-9-20 00:43

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版