8回答

0收藏

[资料] 支持GD32!GD32 应用技术问答 Q&A 汇总

GD32 GD32 6224 人阅读 | 8 人回复 | 2015-05-13

支持GD32!
捧场GD32创意设计方案大赛
https://www.cirmall.com/gd32/

这里汇总了用户使用中的一些常见的应用技术问题(FAQ)及解答,希望可以有助于您对GD32的了解和使用。
帮您迅速实现设计,少走弯路。


Q:GD32 MCU主频支持108MHz高性能,在代码移植方面需要注意哪些?
A:GD32采用专利技术提高了相同工作频率下的代码执行速度,带来了高性能的使用体验。
      因此如果代码有用到for循环或while循环语句做精确定时的,定时时间会由于代码执行速度加快而使循环的时间变短。使用Timer定时器则没有影响。


Q:对片上Flash操作时间有何不同?
A:GD32F103/101系列Flash 128KB 及以下的型号,  Page Erase 典型值100ms, 实际测量60ms 左右。
      对应的ST 产品Page Erase 典型值 20~40ms,参见产品datasheet。


Q:BOOT0管脚配置与芯片从用户闪存Flash启动的关系?
A:BOOT0及BOOT1管脚在芯片复位时的电平状态决定了复位后从哪个区域开始执行程序。
      典型情况下,BOOT0需外接10K下拉电阻,就可以从Flash启动。如BOOT0悬空,则不能从Flash启动。

Q:USB外设的工作频率有限制吗?
A:有最低工作频率的要求,也就是APB1分频后的时钟必须大于12MHz,比如HCLK为56MHz,APB1的最大分频系数为4,56/4 = 14MHz,可以正常工作。

Q:Timer、ADC模块的触发信号宽度有何要求?
A:由于内部有高速和低速两条外围总线,Timer、ADC模块和其他外设共同使用这两个总线。
     GD32F103/101系列Flash 128KB 及以下的型号,Timer、ADC 等模块识别触发信号的条件是触发信号宽度大于模块所在总线的时钟宽度。

Q:使用查询方式,I2C寻址是否成功如何判断?
A:判断I2C_SR1中的ADDR,使用如下宏定义:
      #define I2C_EVENT_SLAVE_TRANSMITTER_ADDRESS_MATCHED ((uint32_t)0x00060002)
      #define I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED ((uint32_t)0x00070002)

Q:ADC对触发源的要求?
A:GD32F103/101系列Flash 128KB 及以下的型号,
      ADC模块要求触发源,其触发信号在上升沿之后保持高电平的时间至少长于t_ADCClk。参见AN003文档 Section 2.1。

Q:ADC_SR中的EOC标志位如何使用?
A:GD32F103/101系列Flash 128KB 及以下的型号,
      在ADC的Regular group或Injected group转换完成时,由硬件自动置1;由软件写入0清除该位。参见AN003文档 Section 3。

Q:ADC采样周期与外部阻抗的关系?
A:二者之间的关系给出公式: R_AIN+R_ADC<T_S/(f_ADC×C_ADC×ln(2^(N+2))) 。参见AN003文档 Section 4。

Q:ADC_CR2中的ADON使用方法
A:当ADON=0时写入1后,需要等待一段时间t_WAIT,才能进行后续操作。
      t_WAIT的计算公式如下:t_WAIT≥14×t_ADCClk。参见AN003文档 Section 2.2。

Q:GD32F103/101系列Flash 128KB 及以下的型号,两个模块复用同一个I/O口输出时,有不同吗?
A: 由于GD32F103/101系列Flash 128KB 及以下的型号,
      I/O口输出分配是按照模块优先级整体分配并占用的。所以对于优先级别高的模块,
       即使有一些功能没有使用并且I/O空闲,但由于已经是整体分配并占用,所以其他模块也不可用。例如:
       (1) TIM2_CH2和USART2_RTS 在USART2 时钟使能后,PA1 只能作为USART2_RTS 使用,如果USART2不使用硬件流控,
             该IO也不能作为TIM_CH2使用。
       (2) USART1_RTS 和CAN1_TX 共用PA12 ,USART 优先级别比CAN bus 高,所以PA12 固定分配给USART1,不能作为CAN1_TX使用。
       但这种现象,只发生在两个模块都是配置成输出时。如一个输出一个输入,或两个皆为输入,则无问题。

Q:Timer 定时器的channel 配置成 Input Capture mode 时, GD32F103 读取寄存器TIMx_CCRx 不能清除 CCxIF 标志?
A:目前GD32不使用此方法,该中断标记要使用软件清除。

Q:GD32F103/101系列Flash 128KB 及以下的型号,使用外部中断的情况下,如何防止中断屏蔽期IO上有相应的触发沿而在开启中断后产生误触发?
A:软件可以参考以下例程设置IMR 屏蔽寄存器来使能中断 (这里以 EXTI 7 为例):
      (1) 使用上升沿触发:
        {  /* Clear Rising Falling edge configuration */
            EXTI->RTSR &= ~EXTI_Line7;
               
            /* Clear EXTI line configuration */
            EXTI->IMR |= EXTI_Line7 ;
            EXTI->EMR |= EXTI_Line7 ;
            
            /* Rising Falling edge */
            EXTI->RTSR |= EXTI_Line7;  }

       (2) 使用下降沿触发:
       { /* Clear Rising Falling edge configuration */
            EXTI->FTSR &= ~EXTI_Line7;
               
            /* Clear EXTI line configuration */
            EXTI->IMR |= EXTI_Line7 ;
            EXTI->EMR |= EXTI_Line7 ;
            
            /* Rising Falling edge */
            EXTI->FTSR |= EXTI_Line7;  }

       (3) 使用上升沿和下降沿同时触发:
      {  /* Clear Rising Falling edge configuration */
            EXTI->RTSR &= ~EXTI_Line7;
            EXTI->FTSR &= ~EXTI_Line7;
               
            /* Clear EXTI line configuration */
            EXTI->IMR |= EXTI_Line7 ;
            EXTI->EMR |= EXTI_Line7 ;
            
            /* Rising Falling edge */
            EXTI->RTSR |= EXTI_Line7;
            EXTI->FTSR |= EXTI_Line7;   }

Q:PA8管脚外接上拉会增加芯片standby模式下的功耗?
A:根据测试,PA8管脚如果外接上拉电阻,会导致在standby模式有较大的漏电流,会增加standby模式下的功耗,但是对stop模式下的功耗无影响。
      因此如果要获得比较低的功耗。PA8 管脚要保持悬空,或者在进入standby模式之前,断开PA8 管脚与外部的连接。


GD32F1系列MCU (Flash 256KB 及以上的型号) FAQ

Q:TIM9-TIM14 的CC1NP 功能,TIM9和TIM12 的CC2NP 功能不能用?
A:GD32的TIM9 -TIM14的CH1不支持输入/输出方向上的极性选择功能,TIM9 和TIM12的CH2不支持输入/输出方向上的极性选择功能。

Q:PWR寄存器DBP比特为0时,RCC_BDCR寄存器BDRST比特置位能否复位BKP_DR寄存器和RCC_BDCR寄存器(除BDRST比特外)?
A:GD32F1系列MCU (Flash 256KB 及以上的型号)能够复位,Flash 128KB 及以下的型号不会复位。

Q:SDIO DAT 3 pin 的在 1 bit bus mode 下的问题
A:SDIO 在 1 bit bus mode 下,DAT 3 pin 是低电平,这样会导致 SD Card 进入SPI 模式。
       建议在SDIO使能之前,先把 SDIO DAT 3 pin 配置成 GPIO OUTPUT High 或者 input 功能,使 SDIO DAT 3 pin 保持高电平即可。

Q:USBOTG作为从机,电脑检测不到连接?
A:有用户已经测试,使用ST的旧版OTG库(2010年7月5日V3.2.1)的程序,需要在OTGD_FS_CoreInit函数中,
      把OTGD_FS_CoreReset()放到配置gccfg之前,否则corereset会清掉gccfg的配置。
      使用ST的新版OTG库(2012年3月19V2.1.0)则中没有这个问题。

Q:GD32F105/107系列MCU 配置为108MHz有何不同?
A:通过Clock configuration register (RCC_CFGR) 中,第21:18位为PLLMUL[3:0],再结合第29位PLLMUL[4]组成5 位的位域来确定PLL 倍频系数,
      即通过软件配置来定义PLL 的倍频系数,且PLL 输出频率绝对不得超过最高主频(108MHz)。


分享到:
回复

使用道具 举报

回答|共 8 个

倒序浏览

沙发

shaoziyang

发表于 2015-7-2 11:34:41 | 只看该作者

有GD32F150开发板的资料吗?怎么找不到。
板凳

slotg

发表于 2015-7-2 11:39:50 | 只看该作者

shaoziyang 发表于 2015-7-2 11:34
有GD32F150开发板的资料吗?怎么找不到。

是这个吗?

https://www.cirmall.com/bbs/thread-42511-1-1.html
地板

shaoziyang

发表于 2015-7-2 14:40:43 | 只看该作者

slotg 发表于 2015-7-2 11:39
是这个吗?

https://www.cirmall.com/bbs/thread-42511-1-1.html

这是评测,有没有原理图、PCB、参考例程?
5#

slotg

发表于 2015-7-2 15:36:14 | 只看该作者

shaoziyang 发表于 2015-7-2 14:40
这是评测,有没有原理图、PCB、参考例程?

这里面有一个下载,这个应该就是了。
6#

liunian__92

发表于 2015-7-3 13:36:04 | 只看该作者

本帖最后由 liunian__92 于 2015-7-3 13:37 编辑
shaoziyang 发表于 2015-7-2 14:40
这是评测,有没有原理图、PCB、参考例程?

https://www.cirmall.com/gd32/


https://www.cirmall.com/gd32/ziliao/#activity

原理图,好像还在修改,他们还没给发布,估计快乐,不过可以看excel的引脚对照的表。。
7#

shaoziyang

发表于 2015-7-3 14:39:16 | 只看该作者

liunian__92 发表于 2015-7-3 13:36
https://www.cirmall.com/gd32/

多谢了。      
8#

五十米阳光

发表于 2015-7-9 11:18:38 | 只看该作者

GD32F103,这个芯片 SWD模式  我用J-LINK  4.15   来擦除,老是提示FLASH只读,擦除不了。
9#

莫林2020

发表于 2015-7-11 09:43:42 | 只看该作者

必学的啊。
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条