[AT32F457] 【AT-START-F457测评】+代码自动生成脉宽调制波形测试

[复制链接]
253|1
wuyu40 发表于 2026-1-26 15:54 | 显示全部楼层 |阅读模式
AT32F455/456/457 系列微控制器内部集成了:32 位 ARM® Cortex®-M4F 处理器,多个 16 位和 32 位的定时器,红外线接口
IRTMR,DMA 控制器,实时时钟 ERTC,SPI 通信接口,I2C 通信接口,USART/UART通信接口,CAN 总线控制器,外部存储控
制器 XMC,USB2.0 OTG 全速接口,HICK 自动时钟校准 ACC,12 位 ADC 和 PVM 模块等外设。大量的外设和存储器。Cortex®-M4F
处理器支持增强的高效 DSP 指令集,包含扩展的单周期 16/32 位乘法累加器(MAC)、双 16 位 MAC 指令、优化的 8/16 位 SIMD
运算及饱和运算指令,并且具有单精度(IEEE-754)浮点运算单元(FPU)。
目前 AT32F455/AT32F456/AT32F457 开发板都自带 AT-Link-EZ 调试工具,AT-Link-EZ 如下图左边红框所示,它也可拆开后单独搭配
其他电路板使用,支持 IDE 在线调试、在线烧录、USB 转串口等功能。
3964069771d39e1b66.png

AT-START-F457以AT32F457ZET7为中心,外设配置LED灯,按钮,一个USB type-C和一个type-A的连接器,一个CANFD接口,一个以太网
RJ45连接器,ArduinoTMUno R3扩展接口,和经由QSPI1扩充的16M字节SPI闪存存储器。此开发板自带嵌入式调试/烧录工具AT-Link-EZ,
不需接入额外开发工具即可对芯片调试使用,并支持AT32 Workbench  ------------https://www.arterytek.com/cn/support/tools.jsp?index=0
图形化配置软件。更多资料请移步雅特力官网,点击AT32F457系列主流型MCU--------
--https://www.arterytek.com/cn/product/AT32F457.jsp#Resource即可查阅/下载相关资料。
本次测评使用AT32 Workbench生成PWM输出代码,安装编译环境CPU支持包和生成代码软件,按照一下方式配置定时器:
2602669771d4d0077c.png
设置好文件保存位置,固件库位置等生成代码:
1014769771d5ba7b4c.png
生成的关键代码如下:
void wk_tmr1_init(void)
{
  /* add user code begin tmr1_init 0 */
  /* add user code end tmr1_init 0 */
  gpio_init_type gpio_init_struct;
  tmr_output_config_type tmr_output_struct;
  tmr_brkdt_config_type tmr_brkdt_struct;

  gpio_default_para_init(&gpio_init_struct);

  /* add user code begin tmr1_init 1 */

  /* add user code end tmr1_init 1 */

  /* configure the CH1 pin */
  gpio_pin_mux_config(GPIOH, GPIO_PINS_SOURCE0, GPIO_MUX_1);
  gpio_init_struct.gpio_pins = GPIO_PINS_0;
  gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
  gpio_init(GPIOH, &gpio_init_struct);

  /* configure the CH1C pin */
  gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE7, GPIO_MUX_1);
  gpio_init_struct.gpio_pins = GPIO_PINS_7;
  gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
  gpio_init(GPIOA, &gpio_init_struct);

  /* configure counter settings */
  tmr_cnt_dir_set(TMR1, TMR_COUNT_UP);
  tmr_clock_source_div_set(TMR1, TMR_CLOCK_DIV1);
  tmr_repetition_counter_set(TMR1, 1);
  tmr_period_buffer_enable(TMR1, FALSE);
  tmr_base_init(TMR1, 20000, 1);

  /* configure primary mode settings */
  tmr_sub_sync_mode_set(TMR1, FALSE);
  tmr_primary_mode_select(TMR1, TMR_PRIMARY_SEL_RESET);

  /* configure channel 1 output settings */
  tmr_output_struct.oc_mode = TMR_OUTPUT_CONTROL_PWM_MODE_A;
  tmr_output_struct.oc_output_state = TRUE;
  tmr_output_struct.occ_output_state = TRUE;
  tmr_output_struct.oc_polarity = TMR_OUTPUT_ACTIVE_HIGH;
  tmr_output_struct.occ_polarity = TMR_OUTPUT_ACTIVE_HIGH;
  tmr_output_struct.oc_idle_state = FALSE;
  tmr_output_struct.occ_idle_state = FALSE;
  tmr_output_channel_config(TMR1, TMR_SELECT_CHANNEL_1, &tmr_output_struct);
  tmr_channel_value_set(TMR1, TMR_SELECT_CHANNEL_1, 10000);
  tmr_output_channel_buffer_enable(TMR1, TMR_SELECT_CHANNEL_1, TRUE);
  tmr_output_channel_immediately_set(TMR1, TMR_SELECT_CHANNEL_1, FALSE);
  /* configure break and dead-time settings */
  tmr_brkdt_struct.brk_enable = FALSE;
  tmr_brkdt_struct.auto_output_enable = FALSE;
  tmr_brkdt_struct.brk_polarity = TMR_BRK_INPUT_ACTIVE_LOW;
  tmr_brkdt_struct.fcsoen_state = FALSE;
  tmr_brkdt_struct.fcsodis_state = FALSE;
  tmr_brkdt_struct.wp_level = TMR_WP_OFF;
  tmr_brkdt_struct.deadtime = 0;
  tmr_brkdt_config(TMR1, &tmr_brkdt_struct);
  tmr_brk_filter_value_set(TMR1, 0);
  tmr_output_enable(TMR1, TRUE);
  tmr_counter_enable(TMR1, TRUE);
  /* add user code begin tmr1_init 2 */

  /* add user code end tmr1_init 2 */
}
硬件接线测试PA7:
134069771d754f217.png
使用逻辑分析仪采集波形得到:
2152369771d8144523.png

LightCatcher 发表于 2026-1-27 08:50 | 显示全部楼层
Workbench这款配套的IDE感觉很好用,可以媲美ST的cube了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

41

主题

196

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部