PSAM嵌入式驱动——GD32模拟01

发布时间 2023-09-25 22:58:45作者: 流水江湖

前言

本部分内容是前一篇《PSAM嵌入式驱动——原理》的后续篇,本节主要是以GD32F103为平台,模拟实现驱动部分。

一、背景

项目中以GD32F103为平台,

  • 主频72M
  • GPIO引脚四个:PSAM_VDD, PSAM_CLK, PSAM_RST, PSAM_IO
  •  

 

二、CLK和IO中断实现

 

1. CLK时钟实现


上节提到ISO中要求A类1-5MHz, B类1-4MHz, 占空比为 40%至60%,默认的频率是3.579MHz,这个频率经过卡内部分频器分频之后正好是9600bps。
原因如下:
在数据 I/O 上,一位数据所持续的时间叫做“基本时间单位”,简写为 etu。
etu是由 F 和 D 共同决定的,这两个值是在复位应答中给出的,F 为时钟分频因子,D为波特率调整因子。
其大小为 F/D 个时钟周期,这里的时钟指的是 CLK 触点上的时钟,
即 1etu =(F/D) * (1/f) ,
卡上电时默认F = 372, D = 1,
所以1etu = 372/3.579Mhz = 103us,
也就是每一位是103us,对应波特率为9600.

一般模拟中多采用4MHz,
对于MCU而言,通过主时钟分频或PWM都可以,
本项目中采用PWM,占空比50%,比较简单,
但对于用逻辑分析仪抓数时,此时对应的波特率就要调整为:4000000 / 372 = 10752
且别忘了是偶校验,如下图。