【经验】雅特力MCU AT32F403ARCT7的IIC控制器做主设备时需要注意哪些事项?
雅特力科技推出的AT32F403ARCT7是一颗高性能MCU,搭载32位ARM Cortex-M4内核,主频最高可以跑到240MHz。内建的单精度浮点运算单元(FPU)及数字信号处理器(DSP),还提供了丰富的外设控制器,在工业、医疗、消费等各个行业有着广泛的应用。
今天我们来说说AT32F403ARCT7的IIC控制器在做主设备的情况下有什么需要注意的地方。首先我们来看下AT32F403ARCT7的用户手册,如下图所示,有I2C_STS1和I2C_STS2这么两个状态寄存器来反应IIC控制器的各类状态。
可以看到上图中用红框标注的I2C_STS1状态寄存器中的ADDR7F位,在IIC作为主机模式的情况下,应该是在发送从机地址后,从机响应ACK后被置位的,那么通常程序员会利用如下的代码,来等待I2C_EVENT事件,从而检查状态位,等待从机ACK后ADDR7F被置位的信号。
void I2C_WaitEvent(i2c_type* I2Cx, uint32_t I2C_EVENT)
{
uint32_t lastevent = 0;
uint32_t flag1 = 0, flag2 = 0;
flag1 = I2Cx->sts1;
flag2 = I2Cx->sts2;
while((lastevent & I2C_EVENT) != I2C_EVENT)
{
flag1 = I2Cx->sts1;
flag2 = I2Cx->sts2;
flag2 = flag2 << 16;
lastevent = (flag1 | flag2)
}
}
但往往这段代码永远都等不到需要的ADDR7F信号,而硬件逻分查看总线却是有ACK的。那么这是为什么呢? 其实在上面寄存器中有个说明“在软件读取STS1 寄存器后,对STS2 寄存器的读操作将清除ADDR7F位”而这段代码在运行过程中有可能遇到一种情况就是在执行flag1 = I2Cx->sts1;的时候ADDR7F没有置位,但随即置位了,紧接着执行了flag2 = I2Cx->sts2;这种情况被mcu判断为“在软件读取STS1 寄存器后,对STS2 寄存器的读操作”所以清除了ADDR7F的标志位,而再下一个循环中却永远再也读不到ADDR7F置位了。
那么我们通过如下面代码所示的修改,即可规避此问题的发生,当然其实我们更建议采用中断的方式来判断状态,不要让高速的MCU为低速的总线而等待。
void I2C_WaitEvent(i2c_type* I2Cx, uint32_t I2C_EVENT)
{
uint32_t EVENT _1 = I2C_EVENT&0x0000FFFF;
uint32_t EVENT _2 = I2C_EVENT>>16;
uint32_t flag1 = 0, flag2 = 0;
flag1 = I2Cx->sts1;
while(flag1 & EVENT _1))
flag1 = I2Cx->sts1;
flag2 = I2Cx->sts2;
while(flag2 & EVENT _2))
flag2 = I2Cx->sts2;
}
- |
- +1 赞 0
- 收藏
- 评论 0
本文由土肥圆提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】雅特力MCU AT32F403ARCT7串口实验出意外导致无法使用问题的分析
在使用雅特力AT32F403ARCT7 MCU做串口实验时出了点意外,串口一直无法使用。首先需要将AT32F403ARCT7 上的 PB6 重映射为USART1_TX。介绍了串口无法往外发送数据,定义和初始化修改步骤。
【应用】雅特力32位MCU AT32F421G8U7适用于VBAT设计供电,最高可支持64KB闪存存储器
雅特力科技推出AT32F421系列超值型ARM® Cortex®-M4微控制器MCU,高达120MHz的CPU运算速度与内建数字信号处理器(DSP),最高可支持64KB闪存存储器(Flash)及16KB随机存取存储器(SRAM),集成了丰富外设接口。
【经验】 雅特力MCU AT32F403ARGT7的ADC低功耗采样电路设计之分压电阻选择的注意事项
ADC在实际使用过程中,经常有反应采样不准,或者使用外部电源输入采样正确,但在板电路采样的时候采样结果和实际电压对不上的情况。那么一般是什么情况造成的呢?本文介绍雅特力ADC AT32F403ARGT7低功耗采样电路设计之分压电阻选择的注意事项。
雅特力32位MCU选型表
雅特力AT32 MCU的选型的相关技术参数如下,32位MCU,多种封装:TSSOP20,QFN28,QFN32,QFN48,LQFP48,LQFP64,LQFP100,LQFP144,稳定的工作温度:-40°C~85°C,-40°C~105°C,频率范围在96MHz~288MHz之间
产品型号
|
品类
|
Core
|
FPU
|
Speed(MHz)
|
Flash(KB)
|
SRAM(KB)
|
I/O
|
Advanced TM(16-bit)
|
GPTM(32-bit)
|
GPTM(16-bit)
|
Basic TM(16-bit)
|
Systick(24-bit)
|
WDT
|
WWDT
|
RTC
|
I2C
|
SPI
|
(F/H)I2S(1)(2)
|
USART/UART
|
SDIO
|
USB Device
|
CAN
|
ADC Engine
|
12-bit ADC ch
|
DAC Engine
|
12-bit DAC ch
|
PKG
|
Size(mm)
|
Temp(℃)
|
AT32F403ZCT6
|
32位MCU
|
M4
|
FPU
|
200MHz
|
256KB
|
96KB/224KB
|
112
|
3
|
2
|
8
|
2
|
1
|
1
|
1
|
1
|
3
|
4
|
0/4
|
3/2
|
2
|
1
|
1
|
3
|
21
|
2
|
2
|
LQFP144
|
20mmx20mm
|
-40℃~85°C
|
选型表 - 雅特力 立即选型
【选型】温控面板上主控MCU推荐STM32F103RCT6的国产替换方案
温控面板,也叫作温控器,就是地暖采暖系统或者中央空调系统中控制和调节温度的温度控制器,在工业、商业及家庭居室的温度控制中都有着广泛的应用。本文将介绍国产雅特力32bit MCU AT32F403ARCT7在温控面板上的应用,可以P2P替换ST的STM32F103RCT6,硬件兼容,性能更好。 雅特力推出的AT32F403A系列32bit MCU AT32F403ARCT7,采用高性能的ARM Co
【IC】雅特力发布AT32M412/M416电机控制专用MCU,180MHz主频打造高效能电机应用
近日,雅特力科技宣布推出AT32M412/M416首款高性能电机控制专用MCU,采用高性能ARM®Cortex®-M4内核,高达180MHz的CPU运算速度,内建单精度浮点运算单元(FPU)与数字信号处理器(DSP)。为出行工具、家电及工业控制等应用提供理想选择。
雅特力携多款AT32 MCU新品与应用方案亮相2024慕尼黑上海电子展
7月8日,2024慕尼黑上海电子展electronica China在上海新国际博览中心拉开序幕,作为全球电子行业的盛会,汇聚了国内外众多优质电子企业。雅特力携高性能AT32 MCU与应用方案齐亮相,呈现了多款电机控制、工业控制、汽车电子、智能家居、消费、商务,及新能源等应用方案。现场人流攒动、氛围热烈!
基于雅特力AT32 MCU的洗衣机电机控制驱动方案,解锁智能家居新体验
随着人工智能、物联网等技术的发展,传统家电逐渐向智能家电转型。洗衣机作为家庭生活中不可或缺的电器之一,其智能化升级对于提升生活品质具有重要意义。MCU作为电机控制系统的核心“大脑”,肩负着多样化的控制使命。雅特力AT32 MCU以其卓越的性能和完善的电机开发生态,为洗衣机、电动两轮车和电摩等电机应用产品提供高效电机控制驱动方案,并已实现规模量产。
匠芯创高端“显控一体”工业级MCU D13x,具备强大的显示和工业控制功能,成功对标国际大厂同类产品
匠芯创ArtInChip D13系列工业级MCU的诞生,“显控一体”的组合实力使其具备强大的显示功能支持,以及高集成度高性能的工业控制功能,广泛适用于包括物联网、智能家居、工业控制和汽车电子在内的泛工业应用领域,成功对标国际大厂的同类产品。
【IC】芯圣电子全新HC32F103B系列32位通用MCU,工作频率最高72MHz,温度范围-40到+105℃
Holychip HC32F103B系列是一款基于ARM Cortex M3内核的32位通用MCU,工作频率最高72MHz,提供20K字节SRAM和128K字节Flash,适用于工业控制,电机驱动,电源监控和消费类电子等领域。
【IC】东软载波推出ES32F3626系列MCU新品,最高主频支持72MHz,有效提升消防、工业控制等终端用户的体验感
上海东软载波微电子有限公司一直深耕白色家电和工业控制等行业,致力于提供高可靠性、高性价比的产品。面向消防、工业控制等领域新推出高安全性的系列MCU产品。ES32F3626系列产品采用Cortex-M3内核,最高主频支持72MHz,配合FLASH CACHE系统最高效能评分可达81 DMIPS和145 CoreMark。
【应用】国产32位MCU AT32F403ARCT7用于智能止鼾枕,最高主频240MHz
智能止鼾枕是一种非穿戴式的智能止鼾设备,内置气囊,声音、压力传感器。本文推荐采用国产雅特力推出的32位MCU AT32F403ARCT7为主控, 最高主频240MHz,Flash 256k,工作温度范围-40~+105℃。
富满电子(FM)MCU选型指南
描述- 富满微电子集团股份有限公司创立于2001年,是一家致力于高性能模拟及数模混合集成电路设计研发、封装、测试、销售为一体的国家级高新技术企业及国家规划布局内重点集成电路设计企业、2017年7月5日在深交所创业板上市。目前公司拥有多家全资子公司、控股子公司、分公司及一个现代化集成电路封装测试厂;拥有电源管理、LED驱动、MOSFET等涉及消费领域IC产品数百余种;在集成电路领域拥有自主知识产权近百项专利技术、集成电路布图设计、软件著作权登记。
型号- XMC2711,XM004,XMC2712,XM003,XMC2711S14C,XM003T,XMC2712S16B,XM003Q,FM32F03X,XMC8P53,XMC2712T20B,XMC27116C,XMC2711S8C,XMC8P53S6,XMC8P53S8
含24位高精度ADC的工业级信号链MCU,可轻松通过EFT抗干扰测试,适用于智能家居领域
晟矽微电子智能家居MCU产品线芯片性能及应用覆盖全面,性价比高,可轻松通过EFT抗干扰测试,产品广泛应用于智能家电、消防安防、健康医疗、智能照明、物联网等领域。本期【晟矽芯】推出的芯片是含24位高精度ADC的MCU——MS32F7223。
【IC】晟矽芯高性能通用型8位MCU MC32P7051系列,消费类电子、锂电数码产品、智能化产品的首选
MC32P7051是晟矽微电新推出的消费类电子产线的产品,是一款高性能IO+AD型8位MCU,采用RISC内核。该产品的各个IP,延续晟矽产品特色,用户可极速上手。可作为消费类电子、锂电数码产品、智能化产品的首选。
电子商城
现货市场
服务
可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。
最小起订量: 1000 提交需求>
可烧录IC封装SOP/MSOP/SSOP/TSOP/TSSOP/PLCC/QFP/QFN/MLP/MLF/BGA/CSP/SOT/DFN;IC包装Tray/Tube/Tape;IC厂商不限,交期1-3天。支持IC测试(FT/SLT),管装、托盘装、卷带装包装转换,IC打印标记加工。
最小起订量: 1pcs 提交需求>
登录 | 立即注册
提交评论