根据ADI官方的驱动,移植到STM32F103上,使用软I2C,得到如下数据:
一次读取寄存器内所有数据:
00 0x54
01 0x00
02 0x00
03 0x00
04 0x00
05 0x00
06 0x00
07 0x00
08 0x00
09 0x00
10 0x00
11 0x00
12 0x00
13 0x00
14 0x00
15 0x00
16 0x00
17 0x00
18 0x00
19 0x00
20 0x00
21 0x00
22 0x00
23 0x00
每次读取一个寄存器值:
00 0x50
01 0x52
02 0x54
03 0x54
04 0x54
05 0x54
06 0x54
07 0x54
08 0x55
09 0x55
10 0x50
11 0x50
12 0x50
13 0x50
14 0x50
15 0x50
16 0x52
17 0x54
18 0x54
19 0x54
20 0x54
21 0x54
22 0x54
23 0x55
测试了两片样板,发现读的出SN和ID相同,且数据不稳定。可能是软I2C及AD7150驱动写的有问题,正在继续调试中……
----------------------------------------------
Board2:
00 0x50
01 0xff
02 0xff
03 0xff
04 0xff
05 0xff
06 0xff
07 0xff
08 0xff
09 0xff
10 0xff
11 0xff
12 0xff
13 0xff
14 0xff
15 0xff
16 0xff
17 0xff
18 0xff
19 0xff
20 0xff
21 0xff
22 0xff
23 0xff
------------------------------------
00 0x50
01 0x5f
02 0x40
03 0x30
04 0x20
05 0x5f
06 0x21
07 0x30
08 0x7e
09 0x08
10 0x86
11 0x0b
12 0x08
13 0x86
14 0x0b
15 0x19
16 0x00
17 0xc0
18 0xc0
19 0x22
20 0x2e
21 0xc7
22 0xfe
23 0x08
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
修改了软I2C时序后,得到上面的数据。单地址读取的数据应该是正确的,但连续地址读取结果有误。
修改软I2C的读字节子程序自后得到如下数据;
00 0x54
01 0x5f
02 0x30
03 0x30
04 0x90
05 0x5f
06 0x34
07 0x30
08 0x9a
09 0x08
10 0x86
11 0x0b
12 0x08
13 0x86
14 0x0b
15 0x19
16 0x00
17 0xc0
18 0xc0
19 0x22
20 0x2e
21 0xc7
22 0xfe
23 0x08
------------------------------------
00 0x50
01 0x5f
02 0x30
03 0x30
04 0x90
05 0x5f
06 0x34
07 0x30
08 0x9a
09 0x08
10 0x86
11 0x0b
12 0x08
13 0x86
14 0x0b
15 0x19
16 0x00
17 0xc0
18 0xc0
19 0x22
20 0x2e
21 0xc7
22 0xfe
23 0x08
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
运行官方参考代码,得到结果:
Read Serial Number and Chip ID.
SN=0x22-2E-C7-FE ID=0x08
Read out CAPDACs.
CAPDAC1=0xC0 CAPDAC2=0xC0
Write 0xAA to CAPDACs and read back.
CAPDAC1=0xAA CAPDAC2=0xAA
Reset AD7150 via reset command and read out CAPDACs.
CAPDAC1=0xC0 CAPDAC2=0xC0
Write 0x55 to CAPDACs and read back.
CAPDAC1=0x40 CAPDAC2=0x40
Reset AD7150 via general call and read out CAPDACs.
CAPDAC1=0xC0 CAPDAC2=0xC0
至此AD7150基本调试通过。
共1条
1/1 1 跳转至页
一直用的STM32F103ZET6,之前的工程都是可以用Keil的逻辑分析仪仿真,而且不会自动进入SystemInit()子程序。但这两天的工程都没有办法仿真,
共1条
1/1 1 跳转至页
回复
打赏帖 | |
---|---|
【STM32F769】调试SD驱动,由于其时钟配置不对引起的错误以及排查记录被打赏35分 | |
C语言函数宏的三种封装方式被打赏50分 | |
【STM32F769】记一次由于开启D-Cache之后DMA数据传输出错的问题查找与解决被打赏35分 | |
嵌入式LinuxC语言程序调试和宏使用技巧被打赏50分 | |
让代码中包含最新的编译时间信息被打赏50分 | |
【分享开发笔记,赚取电动螺丝刀】STM32F769LVGL优化显示被打赏26分 | |
rtthread硬件加密--2crc加密分析被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】STM32F769驱动ST7789以及显示优化被打赏36分 | |
【分享开发笔记,赚取电动螺丝刀】S32K146 PAL模拟I2C驱动适配被打赏23分 | |
我想要一部加热台+电源硬件设计规范被打赏16分 |