HK32MCU

HK32F103x/C/D/E是深圳市航顺芯片技术研发有限公司推出的中大容量的32位MCU芯片,内部集成丰富且强大的外设,如SPI/IIC/UART/USB/FSMC/SDIO等。

有客户在快速替换使用过程中,遇到过使用HAL库的USB枚举失败的情况:直接插入电脑USB口是枚举失败,不能识别;经过HUB插入的话能识别,但是驱动有问题(带黄色三角形、感叹号)。

通过逻辑分析仪+DSView上位机进行跟踪,分析通信数据,注意到通信异常,如下红色箭头所指:

“HK32MCU应用笔记(十九)|

“HK32MCU应用笔记(十九)|

进一步分析确认(根本原因):

在设定地址的包之后(条件1),接着下一个获取设备描述符的请求包(setup)来了之后(条件2),芯片会把Tx状态设置为Valid(而不是预期的NAK),导致在随后的IN包来了之后马上发出DATA1[],即还未来得及填充有效数据。所以导致后续枚举失败。

解决方案:

进入USB中断处理函数PCD_EP_ISR_Handler()里面,把USB端点0的Tx状态设置为NAK即可,即添加上以下这句就可以了:PCD_SET_EP_TX_STATUS(USB, 0, USB_EP_TX_NAK);

“HK32MCU应用笔记(十九)|

添加之后,可以正常枚举(如下)和进行USB通信功能。

“HK32MCU应用笔记(十九)|

相关阅读:
HK32MCU应用笔记(一)| HK32F030X系列在PH测量笔的应用
HK32MCU应用笔记(二)| 国外品牌采用航顺HK32F030R8T6代替出现串口不兼容解决方法
HK32MCU应用笔记(三)| 航顺芯片在5G光纤测试仪的应用
HK32MCU应用笔记(四)| 关于老版本HK32F103串口USART偶尔出现数据错误
HK32MCU应用笔记(五)| 关于应用HK32F030延时效率问题
HK32MCU应用笔记(六)| HK32MCU芯片调试心得
HK32MCU应用笔记(七)| 航顺HK32MCU闩锁效应问题研究及预防措施
HK32MCU应用笔记(八)| 航顺HK32F03X内部8M时钟倍频成72M解决方案
HK32MCU应用笔记(九)| HK32F103x8xB系列CAN的应用解决方案
HK32MCU应用笔记(十)| HK32F103xC/D/E的ADC常规和注入通道同时触发时的处理机制
HK32MCU应用笔记(十一)| HK32F103xC/D/E的flash读保护应用及注意事项
HK32MCU应用笔记(十二)| HK32F103xC/D/E的GPIO的应用及注意事项
HK32MCU应用笔记(十三)| HK32F103xC/D/E-ADC的应用及注意事项
HK32MCU应用笔记(十四)| HK32F103x/C/D/E-TIM1的应用及注意事项
HK32MCU应用笔记(十五)| HK32F103xC/D/E-同步注入模式下,ADC2工作状态不能单独配置
HK32MCU应用笔记(十六)| HK32F103xC/D/E-Timer的应用及注意事项
HK32MCU应用笔记(十七)| HK32F103xC/D/E-flash擦写应用及注意事项
HK32MCU应用笔记(十八)| HK32F103xC/D/E-DAC的应用及注意事项

来源:航顺芯片
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 109

HK32F103x/C/D/E是深圳市航顺芯片技术研发有限公司推出的中大容量的103系列芯片。作为32位MCU常用的外设DAC是12位数字输入,电压输出的数字/模拟转换器。DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在12位模式时,数据可以设置成左对齐或右对齐。DAC模块有2个输出通道,每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出。DAC可以通过引脚输入参考电压VREF+以获得更精确的转换结果。

DAC主要特性

●2个DAC转换器:每个转换器对应1个输出通道

●8位或者12位单调输出

●12位模式下数据左对齐或者右对齐

●同步更新功能

●噪声波形生成

●三角波形生成

●双DAC通道同时或者分别转换

●每个通道都有DMA功能

●外部触发转换

●输入参考电压VREF+

“DAC通道模块框图"
DAC通道模块框图

“DAC
DAC 引脚

DAC数字格式

根据选择的配置模式,数据按照下文所述写入指定的寄存器:

单DAC通道x,有3种情况

● 8位数据右对齐:用户须将数据写入寄存器DAC_DHR8Rx[7:0]位(实际是存入寄存器DHRx[11:4]位)

● 12位数据左对齐:用户须将数据写入寄存器DAC_DHR12Lx[15:4]位(实际是存入寄存器DHRx[11:0]位)

● 12位数据右对齐:用户须将数据写入寄存器DAC_DHR12Rx[11:0]位(实际是存入寄存器DHRx[11:0]位)

根据对DAC_DHRyyyx寄存器的操作,经过相应的移位后,写入的数据被转存到DHRx 寄存器中(DHRx是内部的数据保存寄存器x)。随后,DHRx寄存器的内容或被自动地传送到DORx寄存器,或通过软件触发或外部事件触发被传送到DORx寄存器。

“单DAC通道模式的数据寄存器"
单DAC通道模式的数据寄存器

双DAC通道,有3种情况

● 8位数据右对齐:用户须将DAC通道1数据写入寄存器DAC_DHR8RD[7:0]位(实际是存入寄存器DHR1[11:4]位),将DAC通道2数据写入寄存器DAC_DHR8RD[15:8]位(实际是存入寄存器 DHR2[11:4]位)

● 12位数据左对齐:用户须将DAC通道1数据写入寄存器DAC_DHR12LD[15:4]位(实际是存入寄存器DHR1[11:0]位),将DAC通道2数据写入寄存器DAC_DHR12LD[31:20]位(实际是存入寄存器DHR2[11:0]位)

● 12位数据右对齐:用户须将DAC通道1数据写入寄存器DAC_DHR12RD[11:0]位(实际是存入寄存器DHR1[11:0]位),将DAC通道2数据写入寄存器DAC_DHR12RD[27:16]位(实际是存入寄存器 DHR2[11:0]位)

根据对DAC_DHRyyyD寄存器的操作,经过相应的移位后,写入的数据被转存到DHR1 和DHR2寄存器中(DHR1和DHR2是内部的数据保存寄存器x)。随后,DHR1和DHR2的内容或被自动地传送到DORx寄存器,或通过软件触发或外部事件触发被传送到DORx寄存器。

“双DAC通道模式的数据寄存器"
双DAC通道模式的数据寄存器

DAC转换

不能直接对寄存器DAC_DORx写入数据,任何输出到DAC通道x的数据都必须写入AC_DHRx寄存器(数据实际写入DAC_DHR8Rx、DAC_DHR12Lx、DAC_DHR12Rx、DAC_DHR8RD、DAC_DHR12LD、或者DAC_DHR12RD寄存器)。如果没有选中硬件触发(寄存器DAC_CR1的TENx位置’0’),存入寄存器DAC_DHRx的数据会在一个APB1时钟周期后自动传至寄存器DAC_DORx。如果选中硬件触发(寄存器DAC_CR1 的TENx位置’1’),数据传输在触发发生以后3个APB1时钟周期后完成。一旦数据从DAC_DHRx 寄存器装入DAC_DORx寄存器,在经过时间tSETTLING之后,输出即有效,这段时间的长短依电源电压和模拟输出负载的不同会有所变化。

“TEN=0触发失能时转换的时间框图"
TEN=0触发失能时转换的时间框图

DAC输出电压

数字输入经过DAC被线性地转换为模拟电压输出,其范围为0到VREF+。任一DAC通道引脚上的输出电压满足下面的关系:DAC输出=VREFx(DOR/4095)

HK32F103xC/D/E在操作DAC需要注意的地方

用户在使用HK32F103xC/D/E的DAC在使用过程中,当输出一个较低电压,例如0.41V,当对DAC->CR.BOFF 1 bit进行操作时,不管是从0->1,还是从1->0,均会出现一个高于实际DAC输出很高的电压值,且不会自行恢复,需要手动给一个trig信号或者将DAC->CR.BOFF1回到上一次触发之前的状态才能恢复正常。举例说明:DAC 配置为软件触发,DAC->CR.BOFF1=0,输出一个0.41V电压(DHR12R1设置为0x1FF),从PA4输出,当正常输出以后配置DAC->CR.BOFF1=1,此时电压会跳变到2.9V左右,且不会自行恢复,当给DAC_SWTRIGR.SWTRIG1配置为1以后即可自行恢复。

解决方案:

1. DAC BUFF输出功能,在程序上电初始化配置完毕以后,程序运行中不要更改。
2. 如果需要在程序运行中更改,且对输出电压的短暂跳变不敏感,那么可通过更改触发方式为DAC_Trigger_T1_TRGO等循环自动触发方式或者在DAC->CR.BOFF1 bit发生改变以后手动给一次触发信号。

以上有关寄存器的介绍可以参考我们HK的HK32F103xC/D/E的应用手册。

相关阅读:
HK32MCU应用笔记(一)| HK32F030X系列在PH测量笔的应用
HK32MCU应用笔记(二)| 国外品牌采用航顺HK32F030R8T6代替出现串口不兼容解决方法
HK32MCU应用笔记(三)| 航顺芯片在5G光纤测试仪的应用
HK32MCU应用笔记(四)| 关于老版本HK32F103串口USART偶尔出现数据错误
HK32MCU应用笔记(五)| 关于应用HK32F030延时效率问题
HK32MCU应用笔记(六)| HK32MCU芯片调试心得
HK32MCU应用笔记(七)| 航顺HK32MCU闩锁效应问题研究及预防措施
HK32MCU应用笔记(八)| 航顺HK32F03X内部8M时钟倍频成72M解决方案
HK32MCU应用笔记(九)| HK32F103x8xB系列CAN的应用解决方案
HK32MCU应用笔记(十)| HK32F103xC/D/E的ADC常规和注入通道同时触发时的处理机制
HK32MCU应用笔记(十一)| HK32F103xC/D/E的flash读保护应用及注意事项
HK32MCU应用笔记(十二)| HK32F103xC/D/E的GPIO的应用及注意事项
HK32MCU应用笔记(十三)| HK32F103xC/D/E-ADC的应用及注意事项
HK32MCU应用笔记(十四)| HK32F103x/C/D/E-TIM1的应用及注意事项
HK32MCU应用笔记(十五)| HK32F103xC/D/E-同步注入模式下,ADC2工作状态不能单独配置
HK32MCU应用笔记(十六)| HK32F103xC/D/E-Timer的应用及注意事项
HK32MCU应用笔记(十七)| HK32F103xC/D/E-flash擦写应用及注意事项

来源:航顺芯片
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 230

6月6日,深圳国际机场95块大屏广告同步播放航顺HK32MCU品牌海报,进一步提升航顺芯片品牌形象和市场影响力,与之一起刊出的品牌海报有字节跳动、INTEL、移动等。

“航顺HK32MCU深圳国际机场海报再度更新,品牌魅力持续绽放!"

深圳机场是大湾区核心机场,覆盖东莞、惠州等城市的旅客,毗邻香港,是内地旅客通往香港的重要枢纽,旅客吞吐量高达5000多万人次,其中国际及港澳台客流吞吐量为200多万人次。深圳机场国际航线通达全球50城,其中与欧洲三大航空枢纽(德国法兰克福、伦敦希斯罗和巴黎戴高乐机场)实现直飞,可通达伦敦、法兰克福、巴黎、莫斯科等10座欧洲主要城市。

为了更快、更好、更出色地传递航顺芯片的核心价值,航顺芯片利用深圳国际机场人流量大、覆盖范围广、亮相频率高等特点,以高端海报为载体,聚焦推广航顺芯片高端国产32位MCU,为品牌推广作贡献。

“航顺HK32MCU深圳国际机场海报再度更新,品牌魅力持续绽放!"

“航顺HK32MCU深圳国际机场海报再度更新,品牌魅力持续绽放!"

航顺芯片在深圳国际机场上线机场品牌海报,一方面,展现了航顺芯片对品牌推广的力度;另一方面,也体现了航顺芯片走进客户的决心,同时也希望航顺芯片的优质产品与专业服务能惠及更多用户。未来,在国产芯片追梦路上,航顺芯片将继续不忘初心,以更优质的产品和服务、更长远的视野、更精准的品牌宣传策略提高品牌核心竞争力,传递更出色的服务!

航顺芯片致力于持续提升核心芯片的自主研发能力,航顺已量产全球第一颗ARM+RISC-V多核异构安全MCPU,全球第一颗低于1元人民币32位MCU,中国第一颗最低功耗低于30nA物联网32位MCU, 车规HK32MCU现已获得AEC-Q100可靠性认证和ISO9001:2015质量体系认证、2022年度ISO26262 ASIL D功能安全流程签约、ISO26262 ASIL B功能安全流程签约。共计申请知识产权发明专利超过200件并正在持续增长中。航顺芯片先后获得国家级专精特新重点小巨人、国家级高新技术企业、深圳行业领袖企业100强等荣誉。深圳市国资委深投控、 深创投、汇顶科技、中航基金、海尔、方广资本、顺为资本、美格智能、中科院国科投等战略股东从资金、供应链、智能终端应用全面赋能。

来源:航顺芯片
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 30

HK32F103x/C/D/E是深圳市航顺芯片技术研发有限公司推出的中大容量的F103系列芯片。作为32位MCU,大多会内置flash以便应用程序的存储及更新,其可靠性及访问速度也远远优于外部flash。

01、Flash闪存主要特性

高达512 Kbyte Flash存储器

存储器结构:

◆主闪存模块:512Kbyte,该存储块划分为256(Page)×2Kbyte

◆选项字节有256个字

闪存的接口特征:

◆带预取缓冲器的读接口

◆选择字节加载器

◆闪存编程/擦除操作

◆访问/写保护

◆低功耗模式

Flash空间由32位宽的存储单元组成,既可以存代码又可以存数据。主闪存块有256页(每页2Kbyte)。模块如下表所示:

“HK32MCU应用笔记(十七)|

02、Flash写和擦除操作

Flash擦写模块处理Flash的编程和擦除,它包含12个32位的寄存器。在产品的整个工作电压范围内支持执行Flash编程和擦除操作。该操作由下列12个寄存器完成:

●Flash关键字寄存器(FLASH_KEYR)

●Flash选项关键字寄存器(FLASH_OPTKEYR)

●Flash控制寄存器(FLASH_CR)

●Flash状态寄存器(FLASH_SR)

●Flash地址寄存器(FLASH_AR)

●Flash选项字节寄存器(FLASH_OBR)

●Flash写保护寄存器(FLASH_WRPR)

●Flash控制寄存器2(FLASH_ECR)

●4个编程数据寄存器(PW0~PW3)

只要CPU不访问Flash空间,正在执行的Flash写操作不会妨碍CPU的运行。即,在执行写/擦除操作的同时,不能对Flash取指和访问其数据。否则,总线访问将暂停。

03、对Flash空间的解锁

复位后,Flash存储器默认处于受保护状态,以避免意外擦除。FLASH_CR寄存器的值通常不允许改写,只有对FLASH_KEYR寄存器进行解锁操作后,才具有对FLASH_ CR寄存器的访问权限。解锁操作包括以下步骤:

1.向FLASH_KEYR寄存器写入关键字KEY1=0x45670123。

2.向FLASH_KEYR寄存器写入关键字KEY2=0xCDEF89AB。

任何错误的顺序将会锁死FLASH_CR直至下次复位。当发生关键字错误时,会由总线错误引发一次硬件错误中断。

●如果KEY1出错,就会立即中断。

●如果KEY1正确但KEY2错误时,就会在KEY2错的时刻触发中断。

可以对比以下该系列芯片的主要储存器映射图:

“HK32MCU应用笔记(十七)|

04、标准编程

Flash 存储器接口会预读待编程地址的内容,然后判断其是否已经被擦除,如果不是,那么编程操作会自动取消,并且在FLASH_SR寄存器的PGERR位上提示编程错误告警。如果被编程的内容为全零,则会例外,这时会正确编程并且不告警。

如果待编程地址所对应的FLASH_WRPR中的写保护位有效,同样也不会有编程动作,同样也会产生编程错误告警。编程动作结束后,FLASH_SR寄存器中的EOP位会给出提示。

主Flash存储器标准模式下的编程过程如下:

●半字、字编程:

1.检查FLASH_SR中的BSY位,以确认上次操作已经结束。

2.置位FLASH_CR寄存器中的PG位或者FLASH_ECR的WPG位。

3.根据配置,以半字/字为单位向目标地址写入数据。

4.等待FLASH_SR寄存器中的 BSY 归零。

5、读取编程的值然后验证。

●双字和四字编程:

1.检查FLASH_SR中的BSY位,以确认上次操作已经结束。

2.置位FLASH_ECR寄存器中的2WPG位或者4WPG位。

3.根据配置,向PW0~PW1或者PW0~PW4写入数据。

4.向FLASH_AR写入待编程位置最低位置地址。

5.置位FLASH_CR寄存器中的STRT位为1。

6.等待FLASH_SR寄存器中的BSY归零。

7.读取编程的值然后验证。

注意:当 FLASH_SR中的BSY被置’1’时,写模式下的寄存器不能被读。

Flash存储器擦除

Flash存储器可以按页或半页为单位擦除,也可以整片擦除。

页擦除

擦除页的步骤如下:

1.检查FLASH_SR中的BSY位,以确认上次操作已经结束。

2.将FLASH_CR寄存器中的PER位置为1,以选择按页擦除。

3.写FLASH_AR寄存器的FAR位,写入待擦除页的地址。

4.将FLASH_CR寄存器中的 STRT 位置为1,以启动擦除操作。

5.等待FLASH_SR中的BSY变为0,表明擦除操作完成。

6.检查LASH_SR寄存器的EOP标志(若Flash擦除成功会置位EOP),然后软件清除该标志位。

半页擦除

Flash的半页为1Kbyte,半页擦除流程和页擦除流程类似,区别在于把FLASH_ECR中的HPER位置’1’。擦除半页的步骤如下:

1.检查FLASH_SR寄存器中的BSY位,以确认上次操作已经结束。

2.将FLASH_CR寄存器中的HPER位置为1,以选择按半页擦除。

3.写FLASH_AR寄存器的FAR位,写入待擦除半页的地址。

4.将FLASH_CR寄存器中的STRT位置为1,以启动擦除操作。

5.等待FLASH_SR中的BSY变为0,表明擦除操作完成。

6.检查LASH_SR寄存器的EOP标志(若Flash擦除成功会置位EOP),然后软件清除该标志位。

整片擦除

可以用整片擦除命令一次擦除整个Flash区,但该命令不会影响信息块,具体步骤如下:

1.检查FLASH_SR寄存器的BS位,以确认上次操作已经结束。

2.将FLASH_CR寄存器中的MER位置为1,以选择整片擦除。

3.将FLASH_CR寄存器中的STRT位置为1,以启动擦除操作。

4.等待FLASH_SR中的BSY位置0,表明整片擦除操作结束。

5.检查FLASH_SR寄存器的EOP标志位(如果Flash擦除成功会置位EOP),然后软件清除该标志位。

05、flash在写及擦除使用过程中需要注意的地方

问题描述:

CACHE打开的情况下,FLASH写及擦除操作时产生错误。

根本原因:设计原因。

解决方案:

在写了FLASH->AR寄存器后,操作FLASH->CR寄存器前执行CACHE->CTL|=0x0800指令清一下CACHE。对于HK32F103xCxDxE,我们已经在hk32f10x_flash.c 中已经修改。

相关阅读:
HK32MCU应用笔记(一)| HK32F030X系列在PH测量笔的应用
HK32MCU应用笔记(二)| 国外品牌采用航顺HK32F030R8T6代替出现串口不兼容解决方法
HK32MCU应用笔记(三)| 航顺芯片在5G光纤测试仪的应用
HK32MCU应用笔记(四)| 关于老版本HK32F103串口USART偶尔出现数据错误
HK32MCU应用笔记(五)| 关于应用HK32F030延时效率问题
HK32MCU应用笔记(六)| HK32MCU芯片调试心得
HK32MCU应用笔记(七)| 航顺HK32MCU闩锁效应问题研究及预防措施
HK32MCU应用笔记(八)| 航顺HK32F03X内部8M时钟倍频成72M解决方案
HK32MCU应用笔记(九)| HK32F103x8xB系列CAN的应用解决方案
HK32MCU应用笔记(十)| HK32F103xC/D/E的ADC常规和注入通道同时触发时的处理机制
HK32MCU应用笔记(十一)| HK32F103xC/D/E的flash读保护应用及注意事项
HK32MCU应用笔记(十二)| HK32F103xC/D/E的GPIO的应用及注意事项
HK32MCU应用笔记(十三)| HK32F103xC/D/E-ADC的应用及注意事项
HK32MCU应用笔记(十四)| HK32F103x/C/D/E-TIM1的应用及注意事项
HK32MCU应用笔记(十五)| HK32F103xC/D/E-同步注入模式下,ADC2工作状态不能单独配置
HK32MCU应用笔记(十六)| HK32F103xC/D/E-Timer的应用及注意事项

来源:航顺芯片
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 152

HK32F103x/C/D/E是航顺芯片推出的中大容量的103系列芯片。作为32位MCU常用的外设Timer是一个通过可编程预分频器驱动的16位自动装载计数器构成。它适用于多种场合,包括测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM)。使用定时器预分频器和RCC 时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒间调整。每个定时器都是完全独立的,没有互相共享任何资源。

Timer主要功能

通用TIMx(TIM2、TIM3、TIM4、TIM5)定时器功能包括:

1)DAC触发功能
2)四路输入通道都下降沿触发,和双沿触发功能
3)16位向上、向下、向上/向下自动装载计数器
4)16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65536之间的任意数值
5)4个独立通道:输入捕获、输出比较、PWM生成(边缘或中间对齐模式)、单脉冲模式输出
6)使用外部信号控制定时器和定时器互连的同步电路
7)如下事件发生时产生中断/DMA:
─ 计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)
─ 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)
─ 输入捕获
─ 输出比较

8)支持针对定位的增量(正交)编码器和霍尔传感器电路
9)触发输入作为外部时钟或者按周期的电流管理

Timer 输入捕获模式功能描述

在输入捕获模式下,当检测到ICx信号上相应的边沿后,计数器的当前值被锁存到捕获/比较寄存器(TIMx_CCRx)中。当捕获事件发生时,相应的CCxIF标志(TIMx_SR寄存器)被置’1’,如果使能了中断或者DMA 操作,则将产生中断或者DMA 操作。如果捕获事件发生时CCxIF标志已经为高,那么重复捕获标志CCxOF(TIMx_SR寄存器)被置’1’。写CCxIF=0可清除CCxIF,或读取存储在TIMx_CCRx寄存器中的捕获数据也可清除CCxIF。写CCxOF=0可清除CCxOF。以下例子说明如何在TI1输入的上升沿时捕获计数器的值到TIMx_CCR1寄存器中,步骤如下:

选择有效输入端:TIMx_CCR1 必须连接到TI1 输入,所以写入TIMx_CCR1寄存器中的CC1S=01,只要CC1S不为’00’,通道被配置为输入,并且TM1_CCR1寄存器变为只读。

根据输入信号的特点,配置输入滤波器为所需的带宽(即输入为TIx 时,输入滤波器控制位是TIMx_CCMRx寄存器中的ICxF位)。假设输入信号在最多5个内部时钟周期的时间内抖动,我们须配置滤波器的带宽长于5个时钟周期。因此我们可以(以fDTS频率)连续采样8次,以确认在TI1上一次真实的边沿变换,即在TIMx_CCMR1寄存器中写入IC1F=0011。

选择TI1通道的有效转换边沿,在TIMx_CCER 寄存器中写入CC1P=0(上升沿)。
配置输入预分频器。在本例中,我们希望捕获发生在每一个有效的电平转换时刻,因此预分频器被禁止(写TIMx_CCMR1寄存器的IC1PS=00)。

设置TIMx_CCER寄存器的CC1E=1,允许捕获计数器的值到捕获寄存器中。

如果需要,通过设置TIMx_DIER寄存器中的CC1IE位允许相关中断请求,通过设置TIMx_DIER寄存器中的CC1DE位允许DMA请求。当发生一个输入捕获时:

产生有效的电平转换时,计数器的值被传送到TIMx_CCR1寄存器。

CC1IF标志被设置(中断标志)。当发生至少2个连续的捕获时,而CC1IF未曾被清除,CC1OF也被置’1’。

如设置了CC1IE位,则会产生一个中断。

如设置了CC1DE位,则还会产生一个DMA请求。

为了处理捕获溢出,建议在读出捕获溢出标志之前读取数据,这是为了避免丢失在读出捕获溢出标志之后和读取数据之前可能产生的捕获溢出信息。

操作Timer输入捕获模式上需要注意的地方

用户在使用HK32F103xC/D/E的Timer输入捕获测量正弦波时,频率计数不正确。这问题由于IO设计的问题,建议在被测信号整形成为方波输入,这样能弥补我们IO口设计的问题。或者芯片内部使能Timer数字滤波器,也能满足输入捕获测量正弦波计数的问题。

以上有关寄存器的介绍可以参考我们HK的HK32F103xC/D/E的应用手册。

相关阅读:
HK32MCU应用笔记(一)| HK32F030X系列在PH测量笔的应用
HK32MCU应用笔记(二)| 国外品牌采用航顺HK32F030R8T6代替出现串口不兼容解决方法
HK32MCU应用笔记(三)| 航顺芯片在5G光纤测试仪的应用
HK32MCU应用笔记(四)| 关于老版本HK32F103串口USART偶尔出现数据错误
HK32MCU应用笔记(五)| 关于应用HK32F030延时效率问题
HK32MCU应用笔记(六)| HK32MCU芯片调试心得
HK32MCU应用笔记(七)| 航顺HK32MCU闩锁效应问题研究及预防措施
HK32MCU应用笔记(八)| 航顺HK32F03X内部8M时钟倍频成72M解决方案
HK32MCU应用笔记(九)| HK32F103x8xB系列CAN的应用解决方案
HK32MCU应用笔记(十)| HK32F103xC/D/E的ADC常规和注入通道同时触发时的处理机制
HK32MCU应用笔记(十一)| HK32F103xC/D/E的flash读保护应用及注意事项
HK32MCU应用笔记(十二)| HK32F103xC/D/E的GPIO的应用及注意事项
HK32MCU应用笔记(十三)| HK32F103xC/D/E-ADC的应用及注意事项
HK32MCU应用笔记(十四)| HK32F103x/C/D/E-TIM1的应用及注意事项
HK32MCU应用笔记(十五)| HK32F103xC/D/E-同步注入模式下,ADC2工作状态不能单独配置

来源: 航顺芯片
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 122

HK32F103x/C/D/E是深圳市航顺芯片技术研发有限公司推出的中大容量的103系列芯片。作为32位MCU常用ADC模块,在各类产品中有诸多应用,比如节省I/O引脚的按键检测应用,以及各类传感器,比如光传感器、湿度传感器、温度传感器等,把各种各样的模拟信号转换为电压、电流信号,ADC模块通过对该电压、电流信号的精确测量,实现MCU对外部世界的精确感知,从而实现对应的应用控制。

HK32F103x/C/D/E的ADC的主要特征:

● 12位分辨率

● 转换结束、注入转换结束和发生模拟看门狗事件时产生中断

● 单次和连续转换模式

● 从通道0到通道n的自动扫描模式

● 自校准

● 带内嵌数据一致性的数据对齐

● 采样间隔可以按通道分别编程

● 规则转换和注入转换均有外部触发选项

● 间断模式

● 双重模式(带2个或以上ADC的器件)

● ADC转换时间:

─ HK32F103xx增强型产品:时钟为56MHz时为1μs(时钟为72MHz为1.17μs)

● ADC供电要求:2V到5.5V

● ADC输入范围:VREF-≤VIN≤VREF+

● 规则通道转换期间有DMA请求产生。

HK32F103x/C/D/E的ADC的功能描述:

12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。

HK32F103x/C/D/E的ADC的通道选择:

有16个多路通道。可以把转换组织成两组:规则组和注入组。在任意多个通道上以任意顺序进行的一系列转换构成成组转换。例如,可以如下顺序完成转换:通道3、通道8、通道2、通道2、通道0、通道2、通道2、通道15。

● 规则组

由多达16个转换组成。规则通道和它们的转换顺序在ADC_SQRx寄存器中选择。规则组中转换的总数应写入ADC_SQR1寄存器的L[3:0]位中。

● 注入组

由多达4个转换组成。注入通道和它们的转换顺序在ADC_JSQR寄存器中选择。注入组里的转换总数目应写入ADC_JSQR寄存器的L[1:0]位中。

双 ADC 模式:

在有2个或以上ADC模块的产品中,可以使用双ADC模式(见下图双ADC框图)。在双ADC模式里,根据ADC1_CR1寄存器中DUALMOD[2:0]位所选的模式,转换的启动可以是ADC1主和ADC2从的交替触发或同步触发。

注意:在双ADC模式里,当转换配置成由外部事件触发时,用户必须将其设置成仅触发主ADC,从ADC设置成软件触发,这样可以防止意外的触发从转换。但是,主和从ADC的外部触发必须同时被激活。

“HK32MCU应用笔记(十五)|

HK32F103x/C/D/E有多种双ADC工作模式,如同步注入模式、同步规则模式、快速交叉模式、慢速交叉模式、交替触发模式、独立模式、混合的规则/注入同步模式、混合的同步规则/交替触发模式、混合同步注入+交叉模式。

其中同步注入模式工作机制描述如下:

此模式转换一个注入通道组。外部触发来自ADC1的注入组多路开关(由ADC1_CR2寄存器的JEXTSEL[2:0]选择),它同时给ADC2提供同步触发。

注意:不要在2个ADC上转换相同的通道(两个ADC在同一个通道上的采样时间不能重叠)。

在 ADC1 或 ADC2 的转换结束时:

● 转换的数据存储在每个ADC接口的ADC_JDRx寄存器中。

● 当所有ADC1/ADC2注入通道都被转换时,产生JEOC 中断(若任一ADC接口开放了中断)。

注:在同步注入模式中,在ADC1和ADC2上同时采样的两个通道必须设置同样的采样时间,来保证两个ADC的同步。

如下图示例,为在4个通道上的同步注入模式:

“HK32MCU应用笔记(十五)|

HK32F103x/C/D/E在ADC使用过程中需要注意的地方:

问题描述:

在ADC1和ADC2工作在同步注入模式,ADC2的常规通道不能启动转换。

根本原因:

在ADC1和ADC2工作在同步注入模式,ADC2作为从模式,配置好了以后ADC2的工作状态受ADC1控制,所以后面去配置常规通道转换不能正常软件启动。这是我们芯片与S***T芯片的差异。

解决方案:

先定义和启动ADC2的常规通道的工作状态,再配置主从模式的ADC工作方式,这样就能正常使用。如果遇到ADC2还不能正常启动转换的,可以选择把ADC2的转换模式改为连续扫描模式。

相关阅读:
HK32MCU应用笔记(一)| HK32F030X系列在PH测量笔的应用
HK32MCU应用笔记(二)| 国外品牌采用航顺HK32F030R8T6代替出现串口不兼容解决方法
HK32MCU应用笔记(三)| 航顺芯片在5G光纤测试仪的应用
HK32MCU应用笔记(四)| 关于老版本HK32F103串口USART偶尔出现数据错误
HK32MCU应用笔记(五)| 关于应用HK32F030延时效率问题
HK32MCU应用笔记(六)| HK32MCU芯片调试心得
HK32MCU应用笔记(七)| 航顺HK32MCU闩锁效应问题研究及预防措施
HK32MCU应用笔记(八)| 航顺HK32F03X内部8M时钟倍频成72M解决方案
HK32MCU应用笔记(九)| HK32F103x8xB系列CAN的应用解决方案
HK32MCU应用笔记(十)| HK32F103xC/D/E的ADC常规和注入通道同时触发时的处理机制
HK32MCU应用笔记(十一)| HK32F103xC/D/E的flash读保护应用及注意事项
HK32MCU应用笔记(十二)| HK32F103xC/D/E的GPIO的应用及注意事项
HK32MCU应用笔记(十三)| HK32F103xC/D/E-ADC的应用及注意事项
HK32MCU应用笔记(十四)| HK32F103x/C/D/E-TIM1的应用及注意事项

来源: 航顺芯片
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 108

HK32F103x/C/D/E是深圳市航顺芯片技术研发有限公司推出的中大容量的103系列芯片。作为32位MCU常用的外设TIM1是高级控制定时器(TIM1 和TIM8)由一个16 位的自动装载计数器组成,它由一个可编程的预分频器驱动。它适合多种用途,包含测量输入信号的脉冲宽度(输入捕获),或者产生输出波形(输出比较、PWM、嵌入死区时间的互补PWM 等)。使用定时器预分频器和RCC 时钟控制预分频器,可以实现脉冲宽度和波形周期从几个微秒到几个毫秒的调节。高级控制定时器(TIM1 和TIM8)和通用定时器(TIMx)是完全独立的,它们不共享任何资源。它们可以同步操作每个定时器都是完全独立的,没有互相共享任何资源。

01、TIM1主要功能

TIM1 和TIM8 定时器的功能包括:

1)、DAC 触发功能

2)、四路输入通道都新增下降沿触发,和双沿触发功能

3)、16 位向上、向下、向上/下自动装载计数器

4)、16 位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65535 之间的任意数值

5)、多达4 个独立通道:

─ 输入捕获

─ 输出比较

─ PWM 生成(边缘或中间对齐模式)

─ 单脉冲模式输出

6)、死区时间可编程的互补输出

7)、使用外部信号控制定时器和定时器互联的同步电路

8)、允许在指定数目的计数器周期之后更新定时器寄存器的重复计数器

9)、刹车输入信号可以将定时器输出信号置于复位状态或者一个已知状态

10)、如下事件发生时产生中断/DMA:

─ 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)

─ 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)

─ 输入捕获

─ 输出比较

─ 刹车信号输入

11)、支持针对定位的增量(正交)编码器和霍尔传感器电路

12)、触发输入作为外部时钟或者按周期的电流管理

02、TIM1 trigger 触发ADC转换

转换可以由外部事件触发(例如定时器捕获,EXTI 线)。如果设置了EXTTRIG 控制位,则外部事件就能够触发转换。EXTSEL[2:0]和JEXTSEL2:0]控制位允许应用程序选择8 个可能的事件中的某一个,可以触发规则和注入组的采样。

注意:当外部触发信号被选为ADC 规则或注入转换时,只有它的上升沿可以启动转换。

“HK32MCU应用笔记(十四)|

“HK32MCU应用笔记(十四)|

“HK32MCU应用笔记(十四)|

软件触发事件可以通过对寄存器ADC_CR2 的SWSTART 或JSWSTART 位置’1’产生。规则组的转换可以被注入触发打断。

03、操作TIM1 trigger触发ADC转换需要注意

用户在使用HK32F103xC/D/E的ADC注入通道配置为外部事件触发转换方式,当选择定时器触发时(比如TIM1的CC4事件触发),只要TIM1的Counter Enable,CC4E不置1,MOE也不置1,我们的芯片就能触发ADC转换了,而S**T芯片必须是CC4E置1,MOE也置1才能触发ADC转换,这说明我们芯片TIMER的trigger信号只要TIM1的Counter enable就输出了,而S**T芯片要CC4E置1,MOE也置1才输出trigger信号。

如果ADC的转换数据一直在有效使用的情况下,(比如说一直用 DMA把数据搬运到有效参与系统运行的场合)如果这样配置我们芯片会在被认为是TIMER不触发转换的时候(CC4E置0,MOE也置0)产生很多无效的数据 影响系统正常运行。

如果遇到上面的问题时,在不使用ADC转换数据时要将TIMER的 Counter Disable。要正常使用时再Enable TIMER Counter。

以上有关寄存器的介绍可以参考我们HK的HK32F103xC/D/E的应用手册。

相关阅读:
HK32MCU应用笔记(一)| HK32F030X系列在PH测量笔的应用
HK32MCU应用笔记(二)| 国外品牌采用航顺HK32F030R8T6代替出现串口不兼容解决方法
HK32MCU应用笔记(三)| 航顺芯片在5G光纤测试仪的应用
HK32MCU应用笔记(四)| 关于老版本HK32F103串口USART偶尔出现数据错误
HK32MCU应用笔记(五)| 关于应用HK32F030延时效率问题
HK32MCU应用笔记(六)| HK32MCU芯片调试心得
HK32MCU应用笔记(七)| 航顺HK32MCU闩锁效应问题研究及预防措施
HK32MCU应用笔记(八)| 航顺HK32F03X内部8M时钟倍频成72M解决方案
HK32MCU应用笔记(九)| HK32F103x8xB系列CAN的应用解决方案
HK32MCU应用笔记(十)| HK32F103xC/D/E的ADC常规和注入通道同时触发时的处理机制
HK32MCU应用笔记(十一)| HK32F103xC/D/E的flash读保护应用及注意事项
HK32MCU应用笔记(十二)| HK32F103xC/D/E的GPIO的应用及注意事项
HK32MCU应用笔记(十三)| HK32F103xC/D/E-ADC的应用及注意事项

来源: 航顺芯片(作者:yongfeng)
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 117

随着世界经济一体化进程加快,全球化信息时代已经到来。航顺芯片作为国内第一梯队高端32位MCU企业,响应国内外开发者工程师提议和要求,为全球广大用户提供HK32MCU中英文数据和用户手册大全(可在航顺芯片官网www.hsxp-hk.com 或者21IC论坛下载,各种技术文档应有尽有),其产品和服务立足本土并不断迈向国际化。

众所周知,国外嵌入式MCU企业提供给开发者都是英文数据和用户手册,并没有中文数据和用户手册,而通过中国部分粉丝翻译的中文数据和用户手册在专业语法和技术节点等方面都存在着非常多的错译而产生很多使用上BUG,国内绝大部分MCU厂商只提供给开发者中文数据和用户手册并没有英文数据和用户手册,这也给国内外广大用户的使用带来不便。

航顺HK32MCU是业界极少数能同时提供中英文数据和用户手册的高端32位MCU企业,服务好国内用户的同时秉承走向国际市场的理念,为全球广大用户提供HK32MCU系列产品中英文数据和用户手册让国内外客户享受更快、更好、更专业服务,而这也是庞大的嵌入式系统产品生态中的一环,弘扬工匠精神需要一点一滴耕耘并长时间坚持和巨大投入才能不断完善好HK32MCU巨大生态,让开发者好用、便宜、愿意用、敢用、热爱、肯定和支持是航顺全体成员的价值和荣幸。

航顺芯片拥有世界顶级CPU研发团队,致力以“车规SoC+高端MCU超市双战略、让万物互联更智慧让智慧生活更美好”为使命,实现“AIOT多核异构HK32MCU为核心、打造航顺无边界生态平台级企业”的伟大愿景。航顺芯片在MCU技术文档、数据手册、开发工具、开发环境以及SDK软件等生态建设上为用户提供全套的技术开发资料,其中数据和用户手册作为MCU最基本资料但也是生态建设最重要的一环。航顺HK32MCU系列产品可提供中英文数据和用户手册,以方便国内外广大用户使用。

“航顺HK32MCU中英文数据和用户手册齐全服务本土化、走向国际化"

“航顺HK32MCU中英文数据和用户手册齐全服务本土化、走向国际化"

“航顺HK32MCU中英文数据和用户手册齐全服务本土化、走向国际化"

更多中英文资料可登录航顺芯片官网www.hsxp-hk.com 以及21ic论坛https://bbs.21ic.com/iclist-1010-1.html进行查询和下载。

“航顺芯片官网"
航顺芯片官网

“21ic论坛"
21ic论坛

“
21ic论坛

来源:航顺芯片(作者:Helen Bai、Micle)
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 28

看手机、电脑等不良用眼行为使得越来越多的人感觉到眼睛的疲惫和不适,这使得可缓解视疲劳的眼部按摩仪越来越受到大家的欢迎。眼部按摩仪是结合了现代眼科理论和中医美容学原理的护眼美眼专用仪。眼睛按摩仪根据眼部的高低轮廓与不同的穴位分布精心设计而成,可有效缓解视疲劳,预防近视、弱视,也可以疏通经络、调和气血、改善眼部血液微循环,从而达到促进新陈代谢、缓解眼睛疲劳,恢复睫状肌弹性的效果。

SKG4301是一款基于航顺HK32F030K6T6 32位MCU开发的眼部按摩仪,具有多维眼部按摩;活力、舒缓和睡眠三种按摩模式;42℃热敷;内置场景音乐等功能。HK32F030K6T6出色的低功耗,按摩仪一次充电,续航时间可达120~180分钟。

“SKG4301眼部按摩仪"
SKG4301眼部按摩仪

“眼部按摩仪PCB图"
眼部按摩仪PCB图

“眼部按摩仪系统框图"
眼部按摩仪系统框图

HK32F030K6T6产品特点

➣CPU

●ARM Cortex-M0内核

●最高时钟频率:72MHz

●24位System Tick定时器

●支持CPU Event信号输入至MCU引脚,实现与板级其它SOC CPU的联动

➣工作电压范围

●单电源域:主电源VDD为2.0 V ~ 5.5V

➣工作温度范围:-40℃ ~ +105℃

➣VDD典型工作电流

●运行(Run)模式:13.23 mA/72MHz@3.3V

●睡眠(Sleep)模式:5.44 mA@3.3V

●停机(Stop)模式:LDO低功耗10 μA@3.3V

➣存储器

●最高64 Kbyte的Flash存储器

●CPU主频不高于24 MHz时,支持零等待总线周期

●具有代码安全保护功能,可分别设置读保护和写保护

●支持存储于Flash的指令和数据加密,以防止Flash内容被物理攻击

●10 Kbyte SRAM(不支持硬件校验功能)

➣时钟

●外部HSE:4~16MHz,典型频率为8MHz

●外部LSE:32.768kHz

●片内HSI:8 MHz/14MHz/56MHz

●片内LSI:40kHz

●PLL时钟

●芯片管脚输入时钟

➣DMA

●5个通道的DMA控制器

●支持Timer、ADC、SPI、I2C、USART等多种外设触发

➣安全加密: CRC计算单元

➣数据通信接口

●2个USART:支持主同步 SPI和调制解调器控制,具有 ISO7816接口、LIN、IrDA能力、自动波特率检测和唤醒特性

●2个高速SPI:支持4至16个可编程比特帧和复用的I2S接口

●2个I2C:支持极速模式(1 Mbit/s)、SMBus和PMBus,可从停机模式唤醒

➣定时器

●1个高级控制定时器(TIM1)

●5个通用定时器(TIM3/TIM14/TIM15/TIM16/TIM17)

●1个基本定时器(TIM6)

➣日历 RTC,具有闹钟功能,可从停机 /待机模式周期唤醒

➣片内模拟电路

●1个12位的ADC:16个外部模拟信号输入通道,支持最高1MSPS采样频率的自动连续转换和扫描转换

●1个温度传感器:模拟输出在内部连接到A/D转换器独立通道

➣定点数除法/开方运算单元

●支持32位定点数除法,可同时获得商和余数

●支持32位定点数高精度开方

➣可靠性

●通过HBM2000V/CDM500V/MM200V/LU等级测试

来源:航顺芯片
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 40

页面

订阅 RSS - HK32MCU