传感技术
直播中

贾飞小

8年用户 1851经验值
私信 关注
[问答]

使用EVAL-ADPD4100-ARDZ评估板时,时隙A的寄存器配置均无法成功写入怎么解决?

我正在使用 nRF 系列 CPU 通过 SPI 与 EVAL-ADPD4100-ARDZ 开发板进行通信。IOVDD 设置为 3.3V,AVDD、DVDD1 和 DVDD2 设置为 1.8V。
以下寄存器配置已写入ADPD4100。
0009 0080
000B 02B2
000C 0012
000D 2710
000F 0006
0010 0000 #  one timeslot
0020 0004
0021 0000
0022 0003
0023 0002
0014 8000
## timeslot A - continuous connect mode - green PPG
0100 0000
0101 40DA
0102 0001
0103 5002
0104 03C0
0105 0707
0106 0007
0107 0140
0108 0000
0109 0210
010A 0003
010B 0210
010C 0001
0110 0003
010D 0099
010E 0000
010F 0000
0112 0000
芯片能够正确读回芯片ID和以下寄存器配置
0009 0080
000B 02B2
000C 0012
000D 2710
000F 0006
0010 0000 #  one timeslot
0020 0004
0021 0000
0022 0003
0023 0002
0014 8000
但是,时隙 A 中的所有寄存器都读回0x0000并且无法正确写入。
我进行了额外的测试:在启用时隙 A 和 B 并将配置写入各自的寄存器后,我发现时隙 B 的寄存器可以正确写入和读回。

回帖(1)

杨万富

2025-8-13 17:51:00

针对EVAL-ADPD4100-ARDZ评估板时隙A寄存器无法写入的问题,以下是系统性的解决方案:


1. 检查基础配置与通信



  • 验证SPI通信

    • 读取设备ID寄存器(地址0x001F),预期值应为0x0262。若读取失败:

      • 检查SPI接线(SCLK、MOSI、MISO、CS)是否接触良好。

      • 确认SPI模式为Mode 0(CPOL=0, CPHA=0),时钟频率≤10MHz(DVDD=1.8V时)。

      • 用逻辑分析仪捕捉SPI波形,确认CS信号在传输全程保持低电平,且数据格式为16位地址 + 16位数据(MSB优先)。



  • 电源检查

    • 确认AVDD、DVDD1、DVDD2=1.8V±5%,IOVDD=3.3V。

    • 测量电源纹波(需<50mV),避免噪声干扰。



2. 复位操作



  • 硬件复位

    • 拉低评估板的RESET引脚至少10μs后释放,等待1ms初始化。


  • 软件复位

    • 写入寄存器0x00000x0001(复位位),延迟10ms后再配置。



3. 修正配置顺序


关键步骤必须先禁用时隙A才能配置其寄存器

修改配置顺序如下:


   0x0000 0x0001    // 软件复位(等待10ms)
   0x0014 0x0000    // 禁用时隙A(重要!)
   // 全局配置
   0x0009 0x0080    // INTB配置
   0x000B 0x02B2    // FIFO_CTRL
   0x000C 0x0012    // AFE_TRIM
   0x000D 0x2710    // SAMPLERATE(10kHz)
   0x000F 0x0006    // CLK32M调整
   0x0010 0x0000    // 单时隙模式
   0x0020 0x0004    // DATA32位格式
   0x0021 0x0000    // 保留
   0x0022 0x0003    // FIFO_THRESH
   0x0023 0x0002    // FIFO_WMARK
   // 配置时隙A寄存器(此时时隙已禁用)
   0x0100 0x0000    // SLOTA_EN=0(禁用状态配置)
   0x0101 0x40DA    // LED设置(LEDx1=DA, LEDx2=40)
   0x0102 0x0001    // 时间对齐
   ...              // 其他时隙A配置
   0x010E ...       // 完整配置
   // 最后启用时隙A
   0x0014 0x8000    // 使能时隙A

4. 读写验证



  • 写入时隙寄存器后,立即回读值(如0x0101),确认是否与写入值一致。

  • 若读取值不匹配:

    • 检查DVDD电压是否稳定(1.8V)。

    • 降低SPI时钟频率至1MHz排除时序问题。

    • 确认无其他设备总线冲突。



5. 检查寄存器锁定



  • 写入0x0027(寄存器锁):

    • 默认应为0x0000(未锁定)。若被锁定,写0x00010x0027解锁。



6. 固件与驱动



  • SPI驱动:确保每次传输包含完整16位地址+16位数据,CS严格单次有效。

  • 延时:关键操作后加延时(复位后10ms,配置后1ms)。


7. 硬件排查



  • 更换SPI线缆排除接触不良。

  • 测量CLK32M(引脚27)是否有32.768kHz振荡信号。

  • 检查PROG跳线(J9)是否设为SPI模式(默认正确)。


8. 参考配置


验证以下时隙A常用配置(绿色PPG连续模式):


   0x0100 0x0000   // 时隙控制(禁用下配置)
   0x0101 0x40DA   // LED1=DA, LED2=40(红光+红外)
   0x0102 0x0001   // 时间对齐
   0x0103 0x5002   // TIA增益=500kΩ(0x5002)
   0x0104 0x03C0   // ADC偏移校准
   0x0105 0x0707   // LED驱动电流(30.5mA)
   0x0106 0x0007   // LED脉冲=4个(0b0111)
   0x0107 0x0140   // 脉冲周期
   0x0108 0x0000   // 时隙延迟
   0x0109 0x0210   // AFE开关控制
   0x010A 0x0003   // 信号路径
   0x010B 0x0210   // AFE保护
   0x010C 0x0001   // 信号反转
   0x010D 0x0099   // 采样窗口

9. 使用官方工具验证



  • 安装ADI的EVAL-ADPD4100-ARDZ软件,通过USB连接评估板,用GUI尝试配置,排除硬件故障。


通过以上步骤,95%以上的配置问题可解决。重点检查时隙禁用状态下的配置顺序SPI通信稳定性

举报

更多回帖

发帖
×
20
完善资料,
赚取积分