雅特力

近日,雅特力重磅发布AT32A403A首款车规级MCU芯片,正式进军车规芯片领域。兼具高效能、高安全与高可靠性,可广泛适用于车身控制、ADAS辅助驾驶、车载影音、BMS等车载应用。

高可靠性,满足车规级标准

相比于一般性电子产品,汽车电子对MCU的可靠性要求更高,以保障用户安全及极端环境中驾驶工作。作为雅特力首款车规级MCU产品,AT32A403A顺利通过AEC-Q100 Grade2车规级可靠性认证,满足功能安全标准车规级MCU的能力,可用于环境温度范围-40°C到105°C的大部分车载应用环境,符合车用电子高可靠性和稳定性要求。

雅特力将安全可靠性要求放在第一位,遵循AEC-Q100标准,进行了包括加速环境应力测试、加速寿命测试、封装组装整合测试、电气特性确认测试等一系列车规级认证。同时加强产品质量管控,将质量管理渗透到产品的研发、制造、销售、技术服务等各个方面,落实产品可靠度验证及管理,确保产品可靠度无虞。

1.jpg

优异性能,实现汽车高速运算需求

延续AT32F403A的性能优势,AT32A403A搭载32位ARM® Cortex®-M4内核,内建单精度浮点运算单元(FPU),采用55nm先进制程有效提升整体效能达200MHz的运算速度。内置高速存储器,最高可支持1MB Flash及224KB SRAM,包含1个高阶外部储存器(XMC)扩展,并额外提供高达16M字节外部SPI闪存存储器接口。高主频和大内存设计,满足车用电子各种复杂功能算法需要。

为了满足当前汽车电子的多样化需求,AT32A403A集成丰富外设功能,提供多种通信模块,多达3个I2C、4个SPI、2个SDIO、8个USART/UART、1个USBFS、和2个CAN接口,可实现汽车控制的多种通讯模式,满足车载网络连接需求。

AT32A403A同时配备3个12-bit 2Msps高速ADC,2个12位DAC,可实现车用电子高速数据采集和传输。并配备8个通用16位定时器,2个通用32位定时器和多达2个16位高级定时器,支持车载电机控制。

2.png

AT32A403A系列产品支持睡眠,深睡眠,及待机三种低功耗模式,供电电压为2.6V至3.6V,省电模式可保证汽车电子低功耗应用的要求,在汽车不运行以及所选的电子设备不工作时,关闭控制模块或进入低功耗状态。

高效安全开发生态

AT32A403A适用于AT32 MCU已有开发生态体系,如AT-Link- Family编程调试工具等硬件资源,以及BSP标准库、ICP/ISP编程工具等软件资源,支持Keil, IAR, eclipse, RT-Thread Studio等IDE平台与RT-Thread OS, FreeRTOS及LittlevGL等OS/GUI平台,提升汽车电子产品开发效率。

汽车产业加速迈向智能网联电气化,信息安全愈发重要。AT32A403A具有多重的芯片安全防护措施,包含绝对性的读保护(RDP)、随机数Flash烧录,以及雅特力自行研发的sLib(security library)功能,可指定范围以密码保护特定程序区,例如上游方案商将核心算法保护后,可提供给下游客户做二次程序开发。对于外部扩展SPI NOR Flash通过MCU烧录此外扩Flash时,该区段程序与资料会被芯片内部硬件打乱数值加密,对MCU代码做了全面性防护。

应用广泛,丰富汽车电子智能体验

AT32A403A具备高可靠性、高性能及安全代码防护等优势,可应用在车灯、车窗、座椅、BMS、风扇、空调、BLDC电机、传感器、T-Box、门把手、OBC、仪表、汽车中控娱乐系统、EPS、倒车雷达、ADAS、360环视、OBD、智能后视镜、PM2.5、抬头显示HUD、无线充、报警器、PTC汽车加热器等,覆盖车身控制、多媒体信息系统、仪表控制、电源电机,以及新兴的智能性和实时性的安全系统,为汽车电子领域带来更丰富的智能体验。

3.png

因应多样的封装存储需求,AT32A403A提供了一系列芯片供选用,12个产品型号,包括QFN48, LQFP48, LQFP64, LQFP100等4种封装类型选择。目前,该系列产品已经开始发送样片并在今年8月正式投入量产供货

关于AEC-Q100

AEC-Q100认证是汽车电子委员会(Automotive Electronics Council)制定的车用电子元件可靠性测试标准,在全球汽车产业都具有极高的权威性。AEC-Q100认证门槛高,测试项目覆盖广,对芯片产品的设计质量、安全性、可靠性要求极为严苛,是集成电路厂家进入汽车领域的重要通行证。AT32A403A通过AEC-Q100认证,标志着雅特力车规级MCU性能与可靠性等指标符合国际车规芯片标准,产品质量获得国际权威认证体系的认可和肯定。

来源:AT32 MCU 雅特力科技

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

围观 32

7月21日,由AspenCore主办的2023全球MCU生态发展大会在深圳罗湖君悦酒店圆满举行。本次活动聚集国际和本土知名MCU厂商的技术和应用专家,为来自消费电子、家电、工业控制、通信网络、新能源汽车和物联网领域的OEM厂商和方案集成商代表带来MCU领域的最新技术趋势和应用解决方案。

雅特力产品市场经理林金海先生发表了“AT32 MCU加速应用创新与产业智慧升级”的主题演讲,介绍了AT32 MCU产品布局规划,新产品市场方向,开发生态系统,AI Edge人工智能布局及创新应用方案,现场氛围热烈,人头攒动。

1.jpg

大会中林金海先生详细介绍了雅特力AT32 MCU产品家族,包含低功耗、超值型、主流型、高性能、无线型及车载型六大系列,共15款产品,近200个型号,全系列产品采用55nm先进工艺及ARM® Cortex®-M4高效能或M0+低功耗内核,产品应用覆盖5G、物联网、车载、消费、商务、电机、工控及新能源电子等领域,为广大用户提供高性能、高性价比、低功耗的MCU产品,满足不同领域不同产品的多元化市场需求。

林金海先生提到,随着物联网、工业自动化、新能源和汽车电子的高速发展,雅特力紧跟市场需求,将推出符合不同细分市场的MCU新产品,推动应用创新与升级。

AT32A403A车载型MCU

AT32A403A搭载ARM® Cortex®-M4内核,达200MHz CPU运算速度,最高可支持1MB Flash及224KB SRAM。即将通过AEC-Q100 Grade2车规级可靠性认证,兼具高效能、高安全与高可靠性,可广泛适用于车身控制、ADAS辅助驾驶、车载影音、BMS等新能源车用场景。预计将于2023年8月正式发布!

2.png

AT32F402/405主流型MCU

AT32F402/405系列高效能ARM® Cortex®-M4微控制器,高达216MHz CPU运算速度,最高可支持256KB Flash及96KB SRAM,内建独立的HS USB OTG(F405内建高速PHY)与FS USB OTG,特别适用于高阶电竞市场,工业自动化,USB周边,物联网及消费性电子等各种高运算、高速USB应用需求的设计。预计将于2023年9月正式发布!

3.png

此次活动现场雅特力重点展示了基于AT32 MCU的光伏逆变器应用方案,AT32 MCU以其高效能、高稳定性、高性价比的优势,打造了更安全、高效、智能的光伏应用方案,通过智能监测、预测和调度,可以提高光伏系统的效率和可靠性,同时实现能源的优化配置和最大化利用,助力社会绿色低碳可持续发展。

4.png

雅特力展台

5.png

光伏逆变器

6.jpg

低压电机方案板

7.jpg

EmberGL 3D演示

从简单的控制到嵌入式系统,再到物联网,我们对MCU产品性能和应用场景的要求不断提升,生态建设也变得尤为重要。雅特力不断构建完善的开发生态体系,提供全面性的开发工具平台,如AT-Link- Family编程调试工具等硬件资源,以及BSP标准库、ICP/ISP编程工具等软件资源,支持Keil, IAR, AT32 IDE, eclipse, RT-Thread Studio等IDE平台与RT-Thread, FreeRTOS及LittleVGL等OS/GUI平台。通过易用的软硬件工具,提升设计人员开发体验和便利,降低入门使用门坎,并减少重复设置工作,加速开发效率。

来源:AT32 MCU 雅特力科技

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

围观 21

7月11日,慕尼黑电子展在国家会展中心(上海)盛大开幕。雅特力聚焦电机控制、工业控制、智慧家电、汽车电子、消费及商务等热门应用场景,携高性能AT32 MCU与创新应用成果闪耀沪上,实现完美“首秀”。

全日精彩不断,亮点纷呈,吸引了众多电子行业人士参观交流!

本次展会现场还有哪些精彩看点?让我们一探究竟!

01、电机控制

雅特力在电机技术上不断突破与改进,推出了多款高性价比电机MCU与应用方案,现场展示了多款电机控制应用方案,包括低压电机方案板、高速风筒、电动两轮车、无人机、手持云台、滑板车控制器、运动控制器等。

1.jpg低压电机方案板

雅特力低压电机开发板基于双ADC引擎AT32F413,运行了雅特力最新开发的电机库。可执行有位置传感器/无位置传感器FOC弦波矢量控制和120°方波BLDC电机控制,适用于多种电机驱动应用。

02、工业控制

雅特力全系列针对工业级别芯片设计,具有高可靠度和高安全性等特征,保证产品在-40℃~105℃的工作环境稳定运行。AT32 MCU已大量应用在工业自动化场景,此次现场展示了光伏逆变器、微机综保、变频器、数字电焊机、DTU、MPPT等应用方案。

2.jpg

光伏逆变器

AT32 MCU主频高达288MHz,可高效处理逆变器的复杂控制演算法,替代DSP,实现降本增效,同时满足高速获取资料的需求。AT32 MCU以其高效能、高稳定性、高性价比的优势,打造了更安全、高效、智能的光伏应用方案,为电网提供更加稳定、谐波含量较少的纯净电流,同时保障电网安全稳定,提升系统发电效率,助力社会绿色低碳可持续发展。

03、智慧家电

随着移动互联技术的蓬勃发展,家电朝着智能化趋势蓬勃发展,与传统家电不同,智能家居产品通过传感器和控制芯片来捕捉和处理信息。雅特力加大对MCU产品研发投入,通过IEC 60730家电安全标准认证,实现家电产品核心器件的全面覆盖。现场展示了亚马逊智能开关、毫米波雷达、吸尘器、安防报警器等产品应用。

3.jpg

智能开关

雅特力AT32F415系列MCU已实现支持亚马逊的Amazon Connect Kit (ACK)功能,并在亚马逊的官方产品智能调光开关批量量产。通过支持Alexa的智能音箱或APP应用程序,为墙面开关添加语音控制功能,从传统开关轻松升级为智能开关。

04、车载应用

雅特力在车载领域不断发力,即将推出车用型AT32A403A系列MCU,符合AEC-Q100 Grade2车规级可靠性认证标准,可广泛适用于车身控制、ADAS辅助驾驶、车载影音、BMS等新能源车用场景。现场可以近距离了解车载多媒体、车载空调、360环视、充电桩、充电枪等方案特色。

4.jpg

ADAS 360环视

雅特力AT32F403A与AT32F413系列均搭载32位ARM® Cortex®-M4内核,支持DSP指令集且整合浮点单元(FPU)。藉由 AT32高达240MHz的高主频高计算力,224KB大尺寸SRAM,双CAN总线,以及宽广的工作温度(-40~105℃)范围等优势,将设备节点独立且模块化,为ADAS汽车环视系统带来了大幅功能提升,既能达到ADAS车载在速度和性能上的要求,又能保证系统的可靠性和安全性,十分符合汽车电子应用。

05、消费&商务

雅特力在消费与商务市场有着成熟且广泛的应用案例,如3D打印机、MFi键盘、数位板、手持云台等众多应用,并不断向高端消费电子发力。

5.jpg

MFi键盘

采用AT32F425超值型MCU,主频最高96MHz,快速响应键盘输入和USB数据,可连接iOS设备,是目前市场上十分受欢迎的热销产品。精彩仍在继续,活动还将火热进行2天,期待大家前来观展!

来源:AT32 MCU 雅特力科技

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

围观 22

DMA简介

IDMA控制器的作用不仅在增强系统性能并减少处理器的中断生成,而且还针对32位MCU应用程序专门优化设计。DMA控制器为存储器到存储器,存储器到外设和外设到存储器的传输提供了7个通道。每个通道都支持外设的DMA请求映射到任意通道上。
1.png
图1. DMA控制器架构
DMA请求弹性映射简介
在使用AT43F425xx系列DMA时,必须配置DMA请求弹性映射功能,否则DMA不会运作。DMA请求弹性映射可将任意一个外设产生的DMA请求映射到通道1到通道7中的任意一个通道。
当设定弹性模式时(DMA_FLEX_EN=1),每个通道的请求来源由CHx_SRC来设定[x=1~7]。使用例子:假如DMA通道1指定成I2C1_TX,通道3要指定成I2C1_RX,其他不使用,则设定上必须是DMA_FLEX_EN=1,CH1_SRC=11,CH3_SRC=10,CH[2/4/5/6/7]_SRC=0。
CHx_SRC设定值对应请求来源见下表:
各IP对应ID号如下表:
2.png
表1. 各IP对应ID号列表
注:表格中“CHx_SRC”为ID号;“请求来源”为各IP的DMA请求。
DMA功能解析

可编程数据宽度

DMA控制器的通道可支持传输不同数据宽度,byte/halfword/word。通过DMA_CxCTRL中的PWIDTH和MWIDTH位可以对源数据和目标数据的数据宽度进行编程,通常情况下需要设置PWIDTH和MWIDTH位相等,当PWIDTH不等于MWIDTH时,会依据PWIDTH/MWIDTH设定将资料对齐。
3.png
图2. PWIDTH:byte, MWIDTH:half-word
4.png
图3. PWIDTH:half-word, MWIDTH:word
配置DMA弹性映射
在M2P与P2M模式下,必须配置DMA弹性映射,否则DMA不会响应外设DMA请求。DMA弹性映射的作用是为外设的DMA请求复用通道,即任何一个外设的DMA请求可以映射到DMA1的任意通道,这大大增加了DMA通道分配的灵活性。
配置DMA弹性映射比较简单,只需调用专门提供的接口函数即可:
DMA配置解析
以下对DMA的配置接口及流程进行说明。
函数接口
5.png
表2. 通道配置函数列表
数据流配置
  • 设置外设地址(CxPADDR寄存器)

    数据传输的初始外设地址,在传输过程中不可被改变。

  • 设置存储器地址(CxMADDR寄存器)

    数据传输的初始内存地址,在传输过程中不可被改变。

  • 配置数据传输量(CxDTCNT寄存器)

    可编程的传输数据长度最大为65535。在传输过程中,该传输数据量的值会逐渐递减。

  • 数据流配置(CxCTRL寄存器)

    包含通道优先级,数据传输的方向、宽度、地址增量模式、循环模式和中断方式。

    优先级(CHPL)

    分为4个等级,最高优先级、高优先级、中等优先级和低优先级。

    若有2个流优先级设定相同,则较低编号的流有较高的优先权。举例,通道1优先于通道2。

    数据传输方向(DTD)

    分为存储器到外设(M2P),外设到存储器(P2M)或存储器到存储器(M2M)传输。在存储器到存储器传输模式下不允许使用循环模式、双缓冲模式和直接模式。

    数据传输宽度(PWIDTH/MWIDTH)

    根据实际使用情景,可配置宽度为byte、halfword、word。

    地址增量模式(PINCM/MINCM)

    当通道配置设定为增量模式时,下一笔传输的地址将是前一笔传输地址加上传输宽度(PWIDTH/MWIDTH)。

    循环模式(LM)

    当流配置设定为循环模式时,在最后一次传输后CxDTCNT寄存器的内容会恢复成初始值。

  • 配置DMA弹性映射(DMA_SRC_SELx寄存器的CHx_SRC)

    在非存储器到存储器(M2M)模式下时,需要将外设的DMA请求DMA请求号写入,才能启动通道响应外设的DMA请求。

  • 打开通道(CxCTRL寄存器的CHEN位)

配置流程
  • 打开DMA时钟;

  • 调用通道复位函数复位数据流;

  • 调用结构体初始化函数初始化通道配置结构体;

  • 调用初始化函数初始化通道;

  • 调用DMA请求映射使能函数配置弹性映射功能;

  • 调用通道使能函数开启通道。

来源:AT32 MCU 雅特力科技

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

围观 69

I2C接口简介

I2C接口是由数据线SDA和时钟线SCL构成,在标准模式下通信速度可达到100kHz,快速模式下则可以达到400kHz,增强快速模式可达到1MHz。一帧数据传输从开始信号开始,在结束信号后停止,在收到开始信号后总线被认为是繁忙的,当收到结束信号后,总线被认为再次空闲。I2C接口具有主机和从机模式、多主机功能、可编程建立和保持时间、时钟延展功能、DMA存取数据、支持SMBus 2.0协议等特点。

1.png
图1. I2C框图

I2C接口通信

主机通信流程

主机通信初始化

1. 主机时钟初始化

在启动外设(I2CEN)之前,必须先设置I2Cx_CLKCTRL寄存器的各个位用以配置I2C主时钟。

  • DIV[7:0]:I2C时钟分频;

  • SDAD[3:0]:数据保持时间(tHD;DAT)

  • SCLD[3:0]:数据建立时间(tSU;DAT)

  • SCLH[7:0]:SCL高电平时间

  • SCLL[7:0]:SCL低电平时间

该寄存器的配置可以使用Artery_I2C_Timing_Configuration时钟配置工具计算,见第三章节。低电平控制:当检测到SCL总线为低电平时,内部SCLL计数器开始计数,当计数值达到SCLL值时,释放SCL线,SCL线变为高电平。

高电平控制:当检测到SCL总线为高电平时,内部SCLH计数器开始计数,当计数值达到SCLH值时,拉低SCL线,SCL线变为低电平,当在高电平期间,如果被外部总线拉低,那么内部SCLH计数器停止计数,并开始低电平计数,这为时钟同步提供了条件。

2.png
图2. 主机时钟的产生

2. 主机通信初始化

在启动通讯前须先设定I2C_CTRL2寄存器中的几项参数:

1) 设置传输字节数

  • ≤255字节

    配置I2C_CTRL2的RLDEN=0,关闭重载模式

    配置I2C_CTRL2的CNT[7:0]=N

  • >255字节

    配置I2C_CTRL2的RLDEN=1,使能重载模式

    配置I2C_CTRL2的CNT[7:0]=255

    剩余传输字节数N=N-255

2) 设置传输结束模式
  • ASTOPEN=0:软件结束模式,当数据传输完成后,I2C_STS的TDC标志置1,软件设置GENSTOP=1或者GENSTART=1,发送STOP条件或者START条件。

  • ASTOPEN=1:自动结束模式,当数据传输完成后,自动发送STOP条件。

3) 设置从机地址
  • 设置寻址的从机地址值(I2C_CTRL2的SADDR)

  • 设置从机地址模式(I2C_CTRL2的ADDR10)

    ADDR10=0:7位地址模式

    ADDR10=1:10位地址模式

4) 设置传输方向(I2C_CTRL2的DIR)
  • DIR=0:主机接收数据

  • DIR=1:主机发送数据

5) 开始传输

设置I2C_CTRL2的GENSTART=1,主机开始在总线上发送START条件和从机地址。

3. 主机10 bits寻址的特殊时序初始化

在10位地址传输模式下,I2C_CTRL2的READH10用于产生特殊时序,当READH10=1时,支持如下传输序:主机先发送数据给从机,然后再从从机读取数据,传输时序图如下图所示:

3.png
图3. 10位地址的读访问READH10=1

主机在软件结束模式(ASTOPEN=0)下,发送数据到从机,当数据发送完成后设置READH10=1,然后再从从机接收数据。

4.png
图4. 10位地址的读访问READH10=0

主机通信初始化软件接口

主机通信初始化所用到的软件接口通过独立的函数接口实现,如下:

5.png

i2c_init函数三个参数分别为:所使用的I2C、数字滤波值和主机时钟配置值。

i2c_transmit_set 函数用于初始化通信参数,包括:所使用的I2C、从机地址、传输字节数、停止条件产生模式和起始条件产生模式。

i2c_addr10_mode_enable函数用于使能10位地址模式。

i2c_addr10_header_enable函数用于使能10位地址头读取时序,即主机发送完整的10位从机地址读序列或主机只发送10位地址的前7位。

主机发送流程

1) I2C_TXDT数据寄存器为空,I2C_STS的TDIS=1;

2) 向TXDT数据寄存器写入数据,数据开始发送;

3) 重复1、2步骤直到发送CNT[7:0]个数据;

4) 如果此时I2C_STS的TCRLD=1(重载模式),分为以下两种情况:
  • 剩余字节数N>255:向CNT写入255,N=N-255,TCRLD被自动清0,传输继续;
  • 剩余字节数N≤255:关闭重载模式(RLDEN=0),向CNT写入N,TCRLD被自动清0,传输继续。
5) 结束时序
  • 停止条件产生:
    软件结束模式(ASTOPEN=0):此时I2C_STS的TDC置1,设置GENSTOP=1产生STOP条件;
    自动结束模式(ASTOPEN=1):自动产生STOP条件。
  • 等待产生STOP条件,当STOP条件产生时,I2C_STS的STOPF置1,将I2C_CLR的STOPC写1,清除STOPF标志,传输结束。
6.png
图5. I2C主机发送流程图
7.png
图6. I2C主机发送时序图

主机发送流程软件接口

主机发送通过独立的函数接口实现,如下:

8.png

i2c_master_transmit函数为i2c_application.c文件所提供的应用层接口函数,参数包括:I2C结构体指针、从机地址、发送数据指针、发送数据字节数和函数超时时间。

注:此函数为Artery所提供的标准主机发送函数。用户也可根据前述主机发送流程,自行编写主机发送函数。

主机接收流程

1) 当收到数据后,RDBF=1,读取RXDT数据寄存器,RDBF被自动清零;

2) 重复步骤2直到接收CNT[7:0]个数据;

3) 如果此时I2C_STS的TCRLD=1(重载模式),分为以下两种情况:
  • 剩余字节数N>255:向CNT写入255,N=N-255,TCRLD被自动清0,传输继续;
  • 剩余字节数N≤255:关闭重载模式(RLDEN=0),向CNT写入N,TCRLD被自动清0,传输继续。

4) 当在接收到最后一个字节时,主机会自动发送一个NACK。

5) 结束时序

  • 停止条件产生:
    软件结束模式(ASTOPEN=0):此时I2C_STS的TDC置1,设置GENSTOP=1产生STOP条件;
    自动结束模式(ASTOPEN=1):自动产生STOP条件。
  • 等待产生STOP条件,当STOP条件产生时,I2C_STS的STOPF置1,将I2C_CLR的STOPC写1,清除STOPF标志,传输结束。
9.png
图7. I2C主机接收流程图
10.png
图8. I2C主机接收时序图

主机接收流程软件接口

主机接收通过独立的函数接口实现,如下:

11.png

i2c_master_receive函数为i2c_application.c文件所提供的应用层接口函数,参数包括:I2C结构体指针、从机地址、接收数据指针、接收数据字节数和函数超时时间。

注:此函数为Artery所提供的标准主机接收函数。用户也可根据前述主机接收流程,自行编写主机接收函数。

从机通信流程

从机通信初始化

1. 从机地址配置

每个I2C从设备可同时支持2个从设备地址,由OADDR1和OADDR2指定

I2C_OADDR1

  • 通过ADDR1EN使能

  • 通过ADDR1MODE配置为7位(默认)或10位地址

I2C_OADDR2
  • 通过ADDR2EN使能

  • 固定7位地址模式

  • 可通过ADDR2MASK[2:0]来在进行地址匹配比较时屏蔽掉0~7个LSB地址位

    ADDR2MASK=0表示7位地址中的每一位都要参与匹配比较

    ADDR2MASK=7表示任何非保留地址的7位地址都会被该从设备应答

2. 从机地址匹配

当I2C启用的地址选中匹配时,ADDRF中断状态标志会被置1,如果ADDRIEN位为1,就会产生一个中断。如果两个从地址都使能,在地址匹配产生ADDR中断时,可以查看状态寄存器中的ADDR[6:0]来得知是OADDR1还是OADDR2被寻址了。

3. 从机字节控制模式(通常SMBus模式下才使用)

从设备可以对每个收到的字节进行应答控制。

所需配置:SCTRL=1 & RLDEN=1 & STRETCH=0 & CNT≥1

从机字节控制流程:

1) 每收到一个字节TCRLD置位,时钟延展于第8和第9个脉冲之间

2) 软件读取RXDT中的值,并决定是否置位ACK

3) 软件重装载CNT=1来停止时钟延展

4) 应答或非应答信号在第9个脉冲时刻出现在总线上

注意:

置位SCTRL时,必须开启时钟延展,即STRETCH=0

CNT可以是大于1的值,来实现多个字节以自动ACK接收完毕后再启动应答控制,从设备发送时推荐关闭SCTRL,此时无需字节应答控制。

从机通信初始化软件接口

从机通信初始化所用到的软件接口通过独立的函数接口实现,如下:

12.png

i2c_own_address1_set函数用于配置OADDR1地址模式以及ADDR1地址值。

i2c_own_address2_set函数用于配置ADDR2地址值以及ADDR2屏蔽位。

i2c_own_address2_enable函数用于使能ADDR2地址。

i2c_slave_data_ctrl_enable函数用于使能从机字节控制模式。

i2c_clock_stretch_enable函数用于使能从机时钟延展功能。

i2c_reload_enable函数用于使能发送数据重载模式。

从机发送流程

1) 响应主机地址,匹配时回复ACK;

2) TXDT为空时,置位TDIS,从设备写入发送数据;

3) 每发送一个字节会收到ACK,且置位TDIS;

4) 如果收到NACK位:
  • 置位NACKF,产生中断;
  • 从设备自动释放SCL和SDA(以便主设备发送STOP或RESTART);
5) 如果收到STOP位:
  • 置位STOPF,产生中断;

当从机发送开启时钟延展(STRETCH=0)时,在等待ADDRF标志时和发送前一个数据的第9个时钟脉冲后,会把TXDT中的数据拷贝到移位寄存器中,如果此时TDIS还是置位,表示TXDT没有写进待发送数据,将发生时钟延展,如下流程图:

13.png

图9. I2C从机发送流程图

需要注意的是,在时钟延展关闭(STRETCH=1)的情况下,如果在将要传输数据的第一个Bit位开始发送之前,也就是SDA边沿产生之前,如果数据还未写入TXDT数据寄存器,那么会发生欠载错误,此时I2C_STS的OUF将会置1,并将0xFF发送到总线。

为了能及时的写入数据,可以在通信开始前,先将数据写入到DT寄存器:软件先将TDBE置1,目的是为了清空TXDT寄存器的数据,然后将第一个数据写入TXDT寄存器,此时TDBE清零。

14.png
图10. I2C从机发送时序图

从机发送流程软件接口

从机发送通过独立的函数接口实现,如下:

15.png

i2c_slave_transmit函数为i2c_application.c文件所提供的应用层接口函数,参数包括:I2C结构体指针、发送数据指针、发送数据字节数和函数超时时间。

注:此函数为Artery所提供的标准从机发送函数。用户也可根据前述从机发送流程,自行编写从机发送函数。

从机接收流程

1) 当收到数据后,RDBF=1,读取RXDT数据寄存器,RDBF被自动清零;

2) 重复步骤2直到所有数据接收完成;

3) 等待收到STOP条件,当收到STOP条件时,I2C_STS的STOPF置1,将I2C_CLR的STOPC写1,清除STOPF标志,传输结束。

16.png
图11. I2C从机接收流程图
17.png

图12. I2C从机接收时序图

从机接收流程软件接口

从机接收通过独立的函数接口实现,如下:

18.png

i2c_slave_receive函数为i2c_application.c文件所提供的应用层接口函数,参数包括:I2C结构体指针、接收数据指针、接收数据字节数和函数超时时间。

注:此函数为Artery所提供的标准从机接收函数。用户也可根据前述从机接收流程,自行编写从机接收函数。

I2C配置工具

功能简介

I2C配置工具Artery_I2C_Timing_Configuration.exe可以实现对主机和从机的时钟、数字滤波、模拟滤波配置。

资源准备

1) 软件环境Artery_I2C_Timing_Configuration.exe
19.png
图13. Artery I2C Timing Configuration
使用步骤

1) 选择芯片型号

选择当前使用的芯片型号,例如可以选择AT32F425。

2) 选择设备模式
  • Master:主模式,I2C作为主机;

  • Slave:从模式,I2C作为从机。

3) 选择I2C速度模式
  • Standard-mode:标准模式,范围0~100kHz;

  • Fast-mode:快速模式,范围0~400kHz;

  • Fast-mode Plus:增强快速模式,范围0~1000kHz。

4) 设置I2C速度(单位kHz)

根据实际需求设置I2C通信速度,例如需要通信速度为10kHz,那么这里设置为10。

5) 设置I2C时钟源频率(单位kHz)

根据实际使用的I2C时钟源频率来配置,例如AT32425 I2C时钟源为PCLK1,当AT32425主频为144MHz,APB1为144MHz时,这里设置为144000。

6) 模拟滤波使能
  • On:打开;

  • Off:关闭。

模拟滤波使能后,将过滤50ns以下的脉冲。

7) 数字滤波(范围0~15)

数字滤波时间=数字滤波值xTI2C_CLK;

其中TI2C_CLK=1/I2C时钟源频率。

当值为0时,数字滤波关闭,当值>0时将过滤小于数字滤波时间的脉冲。

8) 上升时间(tr单位ns)

SCL和SDA总线的上升沿,如图18所示。I2C协议中规定了在标准模式(Standard-mode)、

快速模式(Fast-mode)、增强快速模式(Fast-mode Plus)下的范围,详情请参照表1。上升时间和上拉电阻的阻值关系很大,上拉电阻越小,上升时间越短,可以支持的通信速度就越快,但是功耗也越高。

表2中给出了一些常用上拉电阻阻值所对应的上升沿时间,实际可能会因为总线挂的设备数量、布线等差异而有所不同,仅供参考。

9) 下降时间(tf单位ns)

SCL和SDA总线的下降沿,如图18所示。I2C协议中规定了在标准模式(Standard-mode)、快速模式(Fast-mode)、增强快速模式(Fast-mode Plus)下的范围,详情请参照表1。

20.png
图14. 上升沿(tr)下降沿(tf)规范
21.png
表1. I2C时间规范
22.png

表2. 常用上拉电阻阻值的tr、tf参考值(VDD=3.3V)

注:该值是总线上连接两片AT32MCU,一个作为主机,一个作为从机测试出来的值,实际可能会因为总线挂的设备数量、布线等差异而有所不同。

10) 产生代码

点击产生代码,上诉配置的值,将会以代码的形式产生出来,如下图红框所示,只需要将右侧输出的代码替换到自己的程序即可。

23.png
图15. 代码产生

来源:AT32 MCU 雅特力科技

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

围观 127

简介

时钟是芯片正确高效运行的基础,正确的时钟配置是芯片能正确运行的必要条件,其重要性不言而喻。AT32各系列产品的时钟配置部分可能存在细微的差异和需要注意的事项,本文档就着重针对各系列的情况来详细介绍如何结合雅特力提供的V2.x.x的板级支持包(BSP)来配置时钟。

以下介绍时钟配置的方法主要分两种:

1、以手动编写代码调用BSP中提供的驱动函数接口来进行时钟配置。

2、采用时钟工具来配置并生成相应的源码文件。

时钟树

在进行时钟配置之前,应充分了解对应芯片的时钟树结构,这样在进行时钟配置时才会游刃有余。对于系统时钟频率及路径的配置我们需要关注时钟源、倍频及系统时钟部分。类似如下图:

1.png图1. 时钟框图

可由图中得到以下几个关键信息:

1) SCLKSEL:系统时钟可以由HEXT、PLLCLK、HICK三大时钟源提供。

2) HEXT:HEXT是外部高速时钟,其可以外接范围是4~25 MHz的晶振或时钟源。

3) HICK:HICK RC是内部高速振荡器,频率为48 MHz。HICK时钟由内部振荡器给出,但在初始情况下由HICKDIV控制并默认6分频后为8 MHz,亦可配置为不分频,保持48 MHz的频率。

4) PLLCLK:PLL时钟=PLL输入时钟*PLL倍频系数。

5) PLL输入时钟:PLL的输入时钟由PLLRCS及PLLHEXTDIV共同决定,其细分可分为三个来源:HICK 4MHz、HEXT和HEXTDIV,HEXTDIV由HEXT时钟2分频。

代码配置解析

以下将以库函数接口为核心来对时钟配置流程和方法进行说明。

函数接口

各系列产品对应提供的BSP中对硬件的时钟设置部分已封装好接口函数以供调用,以下罗列出时钟配置常用的函数接口,各函数的具体参数及返回值类型等请参考at32f425_crm.c/.h文件。

2.png

时钟配置流程

按常规应用来讲解时钟配置流程,其内容可大致分为如下步骤:

3.png

图2. 时钟配置流程图

复位(CRM Reset)

首先按规范流程应复位CRM配置参数,其主要是将系统时钟切换到HICK,其余的系统时钟配置寄存器写入默认值,待后续进行新配置参数的写入。函数调用的代码实现如下:

4.png

Flash等待周期(Set Flash Wait Cycle)

AT32F425片上采用的是嵌入式Flash,当运行在不同的主频下时需对应设定Flash等待周期。flash等待周期与运行主频关系如下:

5.png

函数调用的代码实现如下:

6.png

时钟源配置(Clock Source Configuration)

与系统时钟相关的高速时钟源主要包括HEXT和HICK,PLL也是使用以上时钟源来进行倍频。需要在配置使能PLL前将所使用的PLL参考时钟源开启并等待其稳定。

  • HEXT

外部高速时钟如采用外接有源时钟的方式时,可开启旁路模式来进行使用,采用晶振时,不能开启旁路模式,旁路模式应在外部高速时钟源使能前进行设定,其默认情况为关闭。旁路模式使能代码实现如下:

7.png

使能HEXT时钟源并等待HEXT时钟稳定,代码实现如下:

8.png

  • HICK

内部高速时钟是由芯片内部振荡器提供,使能HICK时钟源并等待HICK时钟稳定,代码实现如下:

9.png

PLL配置(PLL Configuration)

PLL配置主要包括:PLL时钟源、PLL倍频系数、PLL倍频频率范围等的设置。倍频时钟公式为:PLLCLK=PLL输入时钟*PLL倍频系数。

  • PLL时钟源

PLL时钟源细分有三个来源:1、HICK(4 MHz),2、HEXT,3、HEXT分频时钟,PLL时钟源应在PLL配置使能前开启并等待稳定。以上PLL时钟源在crm_pll_config函数中对应的参数定义如下:

10.png

当选择PLL时钟源为CRM_PLL_SOURCE_HEXT_DIV时,HEXT的分频系数默认为2分频。

  • PLL倍频系数

倍频系数为2~64倍可选,但应该注意最高主频限制,以此按实际情况来合适选择倍频系数,如8倍频使用参数CRM_PLL_MULT_8。

当PLL参数设置完成后,即可开启PLL并等待PLL稳定。示例:外部时钟晶振8 MHz,采用HEXT 2分频时钟作为PLL时钟源,PLLCLK倍频到96 MHz的代码实现如下:

11.png

总线分频(Set Bus Frequency Division)

总线分频包含SCLK到AHBCLK分频、AHBCLK到APB1CLK分频、AHBCLK到APB2CLK分频。AHB总线1分频、APB1/APB2总线1分频的代码实现如下:

12.png

切换系统时钟(Switch System Clock)

系统时钟来源主要有三个:HICK、HEXT、PLLCLK。在切换系统时钟到如上时钟源时应提前确保对应时钟源已稳定。

  • HICK系统时钟

内部高速时钟在系统复位重新运行时默认作为系统时钟,后期代码进行设定时,可有两种频率值来进行设定(8 MHz和48 MHz)。如图1所述HICK默认情况下用的是8 MHz,可配置为48 MHz。

HICK 8 MHz用作系统时钟的代码实现如下:

13.png

HICK 48 MHz用作系统时钟的代码实现如下:

14.png

  • HEXT系统时钟

外部高速时钟用作系统时钟时,其系统时钟频率以实际使用的外部时钟频率为准,范围为4~25 MHz。HEXT用作系统时钟的代码实现如下:

15.png

  • PLLCLK系统时钟

PLLCLK用作系统时钟时,其系统时钟频率以实际的PLL倍频结果为准。其最高频率应满足芯片规格为基础。PLLCLK用作系统时钟的代码实现如下:

16.png

更新核心频率(Update Core Frequency)

提供的BSP中,其代码框架内保留了一个表示系统核心频率的参数值system_core_clock,其保存的是CPU核心的运行频率值,应该在每次系统时钟配置完成后来进行更新。为的是在整个代码框架下,各外设驱动的频率配置能很快获取到当前核心运行频率值并使用。代码实现如下:

17.png

时钟配置示例

以下将以完整的时钟配置流程来进行说明,示例:由8 MHz外部时钟晶振作为时钟源,其2分频路径经PLL倍频到96 MHz并用做系统时钟,AHB采用1分频,APB1/APB2采用1分频。函数system_clock_config代码实现如下:

18.png

时钟工具

时钟配置工具是雅特力科技为方便对AT32系列MCU进行时钟配置而开发的一个图形化配置工具,其主旨是使用户清晰了解时钟路径和配置出期望的时钟频率并生成源码文件。

环境要求

  • 软件要求

需要Windows7及以上操作系统支持。

安装

  • 软件安装

本软件不需要安装,只需直接运行可执行程序AT32_New_Clock_Configuration.exe。

功能介绍

本章节将介绍此工具的基本操作,其主要的启动界面和配置界面如下所示

19.png

图3. 启动界面

20.png

图4. 配置界面

菜单栏

菜单栏内容如图所示:

21.png

图5. 菜单栏

  • “项目”(Project)菜单:

新建:新建时钟配置项目打开:打开已存在的配置项目保存:保存已打开的配置项目

  • “语言”(Language)菜单:

English:选择English作为显示语言简体中文:选择简体中文作为显示语言

  • “生成代码”(General code)菜单:

当在对应型号的操作配置界面将所期望的时钟路径和时钟频率配置完成之后,可点击“生成代码”菜单来选择源码文件的存储路径并生成相应的源码文件。

  • “帮助”(Help)菜单:

新版本下载:联网进行新版本下载版本:查看当前版本

新建配置项目

双击打开时钟配置工具,可看到图示的启动界面,可点击“项目”菜单-->“新建”,进行配置项目的新建,在新建配置项目的过程中需要对芯片的系列所属进行选择,操作方法如下图所示

22.png

图6. MCU选择界面

MCU系列的选择,可点击下拉框来进行选择,当选择好MCU后点击“确定”可进入到时钟配置界面。

配置界面的使用

配置界面主要用来进行时钟路径及参数的配置,以下的介绍将以AT32F425系列作为示例来展开进行,其余系列的配置方法与此类似。

整个配置界面主要可以分为四个大块,如下图所示

23.png

图7. 配置界面框架

1. 标题部分:用于展示当前配置项目所选择的MCU系列。

2. 配置部分:用于对时钟路径和时钟参数进行选择和配置,以达到期望的应用需求。

3. 输出部分:用于时钟输出(CLKOUT)的配置。

4. 在SCLK栏也可在选中PLL为系统时钟时作为输入框,可输入期望的系统时钟频率来反向自动配置出倍频参数。

5. 结果部分:用于显示当前外设所使用的时钟频率及总线上的外设。

接下来就着重介绍一下配置部分的使用。配置部分的流程界面是对应着MCU时钟树来进行的,各系列MCU的此部分可能存在着差异,但使用方式大同小异。时钟路径的配置可按流程对各开关进行点选来进行选择,配置部分如下图所示,将逐个流程点的功能及其注意事项进行介绍。

24.png

图8. 时钟配置框

1. ertc使能:ertc时钟代码配置的使能下拉框。

2. ertcsel:点选框,ertc时钟源选择。当ertc使能开启后,此点选框可配置。

3. lext bypass:外部低速时钟的旁路使能。

4. hext:此为输入框,8 MHz为所采用外部时钟源的默认频率,用户可根据实际使用的外部时钟源频率进行修改。(注:此8 MHz被修改为其他频率值时,对应的BSP中demo目录下的inc/at32f415_conf.h文件内的HEXT_VALUE宏定义也应该一致修改,也可以采用工具生成的at32f415_conf.h文件来进行使用)。

5. hext bypass:高速外部时钟的旁路使能。

6. pllhextdiv:点选框,当HEXT作为PLL时钟源时,可配置输入频率为HEXT分频或HEXT不分频。

7. pllrcs:点选框,可配置PLL时钟源为HEXT或HICK。

8. pll_mode:下拉框,可选择PLL的配置模式(normal或flexible)

9. 倍频系数:选择normal模式时使用PLL_MULT参数进行倍频,计算公式为:PLLCLK=PLL输入时钟*PLL_MULT,选择flexible模式时使用PLL_MS、PLL_NS和PLL_FR参数进行倍频,计算公式为:PLLCLK=PLL输入时钟/PLL_MS*PLL_NS/PLL_FR。为了用户的使用方便,在选定PLL输入时钟源后,结果部分的sclk框中输入目标时钟并按下键盘“Enter”键,会自动计算一组倍频参数以满足用户期望或相近的时钟频率sclk select:点选框,可配置HEXT、PLL或HICK作为系统时钟。

10. sclk select:点选框,可配置HEXT、PLL或HICK作为系统时钟。

11. sclk频率:当采用正向配置时,此作为系统时钟频率的配置结果显示,当将其用作输入框时,输入期望的频率后点击回车键,会根据此输入值反向计算一组合适的或最接近期望值的PLL配置参数。

12. hick to sclk:点选框,当sclk select选择HICK作为系统时钟时,可配置HICK的8 MHz或48MHz到系统时钟(注:当选择48 MHz HICK到系统时钟后,CLKOUT输出HICK时的频率也为48 MHz)。13. usbdiv:下拉框。当PLL时钟被选作为USB的时钟来源时,此处配置PLL时钟到USB时钟的分频系数。

14. USB使能:USB时钟代码配置的使能下拉框。

15. USB时钟频率的显示。此显示栏会实时计算USB时钟的频率并显示,如果配置出来的USB时钟不等于48 MHz时,显示出来的USB时钟频率会标注为红色,而实际应用中没有用到USB时选择disable则不会显示。(注:此部分只针对USB时钟频率的配置,USB外设时钟使能需自行额外打开)

生成代码

当时钟配置完成后,可点击生成代码,然后选择代码生成的路径并确认,最后会在所选目录下生成两个文件夹inc和src,源文件存放在src文件夹下,头文件存放在inc文件夹下。这些文件可结合到BSP_V2.x.x内的工程来进行使用。可以采用新生成的时钟代码文件(at32f4xx_clock.c/at32f4xx_clock.h/at32f4xx_conf.h)将原BSP demo中的对应文件替换,在main函数中进行system_clock_config函数调用即可。

注意事项

外部时钟源(HEXT)修改

因本文档所示例的demo和配置工具都默认采用的8 MHz外部时钟频率,当实际硬件使用的外部时钟源是非8 MHz频率时需注意以下几点。

  • 代码修改

1、以实际的外部时钟频率按文中时钟配置流程章节所描述的时钟配置流程及方法来编写相应的代码,配置出期望的时钟配置及时钟路径。

2、修改对应demo工程中at32f4xx_conf.h文件的HEXT_VALUE值,以实际使用的外部时钟源频率值来进行修改。如实际外部高速时钟使用12.288 MHz的晶振或时钟源时,at32f4xx_conf.h文件应修改如下:

25.png

  • 工具修改

1、在时钟配置工具中的HEXT输入框内填入外部时钟源实际频率值并按“Enter”键确认。

2、配置好所需的时钟路径及时钟频率,生成代码。采用新生成的时钟代码文件(at32f4xx_clock.c/at32f4xx_clock.h/ at32f4xx_conf.h)将原BSP demo中的对应文件替换或取其中函数内容进行替换,在main函数中进行system_clock_config函数调用即可。

工具使用

在使用本时钟配置工具时需注意:

1. 此工具生成的时钟配置源码文件需结合雅特力科技提供的BSP_V2.x.x进行使用。

2. 不同系列所生成的时钟配置源码文件不能型号混用,只能在相对应的工程项目中进行调用。

3. 配置工具中各输入框参数修改后,请以“Enter”键结束。

PS. 案例介绍可点击此处查看

来源:AT32 MCU 雅特力科技

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

围观 73

随着工业自动化,智能家居及汽车电子的发展普及,直流无刷电机(BLDC)和永磁同步电机(PMSM)在诸多领域有了广泛应用。电机作为机械装备上至关重要的组件之一,无论是产品的性能,或是消费者的使用感受,都关乎于电机驱动和控制技术的好坏。

雅特力致力于建立高效电机控制生态系统,不仅有适用于电机控制的MCU,硬件开发套件,还提供有免费且易于使用的电机控制软件算法。从方波驱动到弦波驱动,从霍尔感测器的回授到无感测器的回授,雅特力都有建立起相关资源,协助电机控制工程师快速实现高效的电机矢量控制方案。

低压电机控制开发板

雅特力电机开发板是一个泛用型的低压三相电机驱动器,应用AT32系列微控制器搭配雅特力电机函数库,可驱动直流无刷电机、交流同步电机,以及异步电机。具备一个微控制器转接插座,可使用不同的AT32系列微控制器,执行电机控制算法。雅特力目前已提供基于双ADC引擎AT32F413的低压电机开发板和基于高速比较器AT32F421的低压电机开发板。

1.png

电机开发板设有霍尔信号接口与编码器接口,可回馈转子位置,进行有位置传感器的FOC控制驱动或六步方波驱动。提供剎车电阻接口,可应用于高动态响应控制时的动态剎车功能。具备三相输出端电压检测连接至ADC,以及虚拟中性点电路和比较器电路,可实现多种直流无刷电机(BLDC)六步方波无位置传感器驱动应用。并具备3个相电流检测电阻与1个直流地端母线电流检测电阻,可应用三电阻、两电阻电流检测,以及单电阻电流检测等三种电流检测方式。可执行有位置传感器与无位置传感器等磁场导向(field-oriented)向量控制法则(vector control algorithm)驱动三相交流电机,实现家用、商用以及工业等产品的电机控制应用技术。

2.png

开发板系统架构图在命令输入接口部分,除具有USB转UART界面、UART界面以及I2C接口外,并提供一个电位器模拟输入接口,可改变电位器电阻分压,输出电压命令由ADC读取。此外,有两个指拨开关以及一个按钮开关,可提供程序做控制模式设定,并提供5个LED指示灯,其中包含一个错误指示灯。

AT32电机函数库

雅特力针对电机开发提供了方便易用的AT32F413与AT32F421电机库,包含矢量控制电机库函数(mc_foc_library.lib)和6-step方波控制电机库函数(mc_bldc_library.lib),用户可根据电机控制方式选择电机库,两类电机库皆包含有传感器的控制函数以及无传感器的控制函数,注意在使用电机库时皆须调用初始设定相关函数以进行软件的初始设定。

电机库函数、使用者自定义函数与UI函数均建构于BSP之上,而用户自行撰写的控制程序则植基于电机库函数、用户自定义函数与UI函数之上。因此用户可以很方便地调用电机控制函数控制MCU硬件外设,实现电机控制程序。并可同时经由UI控制函数与外部个人计算机UI软件工具链接,传输实时的电机控制状态或实时改变控制参数与命令。

以下为一个电机控制工程中电机库应用函数与其它MCU基础函数(BSP)、UI通讯程序,以及用户撰写的控制函数与自定义函数之间的关系图。

3.png

电机库控制程序架构图

以下为电机库文档结构说明图。头文件提供设定MCU外设、控制形式、电机参数、控制板参数、控制器参数,相关的设定参数于mc_xxx_globals.c中的函数设定变数初值,MCU外设规划则由mc_hwoio.c文件执行相关外设初使化设定。

4.png

电机库文档结构说明图

雅特力在电机成本、可靠性等方面不断做出突破与改进,AT32F421、AT32F4212、AT32F413三款电机MCU搭配Cortex-M4内核和雅特力电机库算法,具有快速高效的算法能力和高性价比的价格优势,可满足电机控制在系统复杂性、实时性和智能化等方面日益严苛的要求。

来源:AT32 MCU 雅特力科技

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

围观 80

简介

时钟是芯片正确高效运行的基础,正确的时钟配置是芯片能正确运行的必要条件,其重要性不言而喻。AT32各系列产品的时钟配置部分可能存在细微的差异和需要注意的事项,本文档就着重针对各系列的情况来详细介绍如何结合雅特力提供的V2.x.x的板级支持包(BSP)来配置时钟。

以下介绍时钟配置的方法主要分两种:

1、以手动编写代码调用BSP中提供的驱动函数接口来进行时钟配置。

2、采用时钟工具来配置并生成相应的源码文件。

时钟树

在进行时钟配置之前,应充分了解对应芯片的时钟树结构,这样在进行时钟配置时才会游刃有余。对于系统时钟频率及路径的配置我们需要关注时钟源、倍频及系统时钟部分。类似如下图:

1.png

图1. 时钟框图

可由图中得到以下几个关键信息:

1) SCLKSEL:系统时钟可以由HEXT、PLLCLK、HICK三大时钟源提供。

2) HEXT:HEXT是外部高速时钟,其可以外接范围是4~25 MHz的晶振或时钟源。

3) HICK:HICK RC是内部高速振荡器,频率为48 MHz。HICK时钟由内部振荡器给出,但在初始情况下由HICKDIV控制并默认6分频后为8 MHz,亦可配置为不分频,保持48 MHz的频率。

4) PLLCLK:PLL时钟=PLL输入时钟*PLL倍频系数。

5) PLL输入时钟:PLL的输入时钟由PLLRCS及PLLHEXTDIV共同决定,其细分可分为三个来源:HICK 4MHz、HEXT和HEXTDIV,HEXTDIV由HEXT时钟2分频。

代码配置解析

以下将以库函数接口为核心来对时钟配置流程和方法进行说明。

函数接口

各系列产品对应提供的BSP中对硬件的时钟设置部分已封装好接口函数以供调用,以下罗列出时钟配置常用的函数接口,各函数的具体参数及返回值类型等请参考at32f413_crm.c/.h文件。

2.png

时钟配置流程

按常规应用来讲解时钟配置流程,其内容可大致分为如下步骤:

3.png

图2. 时钟配置流程图

复位(CRM Reset)

首先按规范流程应复位CRM配置参数,其主要是将系统时钟切换到HICK,其余的系统时钟配置寄存器写入默认值,待后续进行新配置参数的写入。函数调用的代码实现如下:

4.png时钟源配置(Clock Source Configuration)

与系统时钟相关的高速时钟源主要包括HEXT和HICK,PLL也是使用以上时钟源来进行倍频。需要在配置使能PLL前将所使用的PLL参考时钟源开启并等待其稳定。

  • HEXT

外部高速时钟如采用外接有源时钟的方式时,可开启旁路模式来进行使用,采用晶振时,不能开启旁路模式,旁路模式应在外部高速时钟源使能前进行设定,其默认情况为关闭。旁路模式使能代码实现如下:

5.png

使能HEXT时钟源并等待HEXT时钟稳定,代码实现如下:

6.png

  • HICK

内部高速时钟是由芯片内部振荡器提供,使能HICK时钟源并等待HICK时钟稳定,代码实现如下:

7.png

PLL配置(PLL Configuration)

PLL配置主要包括:PLL时钟源、PLL倍频系数、PLL倍频频率范围等的设置。倍频时钟公式为:PLLCLK=PLL输入时钟*PLL倍频系数。

  • PLL时钟源

PLL时钟源细分有三个来源:1、HICK(4 MHz),2、HEXT,3、HEXT分频时钟,PLL时钟源应在PLL配置使能前开启并等待稳定。以上PLL时钟源在crm_pll_config函数中对应的参数定义如下:

8.png

当选择PLL时钟源为CRM_PLL_SOURCE_HEXT_DIV时,HEXT的分频系数默认为2分频。

  • PLL倍频系数

倍频系数为2~64倍可选,但应该注意最高主频限制,以此按实际情况来合适选择倍频系数,如8倍频使用参数CRM_PLL_MULT_8。

  • PLL频率范围

频率范围主要以倍频后的PLLCLK频率来做设定,其范围参数以72 MHz为界限设定,如下:

9.png

当PLL参数设置完成后,即可开启PLL并等待PLL稳定。示例:外部时钟晶振8 MHz,采用HEXT 2分频时钟作为PLL时钟源,PLLCLK倍频到192 MHz的代码实现如下:

10.png

总线分频(Set Bus Frequency Division)

总线分频包含SCLK到AHBCLK分频、AHBCLK到APB1CLK分频、AHBCLK到APB2CLK分频。AHB总线1分频、APB1/APB2总线2分频的代码实现如下:

11.png

切换系统时钟(Switch System Clock)

系统时钟来源主要有三个:HICK、HEXT、PLLCLK。在切换系统时钟到如上时钟源时应提前确保对应时钟源已稳定。

  • 顺滑模式

时钟顺滑模式是为了确保整个系统时钟切换过程的稳定而设计,当即将切换为系统时钟的目标时钟频率大于108 MHz时应开启时钟顺滑模式,所以其主要应用对象为PLLCLK用作系统时钟时的场景。

通常使用方法是在系统时钟切换前开始,切换成功后关闭。代码实现如下:

12.png

  • HICK系统时钟

内部高速时钟在系统复位重新运行时默认作为系统时钟,后期代码进行设定时,可有两种频率值来进行设定(8 MHz和48 MHz)。如图1所述HICK默认情况下用的是8 MHz,可配置为48 MHz。

HICK 8 MHz用作系统时钟的代码实现如下:

13.png

HICK 48 MHz用作系统时钟的代码实现如下:

14.png

  • HEXT系统时钟

外部高速时钟用作系统时钟时,其系统时钟频率以实际使用的外部时钟频率为准,范围为 4~25 MHz。HEXT用作系统时钟的代码实现如下:

15.png

  • PLLCLK系统时钟

PLLCLK用作系统时钟时,其系统时钟频率以实际的PLL倍频结果为准。其最高频率应满足芯片规格为基础。PLLCLK用作系统时钟的代码实现如下:

16.png


更新核心频率(Update Core Frequency)

提供的BSP中,其代码框架内保留了一个表示系统核心频率的参数值system_core_clock,其保存的是CPU核心的运行频率值,应该在每次系统时钟配置完成后来进行更新。为的是在整个代码框架下,各外设驱动的频率配置能很快获取到当前核心运行频率值并使用。代码实现如下:

17.png

时钟配置示例

以下将以完整的时钟配置流程来进行说明,示例:由8 MHz外部时钟晶振作为时钟源,其2分频路径经PLL倍频到192 MHz并用做系统时钟,AHB不分频,APB1/APB2采用2分频。函数system_clock_config代码实现如下:

18.png

时钟工具

时钟配置工具是雅特力科技为方便对AT32系列MCU进行时钟配置而开发的一个图形化配置工具,其主旨是使用户清晰了解时钟路径和配置出期望的时钟频率并生成源码文件。

环境要求

  • 软件要求

需要Windows7及以上操作系统支持。

安装

  • 软件安装

本软件不需要安装,只需直接运行可执行程序AT32_New_Clock_Configuration.exe。

功能介绍

本章节将介绍此工具的基本操作,其主要的启动界面和配置界面如下所示

19.png

图3. 启动界面

20.png

图4. 配置界面

菜单栏

菜单栏内容如图所示:

21.png

图5. 菜单栏

  • “项目”(Project)菜单:

新建:新建时钟配置项目打开:打开已存在的配置项目保存:保存已打开的配置项目

  • “语言”(Language)菜单:

English:选择English作为显示语言简体中文:选择简体中文作为显示语言

  • “生成代码”(General code)菜单:

当在对应型号的操作配置界面将所期望的时钟路径和时钟频率配置完成之后,可点击“生成代码”菜单来选择源码文件的存储路径并生成相应的源码文件。

  • “帮助”(Help)菜单:

新版本下载:联网进行新版本下载版本:查看当前版本

新建配置项目

双击打开时钟配置工具,可看到图示的启动界面,可点击“项目”菜单-->“新建”,进行配置项目的新建,在新建配置项目的过程中需要对芯片的系列所属进行选择,操作方法如下图所示

22.png

图6. MCU选择界面

MCU系列的选择,可点击下拉框来进行选择,当选择好MCU后点击“确定”可进入到时钟配置界面。

配置界面的使用

配置界面主要用来进行时钟路径及参数的配置,以下的介绍将以AT32F413系列作为示例来展开进行,其余系列的配置方法与此类似。

整个配置界面主要可以分为四个大块,如下图所示

23.png

图7. 配置界面框架

  1. 标题部分:用于展示当前配置项目所选择的MCU系列。

  2. 配置部分:用于对时钟路径和时钟参数进行选择和配置,以达到期望的应用需求。

  3. 输出部分:用于时钟输出(CLKOUT)的配置。

  4. 在SCLK栏也可在选中PLL为系统时钟时作为输入框,可输入期望的系统时钟频率来反向自动配置出倍频参数。

  5. 结果部分:用于显示当前外设所使用的时钟频率及总线上的外设。

接下来就着重介绍一下配置部分的使用。配置部分的流程界面是对应着MCU时钟树来进行的,各系列MCU的此部分可能存在着差异,但使用方式大同小异。时钟路径的配置可按流程对各开关进行点选来进行选择,配置部分如下图所示,将逐个流程点的功能及其注意事项进行介绍。

24.png

图8. 时钟配置框

1. rtc使能:rtc时钟代码配置的使能下拉框。

2. rtcsel:点选框,rtc时钟源选择。当rtc使能开启后,此点选框可配置。

3. lext bypass:外部低速时钟的旁路使能。

4. hext:此为输入框,8 MHz为所采用外部时钟源的默认频率,用户可根据实际使用的外部时钟源频率进行修改。(注:此8 MHz被修改为其他频率值时,对应的BSP中demo目录下的inc/at32f413_conf.h文件内的HEXT_VALUE宏定义也应该一致修改,也可以采用工具生成的at32f413_conf.h文件来进行使用)。

5. hext bypass:高速外部时钟的旁路使能。

6. pllhextdiv:点选框,当HEXT作为PLL时钟源时,可配置输入频率为HEXT分频或HEXT不分频。

7. pllrcs:点选框,可配置PLL时钟源为HEXT或HICK。

8. 倍频系数:使用PLL_MULT参数进行倍频,计算公式为:PLLCLK=PLL输入时钟*PLL_MULT。为了用户的使用方便,在选定PLL输入时钟源后,结果部分的sclk框中输入目标时钟并按下键盘“Enter”键,会自动计算一组倍频参数以满足用户期望或相近的时钟频率。

9. sclk select:点选框,可配置HEXT、PLL或HICK作为系统时钟。

10. sclk频率:当采用正向配置时,此作为系统时钟频率的配置结果显示,当将其用作输入框时,输入期望的频率后点击回车键,会根据此输入值反向计算一组合适的或最接近期望值的PLL配置参数。

11. hick to sclk:点选框,当sclk select选择HICK作为系统时钟时,可配置HICK的8 MHz或48 MHz到系统时钟(注:当选择48 MHz HICK到系统时钟后,CLKOUT输出HICK时的频率也为48 MHz)。

12. usbdiv:下拉框。当PLL时钟被选作为USB的时钟来源时,此处配置PLL时钟到USB时钟的分频系数。13. hick to usb:点选框,可配置USB时钟由PLL时钟或HICK 48 MHz提供,USB时钟配置代码由下拉框to usb来进行选择控制。因USB时钟需要的是固定48 MHz,所以在usbdiv可分频参数为前提下,PLL倍频出来的频率可能不满足USB 48 MHz的时钟需求。

14. USB使能:USB时钟代码配置的使能下拉框。

15. USB时钟频率的显示。此显示栏会实时计算USB时钟的频率并显示,如果配置出来的USB时钟不等于48 MHz时,显示出来的USB时钟频率会标注为红色,而实际应用中没有用到USB时选择disable则不会显示。(注:此部分只针对USB时钟频率的配置,USB外设时钟使能需自行额外打开)

生成代码

当时钟配置完成后,可点击生成代码,然后选择代码生成的路径并确认,最后会在所选目录下生成两个文件夹inc和src,源文件存放在src文件夹下,头文件存放在inc文件夹下。这些文件可结合到BSP_V2.x.x内的工程来进行使用。可以采用新生成的时钟代码文件(at32f4xx_clock.c/at32f4xx_clock.h/at32f4xx_conf.h)将原BSP demo中的对应文件替换,在main函数中进行system_clock_config函数调用即可。

注意事项

外部时钟源(HEXT)修改

因本文档所示例的demo和配置工具都默认采用的8 MHz外部时钟频率,当实际硬件使用的外部时钟源是非8 MHz频率时需注意以下几点。

  • 代码修改

1、以实际的外部时钟频率按文中时钟配置流程章节所描述的时钟配置流程及方法来编写相应的代码,配置出期望的时钟配置及时钟路径。

2、修改对应demo工程中at32f4xx_conf.h文件的HEXT_VALUE值,以实际使用的外部时钟源频率值来进行修改。如实际外部高速时钟使用12.288 MHz的晶振或时钟源时,at32f4xx_conf.h文件应修改如下:

25.png

  • 工具修改

1、在时钟配置工具中的HEXT输入框内填入外部时钟源实际频率值并按“Enter”键确认。

2、配置好所需的时钟路径及时钟频率,生成代码。采用新生成的时钟代码文件(at32f4xx_clock.c/at32f4xx_clock.h/at32f4xx_conf.h)将原BSP demo中的对应文件替换或取其中函数内容进行替换,在main函数中进行system_clock_config函数调用即可。

工具使用

在使用本时钟配置工具时需注意:

1. 此工具生成的时钟配置源码文件需结合雅特力科技提供的BSP_V2.x.x进行使用。

2. 不同系列所生成的时钟配置源码文件不能型号混用,只能在相对应的工程项目中进行调用。3. 配置工具中各输入框参数修改后,请以“Enter”键结束。
PS. 案例介绍可点击此处查看

来源:AT32 MCU 雅特力科技

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

围观 142

简介

时钟是芯片正确高效运行的基础,正确的时钟配置是芯片能正确运行的必要条件,其重要性不言而喻。AT32各系列产品的时钟配置部分可能存在细微的差异和需要注意的事项,本文档就着重针对各系列的情况来详细介绍如何结合雅特力提供的V2.x.x的板级支持包(BSP)来配置时钟。以下介绍时钟配置的方法主要分两种:

1、以手动编写代码调用BSP中提供的驱动函数接口来进行时钟配置。

2、采用时钟工具来配置并生成相应的源码文件。

时钟树

在进行时钟配置之前,应充分了解对应芯片的时钟树结构,这样在进行时钟配置时才会游刃有余。对于系统时钟频率及路径的配置我们需要关注时钟源、倍频及系统时钟部分。类似如下图:

1.png

图1. 时钟框图

可由图中得到以下几个关键信息:

1) SCLKSEL:系统时钟可以由HEXT、PLLCLK、HICK三大时钟源提供。

2) HEXT:HEXT是外部高速时钟,其可以外接范围是4~25 MHz的晶振或时钟源。

3) HICK:HICK RC是内部高速振荡器,频率为48 MHz。HICK时钟由内部振荡器给出,但在初始情况下由HICKDIV控制并默认6分频后为8 MHz,亦可配置为不分频,保持48 MHz的频率。

4) PLLCLK:PLL时钟=PLL输入时钟*PLL倍频系数。

5) PLL输入时钟:PLL的输入时钟由PLLRCS及PLLHEXTDIV共同决定,其细分可分为三个来源:HICK 4MHz、HEXT和HEXTDIV,HEXTDIV由HEXT时钟2分频。

代码配置解析

以下将以库函数接口为核心来对时钟配置流程和方法进行说明。

函数接口

各系列产品对应提供的BSP中对硬件的时钟设置部分已封装好接口函数以供调用,以下罗列出时钟配置常用的函数接口,各函数的具体参数及返回值类型等请参考at32f421_crm.c/.h文件。

2.png

时钟配置流程

按常规应用来讲解时钟配置流程,其内容可大致分为如下步骤:

3.png

图2. 时钟配置流程图

复位(CRM Reset)

先按规范流程应复位CRM配置参数,其主要是将系统时钟切换到HICK,其余的系统时钟配置寄存器写入默认值,待后续进行新配置参数的写入。

4.png

Flash等待周期(Set Flash Wait Cycle)

AT32F421片上采用的是嵌入式Flash,当运行在不同的主频下时需对应设定Flash等待周期。flash等待周期与运行主频关系如下:函数调用的代码实现如下:

5.png

函数调用的代码实现如下:

6.png

时钟源配置(Clock Source Configuration)

与系统时钟相关的高速时钟源主要包括HEXT和HICK,PLL也是使用以上时钟源来进行倍频。需要在配置使能PLL前将所使用的PLL参考时钟源开启并等待其稳定。

  • HEXT

外部高速时钟如采用外接有源时钟的方式时,可开启旁路模式来进行使用,采用晶振时,不能开启旁路模式,旁路模式应在外部高速时钟源使能前进行设定,其默认情况为关闭。旁路模式使能代码实现如下:

7.png

使能HEXT时钟源并等待HEXT时钟稳定,代码实现如下:

8.png

  • HICK

内部高速时钟是由芯片内部振荡器提供,使能HICK时钟源并等待HICK时钟稳定,代码实现如下:

9.png

PLL配置(PLL Configuration)

PLL配置主要包括:PLL时钟源、PLL倍频系数、PLL倍频频率范围等的设置。倍频时钟公式为:PLLCLK=PLL输入时钟*PLL倍频系数。

  • PLL时钟源

PLL时钟源细分有三个来源:1、HICK(4 MHz),2、HEXT,3、HEXT分频时钟,PLL时钟源应在PLL配置使能前开启并等待稳定。以上PLL时钟源在crm_pll_config函数中对应的参数定义如下:

10.png

当选择PLL时钟源为CRM_PLL_SOURCE_HEXT_DIV时,HEXT的分频系数默认为2分频。

  • PLL倍频系数

倍频系数为2~64倍可选,但应该注意最高主频限制,以此按实际情况来合适选择倍频系数,如8倍频使用参数CRM_PLL_MULT_8。

当PLL参数设置完成后,即可开启PLL并等待PLL稳定。示例:外部时钟晶振8MHz,采用HEXT 2分频时钟作为PLL时钟源,PLLCLK倍频到120 MHz的代码实现如下:

11.png

总线分频(Set Bus Frequency Division)

总线分频包含SCLK到AHBCLK分频、AHBCLK到APB1CLK分频、AHBCLK到APB2CLK分频。AHB总线1分频、APB1/APB2总线2分频的代码实现如下:

12.png

切换系统时钟(Switch System Clock)

系统时钟来源主要有三个:HICK、HEXT、PLLCLK。在切换系统时钟到如上时钟源时应提前确保对应时钟源已稳定。

  • 顺滑模式

时钟顺滑模式是为了确保整个系统时钟切换过程的稳定而设计,当即将切换为系统时钟的目标时钟频率大于108 MHz时应开启时钟顺滑模式,所以其主要应用对象为PLLCLK用作系统时钟时的场景。

通常使用方法是在系统时钟切换前开始,切换成功后关闭。代码实现如下:

13.png

  • HICK系统时钟

内部高速时钟在系统复位重新运行时默认作为系统时钟,后期代码进行设定时,可有两种频率值来进行设定(8 MHz和48 MHz)。如图1所述HICK默认情况下用的是8 MHz,可配置为48 MHz。

HICK 8 MHz用作系统时钟的代码实现如下:

14.png

HICK 48 MHz用作系统时钟的代码实现如下:

15.png

  • HEXT系统时钟

外部高速时钟用作系统时钟时,其系统时钟频率以实际使用的外部时钟频率为准,范围为4~25 MHz。HEXT用作系统时钟的代码实现如下:

16.png

  • PLLCLK系统时钟

PLLCLK用作系统时钟时,其系统时钟频率以实际的PLL倍频结果为准。其最高频率应满足芯片规格为基础。PLLCLK用作系统时钟的代码实现如下:

17.png

更新核心频率(Update Core Frequency)

提供的BSP中,其代码框架内保留了一个表示系统核心频率的参数值system_core_clock,其保存的是CPU核心的运行频率值,应该在每次系统时钟配置完成后来进行更新。为的是在整个代码框架下,各外设驱动的频率配置能很快获取到当前核心运行频率值并使用。代码实现如下:

18.png

时钟配置示例

以下将以完整的时钟配置流程来进行说明,示例:由8 MHz外部时钟晶振作为时钟源,其2分频路径经PLL倍频到120 MHz并用做系统时钟,AHB采用1分频,APB1/APB2采用1分频。函数system_clock_config代码实现如下:

19.png

时钟工具

时钟配置工具是雅特力科技为方便对AT32系列MCU进行时钟配置而开发的一个图形化配置工具,其主旨是使用户清晰了解时钟路径和配置出期望的时钟频率并生成源码文件。

环境要求

  • 软件要求

需要Windows7及以上操作系统支持。

安装

  • 软件安装

本软件不需要安装,只需直接运行可执行程序AT32_New_Clock_Configuration.exe。

功能介绍

本章节将介绍此工具的基本操作,其主要的启动界面和配置界面如下所示

20.png

图3. 启动界面

21.png

图4. 配置界面

菜单栏

菜单栏内容如图所示:

22.png

图5. 菜单栏“项目”(Project)

  • 菜单:

新建:新建时钟配置项目

打开:打开已存在的配置项目

保存:保存已打开的配置项目

  • “语言”(Language)菜单:

English:选择English作为显示语言

简体中文:选择简体中文作为显示语言

  • “生成代码”(General code)菜单:

当在对应型号的操作配置界面将所期望的时钟路径和时钟频率配置完成之后,可点击“生成代码”菜单来选择源码文件的存储路径并生成相应的源码文件。

  • “帮助”(Help)菜单:

新版本下载:联网进行新版本下载

版本:查看当前版本

新建配置项目

双击打开时钟配置工具,可看到图示的启动界面,可点击“项目”菜单-->“新建”,进行配置项目的新建,在新建配置项目的过程中需要对芯片的系列所属进行选择,操作方法如下图所示

23.png

图6. MCU选择界面

MCU系列的选择,可点击下拉框来进行选择,当选择好MCU后点击“确定”可进入到时钟配置界面。

配置界面的使用

配置界面主要用来进行时钟路径及参数的配置,以下的介绍将以 AT32F421 系列作为示例来展开进行,其余系列的配置方法与此类似。整个配置界面主要可以分为四个大块,如下图所示

24.png

图7. 配置界面框架


1. 标题部分:用于展示当前配置项目所选择的MCU系列。

2. 配置部分:用于对时钟路径和时钟参数进行选择和配置,以达到期望的应用需求。

3. 输出部分:用于时钟输出(CLKOUT)的配置。

4. 在SCLK栏也可在选中PLL为系统时钟时作为输入框,可输入期望的系统时钟频率来反向自动配置出倍频参数。

5. 结果部分:用于显示当前外设所使用的时钟频率及总线上的外设。

接下来就着重介绍一下配置部分的使用。配置部分的流程界面是对应着MCU时钟树来进行的,各系列MCU的此部分可能存在着差异,但使用方式大同小异。时钟路径的配置可按流程对各开关进行点选来进行选择,配置部分如下图所示,将逐个流程点的功能及其注意事项进行介绍。

25.png

图8. 时钟配置框

1. ertc使能:ertc时钟代码配置的使能下拉框。

2. ertcsel:点选框,ertc时钟源选择。当ertc使能开启后,此点选框可配置。

3. lext bypass:外部低速时钟的旁路使能。

4. hext:此为输入框,8 MHz为所采用外部时钟源的默认频率,用户可根据实际使用的外部时钟源频率进行修改。(注:此8 MHz被修改为其他频率值时,对应的BSP中demo目录下的inc/at32f421_conf.h文件内的HEXT_VALUE宏定义也应该一致修改,也可以采用工具生成的at32f421_conf.h文件来进行使用)。

5. hext bypass:高速外部时钟的旁路使能。

6. pllhextdiv:点选框,当HEXT作为PLL时钟源时,可配置输入频率为HEXT分频或HEXT不分频。

7. pllrcs:点选框,可配置PLL时钟源为HEXT或HICK。

8. pll_mode:下拉框,可选择PLL的配置模式(normal或flexible)

9. 倍频系数:选择normal模式时使用PLL_MULT参数进行倍频,计算公式为:PLLCLK=PLL输入时钟*PLL_MULT,选择flexible模式时使用PLL_MS、PLL_NS和PLL_FR参数进行倍频,计算公式为:PLLCLK=PLL输入时钟/PLL_MS*PLL_NS/PLL_FR。为了用户的使用方便,在选定PLL输入时钟源后,结果部分的sclk框中输入目标时钟并按下键盘“Enter”键,会自动计算一组倍频参数以满足用户期望或相近的时钟频率。

10. sclk select:点选框,可配置HEXT、PLL或HICK作为系统时钟。

11. sclk频率:当采用正向配置时,此作为系统时钟频率的配置结果显示,当将其用作输入框时,输入期望的频率后点击回车键,会根据此输入值反向计算一组合适的或最接近期望值的PLL配置参数。

12. hick to sclk:点选框,当sclk select选择HICK作为系统时钟时,可配置HICK的8 MHz或48 MHz到系统时钟(注:当选择48 MHz HICK到系统时钟后,CLKOUT输出HICK时的频率也为48 MHz)

生成代码

当时钟配置完成后,可点击生成代码,然后选择代码生成的路径并确认,最后会在所选目录下生成两个文件夹inc和src,源文件存放在src文件夹下,头文件存放在inc文件夹下。这些文件可结合到BSP_V2.x.x内的工程来进行使用。可以采用新生成的时钟代码文件(at32f4xx_clock.c/at32f4xx_clock.h/at32f4xx_conf.h)将原BSP demo中的对应文件替换,在main函数中进行system_clock_config函数调用即可。

注意事项

外部时钟源(HEXT)修改

因本文档所示例的demo和配置工具都默认采用的8 MHz外部时钟频率,当实际硬件使用的外部时钟源是非8 MHz频率时需注意以下几点。

  • 代码修改

1、以实际的外部时钟频率按文中时钟配置流程章节所描述的时钟配置流程及方法来编写相应的代码,配置出期望的时钟配置及时钟路径。

2、 修改对应demo工程中at32f4xx_conf.h文件的HEXT_VALUE值,以实际使用的外部时钟源频率值来进行修改。如实际外部高速时钟使用12.288 MHz的晶振或时钟源时,at32f4xx_conf.h文件应修改如下:

26.png

  • 工具修改

1、在时钟配置工具中的HEXT输入框内填入外部时钟源实际频率值并按“Enter”键确认。

2、配置好所需的时钟路径及时钟频率,生成代码。采用新生成的时钟代码文件(at32f4xx_clock.c/at32f4xx_clock.h/at32f4xx_conf.h)将原BSP demo中的对应文件替换或取其中函数内容进行替换,在main函数中进行system_clock_config函数调用即可。

工具使用

在使用本时钟配置工具时需注意:1. 此工具生成的时钟配置源码文件需结合雅特力科技提供的BSP_V2.x.x进行使用。2. 不同系列所生成的时钟配置源码文件不能型号混用,只能在相对应的工程项目中进行调用。3. 配置工具中各输入框参数修改后,请以“Enter”键结束。

PS. 案例介绍可点击此处查看。

来源:AT32 MCU 雅特力科技

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

围观 36

页面

订阅 RSS - 雅特力