背景
由于本人想使用R2R模式制作简易波形发生器,直接使用IO口连接电阻输出高低电平,通过这样的方式产生任意波形。因此先简单测试一下IO口的翻转速度。
一、IO翻转速度是什么
IO翻转速度是指,GPIO的输入和输出寄存器的数据传输到外部引脚的速度;查阅AT32的数据手册和参考手册,手册中并没有相关介绍。
不过网上了解到的stm32 IO翻转速度为:
STM32F1系列翻转速度为18MHz;
STM32F4系列翻转速度为50MHz;
二、IO翻转速度影响
IO翻转速度主要有以下几点影响:
1、IO翻转速度会影响MCU内部到外设的传输速度,反应了MCU的响应时间以及处理速度;
2、翻转速度影响波形的上升时间和下降时间,影响波形的完整度;
3、翻转速度越高,意味着功耗越大;
4、翻转速度也会影响外部驱动电路的数据处理速度。
三、相关寄存器
雅特力AT32F437没有速度设置寄存器
GPIO输出数据寄存器
GPIO设置/清除寄存器
四、程序编写
1、直接写设置/清除寄存器
/* set pB.12 */ GPIOB->scr = GPIO_PINS_12; /* reset pB.12 */ GPIOB->clr = GPIO_PINS_12;
2、使用示波器,监测GPIOB12引脚的波形,如图
可以看到,直接使用示波器,测试的波形周期为72Mhz