diff --git a/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/34SPI.png b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/34SPI.png new file mode 100644 index 0000000000000000000000000000000000000000..aa83a2826198edb48b266fce334e184a642b1833 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/34SPI.png differ diff --git a/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/35SPI.png b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/35SPI.png new file mode 100644 index 0000000000000000000000000000000000000000..aa83a2826198edb48b266fce334e184a642b1833 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/35SPI.png differ diff --git a/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/36SPI.png b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/36SPI.png new file mode 100644 index 0000000000000000000000000000000000000000..f84aa354efc6b8ea4fa0f78abe9cc9d8d7ad607a Binary files /dev/null and b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/36SPI.png differ diff --git a/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/37SPI.png b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/37SPI.png new file mode 100644 index 0000000000000000000000000000000000000000..e46c003b0b32251ba889cec50a589f92c6ec38b7 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/37SPI.png differ diff --git a/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/38SPI.png b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/38SPI.png new file mode 100644 index 0000000000000000000000000000000000000000..e90549facd32a061594ef49c051b4753c10a945e Binary files /dev/null and b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/38SPI.png differ diff --git a/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/39SPI.png b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/39SPI.png new file mode 100644 index 0000000000000000000000000000000000000000..fa2391c7421372f032fb3e62e8f8210341a66230 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/39SPI.png differ diff --git a/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/40SPI.png b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/40SPI.png new file mode 100644 index 0000000000000000000000000000000000000000..727a6b4a1d0efd056fc003fe116c88f31fbdd637 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/40SPI.png differ diff --git a/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/41SPI.png b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/41SPI.png new file mode 100644 index 0000000000000000000000000000000000000000..ac36903fb5b881fcee4754314a5b668eb9ea592e Binary files /dev/null and b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/41SPI.png differ diff --git a/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/42SPI.png b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/42SPI.png new file mode 100644 index 0000000000000000000000000000000000000000..856951ec18822f89b22e53512d6b8deb667ebb38 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/42SPI.png differ diff --git a/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/43SPI.png b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/43SPI.png new file mode 100644 index 0000000000000000000000000000000000000000..c3f085924aaac587e97a51c67dba0a64ccda1778 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/43SPI.png differ diff --git a/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/44SPI.png b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/44SPI.png new file mode 100644 index 0000000000000000000000000000000000000000..018859cc6e20bd01866b623c34c5c9a75220027a Binary files /dev/null and b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/44SPI.png differ diff --git a/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/45SPI.png b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/45SPI.png new file mode 100644 index 0000000000000000000000000000000000000000..abddad9d11c45e40fe5ed3de4be08b4160d867e0 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/45SPI.png differ diff --git a/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/46SPI.png b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/46SPI.png new file mode 100644 index 0000000000000000000000000000000000000000..9da077e48e1ce8c032407f8ececefbec74681ea0 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/46SPI.png differ diff --git a/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/47SPI.png b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/47SPI.png new file mode 100644 index 0000000000000000000000000000000000000000..aeb6a25148adef3efb2e2d124fee8a70512de58c Binary files /dev/null and b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/47SPI.png differ diff --git a/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/48SPI.png b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/48SPI.png new file mode 100644 index 0000000000000000000000000000000000000000..5278edd0c0143d693d5d1469542cf44c4a5b40f9 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/48SPI.png differ diff --git a/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/49SPI.png b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/49SPI.png new file mode 100644 index 0000000000000000000000000000000000000000..f1492331dd7c499e5d200a7f2c7b14fc3b4fab30 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/49SPI.png differ diff --git a/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/50SPI.png b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/50SPI.png new file mode 100644 index 0000000000000000000000000000000000000000..31f4a1bccde97ea3fbbbac9297422328bb095817 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/50SPI.png differ diff --git a/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/51SPI.png b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/51SPI.png new file mode 100644 index 0000000000000000000000000000000000000000..2f4a4cf1c20110ee668482e0ae9a7c002148bdd3 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/51SPI.png differ diff --git a/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/52SPI.png b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/52SPI.png new file mode 100644 index 0000000000000000000000000000000000000000..3385b9a813ed06743ace81a2946ed8246f740838 Binary files /dev/null and b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/figures/52SPI.png differ diff --git "a/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/\350\213\261\351\243\236\345\207\214XMC7200\345\256\236\350\267\265\346\214\207\345\215\227.md" "b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/\350\213\261\351\243\236\345\207\214XMC7200\345\256\236\350\267\265\346\214\207\345\215\227.md" index cb4d3fdf4d43df7ec6f0d63e68436be9c80b50b7..cef1796f4f453ddf6cc872c986e1ba33b0887cee 100644 --- "a/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/\350\213\261\351\243\236\345\207\214XMC7200\345\256\236\350\267\265\346\214\207\345\215\227.md" +++ "b/rt-thread-version/rt-thread-standard/tutorial/make-bsp/ifx-XMC7200/\350\213\261\351\243\236\345\207\214XMC7200\345\256\236\350\267\265\346\214\207\345\215\227.md" @@ -13,7 +13,7 @@ ## 硬件介绍 1. 开发板描述: XMC7200是英飞凌推出的一款32位双核CPU子系统(ARM Cortex-M7 和 ARM Cortex-M0)的开发板。该XMC7200D专为工业应用而设计,是一款真正的可编程嵌入式片上系统,集成了多达两个 350MHz Arm® Cortex-M7® 作为主应用处理器,一个 100MHz Arm® Cortex-M0®+ 。 2. 开发板外观如下图所示: - ![xmc700](figures/1board.png) + ![xmc700](figures/1board.png) 3. 芯片特点: - 单通道/双通道 350-MHz Arm® Cortex®-M7 和 Cortex®-M0+ @@ -380,7 +380,101 @@ int main(void) { } ``` -## 2.原文连接 +## 2.SPI实践 + +原计划使用SPI驱动ADIS16467-2,这是一个ADI的精密陀螺仪,在STM32上已经有完整实现,计划在本次实践中使用XMC7200嵌入RTT官方BSP,但是始终无法驱动起来。sendandsend函数逻分显示是正确的,但是使用RTT BSP传输波形,不知道为什么会在后面有BA0,发送的是E880。 +![](figures/34SPI.png) + +![](figures/35SPI.png) + +### 2.1.分析波形 + +使用ST官方HAL库,ADIS16467可正常运行,驱动链接:GitHub - WwWangGuan/ADIS16467-2: ADIS16467-2的STM32驱动程序 + +![](figures/36SPI.png) + +该函数使用的寄存器如图所示: + +![](figures/37SPI.png) + +正确的读取数据如下图所示: + +![](figures/38SPI.png) + +下图为逻分捕捉波形(rangeModel读取): + +![](figures/39SPI.png) + +即正常波形为:Master发送5E00,从机回答07; + +![](figures/40SPI.png) + +![](figures/41SPI.png) + +接下来是写寄存器: + +![](figures/42SPI.png) + +此函数的目的是为了系统启动时重启陀螺仪(写值0x1000 0000/0x80h): + +![](figures/43SPI.png) + +对于每一个16位的数据,写寄存器之前先将最高位置1,然后加上寄存器地址到高八位,低八位是用户要写的数据。逻辑分析仪的波形如下: + +![](figures/44SPI.png) + +函数实现如下: + +![](figures/45SPI.png) + +上述代码可以分为以下三步: + +1. 地址先或一个0x80h(0x1000 0000),因为要写寄存器。 +2. 地址左移8位,”或“上用户数据 +3. 开始通信 + +### 2.2.RT-Thread SPI设备驱动框架测试 + +![](figures/46SPI.png) + +![](figures/47SPI.png) + +换用rt_spi_transfer,能发出去,但是未收到数据: + +![](figures/48SPI.png) + +![](figures/49SPI.png) + +感觉是API调的不对,尝试更换API,更换rt_spi_transfer_message有效: + +```c +uint16_t ADI_flame_TandR(ADIS16467_T *imu, uint16_t trans) { + uint16_t result; + struct rt_spi_message msg1,msg2; + msg1.send_buf = &trans; + msg1.recv_buf = &result; + msg1.length = 1; + msg1.cs_take = 1; + msg1.cs_release = 1; + msg1.next = RT_NULL; + rt_spi_transfer_message(imu->spi_device,&msg1); +} +``` + +读取成功!!! + +![](figures/50SPI.png) + +接下来console输出加速度和角速度值(rt_krpintf输出浮点数需要安装全功能软件包)。 + +![](figures/51SPI.png) + +最终运行结果: + +![](figures/52SPI.png) + +## 3.原文连接 + 原文连接:https://club.rt-thread.org/ask/article/0aa315187cb31b27.html # 四、XMC7200上的CAN实践