GD32 应用技术问答

发新帖
发表于 2017-9-14 15:09:39 | 显示全部楼层 |阅读模式
分享:
查看: 1151|回复: 0
这里汇总了用户使用中的一些常见的应用技术问题(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_ADCRTSR &= ~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)。
收藏 回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

快速回复 返回顶部 返回列表