[活动专区] 【AT-START-F423测评】 AT32 Work Bench XMC配置的BUG?

[复制链接]
1533|1
 楼主| jinyi7016 发表于 2023-11-17 09:44 | 显示全部楼层 |阅读模式
本帖最后由 jinyi7016 于 2023-11-17 09:52 编辑

为AT32F423设计自有接口的核心板时,先对外设功能、引脚复用进行设计。
但在配置XMC外设时,配置如下,发现少了XMC_D14引脚的配置

clipboard.png

查看数据手册,在引脚说明中,PD9的复用功能中,是存在XMC_D14的。
clipboard.png

在Bench软件中,查看了PD9的配置项,也是有XMC_D14。
clipboard.png
手动把PD9设置成XMC_D14后,这个引脚会变成黄色。
下面的说明是无效模式。而且当有无效引脚时,是无法生成代码,也无法从代码中看到是否已经配置了XMC_D14。

这就很大奇怪了。

clipboard.png

如果取消这个引脚的配置,生成代码,从代码中也可以看到没有D14的配置信息。
不知道这是软件软件的BUG,还是XMC外设在使用时,有特殊的要求,但在手册上没有找到相应的说明。

  1. void wk_xmc_gpio_init(void)
  2. {
  3.   /* add user code begin wk_xmc_gpio_init 0 */

  4.   /* add user code end wk_xmc_gpio_init 0 */

  5.   gpio_init_type gpio_init_struct;
  6.   gpio_default_para_init(&gpio_init_struct);

  7.   /* add user code begin wk_xmc_gpio_init 1 */

  8.   /* add user code end wk_xmc_gpio_init 1 */
  9.   
  10.   /* configure the XMC NE1 pin */
  11.   gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
  12.   gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  13.   gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  14.   gpio_init_struct.gpio_pins = GPIO_PINS_7;
  15.   gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  16.   gpio_init(GPIOD, &gpio_init_struct);

  17.   gpio_pin_mux_config(GPIOD, GPIO_PINS_SOURCE7, GPIO_MUX_12);

  18.   /* configure the XMC NOE pin */
  19.   gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
  20.   gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  21.   gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  22.   gpio_init_struct.gpio_pins = GPIO_PINS_4;
  23.   gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  24.   gpio_init(GPIOD, &gpio_init_struct);

  25.   gpio_pin_mux_config(GPIOD, GPIO_PINS_SOURCE4, GPIO_MUX_12);

  26.   /* configure the XMC NWE pin */
  27.   gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
  28.   gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  29.   gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  30.   gpio_init_struct.gpio_pins = GPIO_PINS_5;
  31.   gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  32.   gpio_init(GPIOD, &gpio_init_struct);

  33.   gpio_pin_mux_config(GPIOD, GPIO_PINS_SOURCE5, GPIO_MUX_12);

  34.   /* configure the XMC_A19 pin */
  35.   gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
  36.   gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  37.   gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  38.   gpio_init_struct.gpio_pins = GPIO_PINS_3;
  39.   gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  40.   gpio_init(GPIOE, &gpio_init_struct);

  41.   gpio_pin_mux_config(GPIOE, GPIO_PINS_SOURCE3, GPIO_MUX_12);

  42.   /* configure the XMC_D0 pin */
  43.   gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
  44.   gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  45.   gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  46.   gpio_init_struct.gpio_pins = GPIO_PINS_14;
  47.   gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  48.   gpio_init(GPIOD, &gpio_init_struct);

  49.   gpio_pin_mux_config(GPIOD, GPIO_PINS_SOURCE14, GPIO_MUX_12);

  50.   /* configure the XMC_D1 pin */
  51.   gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
  52.   gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  53.   gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  54.   gpio_init_struct.gpio_pins = GPIO_PINS_15;
  55.   gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  56.   gpio_init(GPIOD, &gpio_init_struct);

  57.   gpio_pin_mux_config(GPIOD, GPIO_PINS_SOURCE15, GPIO_MUX_12);

  58.   /* configure the XMC_D2 pin */
  59.   gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
  60.   gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  61.   gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  62.   gpio_init_struct.gpio_pins = GPIO_PINS_11;
  63.   gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  64.   gpio_init(GPIOC, &gpio_init_struct);

  65.   gpio_pin_mux_config(GPIOC, GPIO_PINS_SOURCE11, GPIO_MUX_12);

  66.   /* configure the XMC_D3 pin */
  67.   gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
  68.   gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  69.   gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  70.   gpio_init_struct.gpio_pins = GPIO_PINS_12;
  71.   gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  72.   gpio_init(GPIOC, &gpio_init_struct);

  73.   gpio_pin_mux_config(GPIOC, GPIO_PINS_SOURCE12, GPIO_MUX_12);

  74.   /* configure the XMC_D4 pin */
  75.   gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
  76.   gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  77.   gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  78.   gpio_init_struct.gpio_pins = GPIO_PINS_2;
  79.   gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  80.   gpio_init(GPIOA, &gpio_init_struct);

  81.   gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE2, GPIO_MUX_12);

  82.   /* configure the XMC_D5 pin */
  83.   gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
  84.   gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  85.   gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  86.   gpio_init_struct.gpio_pins = GPIO_PINS_3;
  87.   gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  88.   gpio_init(GPIOA, &gpio_init_struct);

  89.   gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE3, GPIO_MUX_12);

  90.   /* configure the XMC_D6 pin */
  91.   gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
  92.   gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  93.   gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  94.   gpio_init_struct.gpio_pins = GPIO_PINS_4;
  95.   gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  96.   gpio_init(GPIOA, &gpio_init_struct);

  97.   gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE4, GPIO_MUX_12);

  98.   /* configure the XMC_D7 pin */
  99.   gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
  100.   gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  101.   gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  102.   gpio_init_struct.gpio_pins = GPIO_PINS_5;
  103.   gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  104.   gpio_init(GPIOA, &gpio_init_struct);

  105.   gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE5, GPIO_MUX_12);

  106.   /* configure the XMC_D8 pin */
  107.   gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
  108.   gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  109.   gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  110.   gpio_init_struct.gpio_pins = GPIO_PINS_11;
  111.   gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  112.   gpio_init(GPIOE, &gpio_init_struct);

  113.   gpio_pin_mux_config(GPIOE, GPIO_PINS_SOURCE11, GPIO_MUX_12);

  114.   /* configure the XMC_D9 pin */
  115.   gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
  116.   gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  117.   gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  118.   gpio_init_struct.gpio_pins = GPIO_PINS_12;
  119.   gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  120.   gpio_init(GPIOE, &gpio_init_struct);

  121.   gpio_pin_mux_config(GPIOE, GPIO_PINS_SOURCE12, GPIO_MUX_12);

  122.   /* configure the XMC_D10 pin */
  123.   gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
  124.   gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  125.   gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  126.   gpio_init_struct.gpio_pins = GPIO_PINS_13;
  127.   gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  128.   gpio_init(GPIOE, &gpio_init_struct);

  129.   gpio_pin_mux_config(GPIOE, GPIO_PINS_SOURCE13, GPIO_MUX_12);

  130.   /* configure the XMC_D11 pin */
  131.   gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
  132.   gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  133.   gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  134.   gpio_init_struct.gpio_pins = GPIO_PINS_14;
  135.   gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  136.   gpio_init(GPIOE, &gpio_init_struct);

  137.   gpio_pin_mux_config(GPIOE, GPIO_PINS_SOURCE14, GPIO_MUX_12);

  138.   /* configure the XMC_D12 pin */
  139.   gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
  140.   gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  141.   gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  142.   gpio_init_struct.gpio_pins = GPIO_PINS_15;
  143.   gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  144.   gpio_init(GPIOE, &gpio_init_struct);

  145.   gpio_pin_mux_config(GPIOE, GPIO_PINS_SOURCE15, GPIO_MUX_12);

  146.   /* configure the XMC_D13 pin */
  147.   gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
  148.   gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  149.   gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  150.   gpio_init_struct.gpio_pins = GPIO_PINS_12;
  151.   gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  152.   gpio_init(GPIOB, &gpio_init_struct);

  153.   gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE12, GPIO_MUX_12);

  154.   /* configure the XMC_D15 pin */
  155.   gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_MODERATE;
  156.   gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  157.   gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
  158.   gpio_init_struct.gpio_pins = GPIO_PINS_10;
  159.   gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  160.   gpio_init(GPIOD, &gpio_init_struct);

  161.   gpio_pin_mux_config(GPIOD, GPIO_PINS_SOURCE10, GPIO_MUX_12);
  162. }







muyichuan2012 发表于 2023-11-17 12:56 | 显示全部楼层
workbench  关于XMC_D14的配置是有点问题,感谢反馈 。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

148

主题

1414

帖子

12

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