目录
1. PKE8720DF-C13-F10(AMB26)引脚图和功能
(4)使用串口调试工具(这里用的是Tera Term)来验证测试结果
大家仔细阅读之前写的使用PKE8720DF-C13-F10(AMB26)开发板——周期性点亮LED灯这篇文章,了解关于PKE8720DF-C13-F10(AMB26)开发板的特性、Linux编译环境准备、SDK code下载与编译生成bin文件、使用自带Image tool怎么将bin文件烧到板子里面、案例demo,可以很方便的上手PKE8720DF-C13-F10(AMB26)开发板。
本文主要描述使用PKE8720DF-C13-F10(AMB26)开发板(基于SPI实验)如何让Master与Slave互发数据并打印,让用户更直观的理解SPI相关的东西。
SPI:Seriel Peripheral Interface (串行外设接口),是 MCU 中常用的外设接口。SPI 通信原理是以主从方式进行,通常有一个主设备、一个或多个从设备,并且至少需要4根线才能工作,分别为 MISO(主入从出)、MOSI(主出从入)、SCLK(时钟)、SS(片选),支持全双工模式。
首先需要理解PKE8720DF-C13-F10(AMB26)引脚图和功能方面的知识。
1. PKE8720DF-C13-F10(AMB26)引脚图和功能
放大上图之后可以看到:
PKE8720DF-C13-F10开发板有两组SPI,分别是SPI1和SPI0,SPI1包括SPI1_MOSI(PA12)、SPI1_MISO(PA13)、SPI1_SCLK(PA14)、SPI1_SS(PA15),SPI0包括SPI0_MOSI(PB18)、SPI0_MISO(PB19)、SPI0_SCLK(PB20)、SPI0_SS(PB21)。默认的,PKE8720DF-C13-F10开发板使用SPI1作为Master,使用SPI0作为Slave。
2. Master与Slave互发数据并打印
(1)材料准备
- 1 块 PKE8720DF-C13-F10开发板
- 1 根 USB转type-C数据线
- 4 根 杜邦线
(2)代码修改
本实验的代码位于~\ambd_sdk\project\realtek_amebaD_va0_example\example_sources\SPI\raw\spi\src\main.c,
根据以上引脚图说明,需要修改如下pin脚相关的define:
修改之后替换/project/realtek_amebaD_va0_example/src/src_hp里面的main.c, 依照使用PKE8720DF-C13-F10(AMB26)开发板——周期性点亮LED灯的方法make all生成3个bin文件:
km0_boot_all.bin
km4_boot_all.bin
km0_km4_image2.bin
之后download 这三个bin文件到板子。
(3)线路连接
在目录~\ambd_sdk\project\realtek_amebaD_va0_example\example_sources\SPI\raw\spi\下面的readme.txt对这个案例进行了相关的说明。依照说明,
Connect SPI0_MOSI (PB_18) to SPI1_MOSI (PA_12)
Connect SPI0_MISO (PB_19) to SPI1_MISO (PA_13)
Connect SPI0_SCLK (PB_20) to SPI1_SCLK (PA_14)
Connect SPI0_CS (PB_21) to SPI1_CS (PA_15)
接线图如下:
(4)使用串口调试工具(这里用的是Tera Term)来验证测试结果
打开Tera Term,进行如下设定(COM15是USB转type-C数据线接到PC上显示的COM口):
选择Setup->Serial port,设置Speed:115200,Data:8 bit,Parity:none,Stop bits:1 bit,再点击New setting,设置完毕。
(5)实验结果
按开发板上的reset按键重置并启动板子,可以看到Tera Term上面会打印以下log:
log里面第1条:Master一开始向Slave写入0x01,第2条Slave读到0x01并且向Master写入0x02,第2条Master有读到,......以此类推。
第2个虚线下方的log可以更明显的看出:Master写的数据和Slave读的数据一致。
实验结果符合预期!!!