【经验】国产MCU AT32F421 的 I2C通信时序相关注意事项
雅特力AT32F421是一款高性价比的国产MCU,应用于各类传感器模块中,与传感器的通信需要用到I2C,本文介绍AT32F421使用I2C通信时序相关注意事项:
1. 主模式下,在发送地址后在写数据时(主发模式),会多一个 STOP,如下图
解决办法:
在软件操作 I2C_CTRL1 寄存器的 STOPGEN 位发送 stop 后,必须判断等待硬件将该位清除以后再 执行 I2C_CTRL1 的任何操作(比如操作下一次通信的 start),否则导致硬件逻辑出错,出现异常情 况。
配置完 STOP 后添加判断 STOPGEN 位是否清除检查。
2. 主模式下,其他 mcu 作为 slave,在发送地址后在写数据时(主发模式),会有一个 80ns 左右 SCL, 如下图
在主发模式下,slave 不能在 master 内部处于高电平计数周期内释放 SCL 总线,所以最稳妥的 方法是让 slave 在 master 操作 SCL 前提前释放 SCL 总线,具体到代码上,以 MCU 用 interrupt 模 式操作 I2C 的 ADDR 阶段为例(AT32 芯片)
上图是 RM 上的时序图,slave 在 EV1 事件识别到正确的 ADDR 会进入中断,然后通过读状态寄存器 STS1 和 STS2 清除 ADDRF 标志位后才释放 SCL 总线。 解决方法修改 Master 代码或者 Slave 代码 Master 代码: 评估 slave 从进入 I2C 中断到处理完清除 ADDRF 标志位的时间,延时(具体延时取决于从机)一段 时间后再操作发送数据 else if(I2C_GetINTStatus(I2Cx,I2C_INT_ADDRF)) { Delay_ns(15); (void)(I2Cx->STS2); //auto clear flag } Slave 代码: 当 master 发送完 ADDR 后,此时 slave 的 ACK 由硬件控制完成,如果此时 slave 正在处理其他中断 函数,而无法进入 I2C 中断,则会造成 hold SCL 总线,所以需配置 I2C 抢占优先级最高,遇到上 述情况能及时响应 I2C 中断提高 I2C 中断优先级,将 I2C 的抢占优先级高于其余中断,例如将 NVIC 4 bit 分为 2:2 分组,将 I2C event interrupt 抢占级设为单独的最高,如下图
尽量减少从进入 I2C 中断到清除 ADDRF 标志位之间的代码,缩减 hold SCL 总线时间,如下图, 检测到 ADDRF 后立即执行清除序列操作
只要符合 I2C hold SCL 总线的阶段(比如总线接收到数据,但没有及时从 DT 数据寄存器读取) 都应该尽量及时处理,应减小 hold 时间。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由蜡笔小芯提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】雅特力AT32 MCU CAN入门指南
CAN是Controller Area Network的缩写(以下称为CAN),它的设计目标是以最小的CPU负荷来高效处理大量的报文。本文介绍雅特力AT32 MCU CAN入门指南
【经验】雅特力MCU如何在Keil中将函数或变量编译到指定地址
在使用雅特力MCU AT32F403A,AT32F421,AT32F413,AT32F415做软件编程中,有时会有将函数或者变量加载到固定的Flash地址,本文介绍2种将变量或函数编译到指定地址的方法。
【经验】 雅特力AT32 MCU Printf的功能使用方法
内容概述本文档主要介绍雅特力AT32 MCU在Keil和IAR两种工程环境下的printf功能使用方法。其共包含6种方法,各方法的具体用法在具体内容中描述。
雅特力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
|
选型表 - 雅特力 立即选型
基于雅特力AT32 MCU的洗衣机电机控制驱动方案,解锁智能家居新体验
随着人工智能、物联网等技术的发展,传统家电逐渐向智能家电转型。洗衣机作为家庭生活中不可或缺的电器之一,其智能化升级对于提升生活品质具有重要意义。MCU作为电机控制系统的核心“大脑”,肩负着多样化的控制使命。雅特力AT32 MCU以其卓越的性能和完善的电机开发生态,为洗衣机、电动两轮车和电摩等电机应用产品提供高效电机控制驱动方案,并已实现规模量产。
中科芯CKS32F107xx系列MCU内部温度传感器ADC采集应用指南
中科芯推出的CKS32F107xx系列MCU有一个内部的温度传感器,可以用来测量MCU及周围的温度(TA)。该温度传感器在内部和ADCx_IN16输入通道相连接,此通道把传感器输出的电压转换成数字值。
【经验】雅特力MCU AT32F421的时钟配置教程
时钟是芯片正确高效运行的基础,正确的时钟配置是芯片能正确运行的必要条件,其重要性不言而喻。AT32各系列产品的时钟配置部分可能存在细微的差异和需要注意的事项,本文就着重针对各系列的情况来详细介绍如何结合雅特力提供的V2.x.x的板级支持包(BSP)来配置时钟。
【经验】解析雅特力AT32系列MCU RTC入门指南
RTC计数逻辑位于电池供电域,内部为一个32位递增计数器,只要电池供电域有电,RTC便会一直运行,不受系统复位以及VDD掉电影响。本文雅特力将为大家介绍AT32系列MCU的RTC入门指南。
航顺业界创新HK32C030家族,传感器+MCU的可靠之选!
航顺芯片业界创新HK32C030家族,传感器+MCU的可靠之选!HK32C030家族具备ARM Cortex-M0内核,最高工作频率64MHz,支持DMA,64KB FLASH,10KB SRAM,2.6V~5.5V。
【经验】雅特力MCU AT32F421 CMP比较器使用指南
雅特力AT32F421系列内置一个超低功耗比较器CMP,它可用作独立器件(I/O上提供了全部接口),也可以与定时器结合使用。本篇文章介绍如何使用AT32F421xx的比较器(CMP)。
雅特力32位MCU-AT32快速选型指南
描述- 本资料为AT32系列微控制器(MCU)选型表,详细列出了不同型号的AT32 MCU的特性和支持功能。包括I2S通信模式(全双工/半双工)的支持情况,以及不同型号之间的差异。资料更新日期为2022年3月8日,版本号为V202203,支持多个系列型号。
型号- AT32F413CCU7,AT32F437ZCT7,AT32F415CBT7,AT32F415R8T7,AT32F425F8P7,AT32F437ZGT7,AT32F403ZET6,AT32F421K6T7,AT32F425C6U7,AT32F437VMT7,AT32F425R8T7,AT32F437RGT7,AT32F421K4U7-4,AT32F437RCT7,AT32F403ARGT7,AT32WB415CCU7-7,AT32F413CBT7,AT32F435CMT7,AT32F403ARCT7,AT32F415CCU7,AT32F435RCT7,AT32F435ZGT7,AT32F403AVET7,AT32F435RGT7,AT32F435VMT7,AT32F421C6T7,AT32F403ACET7,AT32F413KBU7-4,AT32F435ZCT7,AT32WB415,AT32F435CMU7,AT32F413CBU7,AT32F415KBU7-4,AT32F407RCT7,AT32F403ACGU7,AT32F407VET7,AT32F425K8U7-4,AT32F407RGT7,AT32F403ACCU7,AT32F415RCT7,AT32F425R8T7-7,AT32F415CBU7,AT32F425K6T7,AT32F421K6U7,AT32F425K6U7-4,AT32F425C6T7,AT32F421G4U7,AT32F415RBT7-7,AT32F421G8U7,AT32F421F4P7,AT32F421F8P7,AT32F413RCT7,AT32F425R6T7-7,AT32F413KCU7-4,AT32F413,AT32F425F6P7,AT32F415,AT32F437VCT7,AT32F421K4T7,AT32F437VGT7,AT32F437ZMT7,AT32F421K8T7,AT32F425C8U7,AT32F403ZGT6,AT32F403ZCT6,AT32F425R6T7,AT32F413C8T7,AT32F415RBT7,AT32F421,AT32F403ARET7,AT32F403,AT32F435VGT7,AT32F435CGT7,AT32F407,AT32F435VCT7,AT32F421C8T7,AT32F435CCT7,AT32F403ACGT7,AT32F403AVGT7,AT32F421C4T7,AT32F403ACCT7,AT32F435ZMT7,AT32F403AVCT7,AT32F413RBT7,AT32F415C8T7,AT32F435,AT32F415RCT7-7,AT32F437,AT32F435CGU7,AT32F407VCT7,AT32F415CCT7,AT32F407VGT7,AT32F435CCU7,AT32F415KCU7-4,AT32,AT32F407RET7,AT32F403ACEU7,AT32F415K8U7-4,AT32F415R8T7-7,AT32F435RMT7,AT32F413CCT7,AT32F425,AT32F421K4U7,AT32F425K8T7,AT32F421K8U7-4,AT32F421K8U7,AT32F425C8T7,AT32F437RMT7,AT32F421G6U7,AT32F421K6U7-4,AT32F421F6P7,AT32F403A
基于AT32 MCU的低压电机控制评估板用户手册
描述- 本资料为AT32 MCU低电压电机控制评估板V2.0的用户手册,旨在指导用户如何使用该评估板。评估板适用于AT32F4xx、AT32A4xx、AT32L0xx系列MCU,支持BLDC、AC同步电机和异步电机的驱动。主要特点包括:通用低电压三相电机驱动、适用于所有AT32 MCU的MCU插座、霍尔传感器和编码器接口、制动电阻接口、三相输出电压传感电路、三相电流传感电阻、内置过流保护电路、支持有传感器和无传感器FOC矢量控制算法、适用于家庭、商业和工业电机控制应用。资料详细介绍了硬件布局、电路设计、系统架构、跳线和连接器位置、引脚映射、原理图和布局等信息。
型号- AT32F4XX,AT32F423,AT32F413,AT32F435,AT32F425,AT32F415,AT32F405,AT32A403A,AT32F55,AT32,AT32L0XX,AT32L021,AT32A4XX,AT32F403A,AT32F421
【应用】雅特力32位MCU AT32F421G8U7适用于VBAT设计供电,最高可支持64KB闪存存储器
雅特力科技推出AT32F421系列超值型ARM® Cortex®-M4微控制器MCU,高达120MHz的CPU运算速度与内建数字信号处理器(DSP),最高可支持64KB闪存存储器(Flash)及16KB随机存取存储器(SRAM),集成了丰富外设接口。
【应用】雅特力高性能32位MCU AT32F407VGT7用于数据采集卡,主频高达240MHz,片上资源丰富
在数据采集卡中,通过传感器将环境被测的物理量(温度、压力、光源、位移等)转换成模拟电信号,之后通过模数转换器转换成数字信号给到微控制器进行数据处理,本文推荐雅特力的高主频MCU AT32F407VGT7。
国产传感器检测专用MCU CS88F310EN,采用QFN20L封装,专为需要直接接入模拟信号的各式传感器应用而设计
华润微的CS88F310EN是一款专门用于传感器检测的专用MCU,具有低噪声放大器、恒流源以及ADC功能的低功耗可编程传感器专用检测MCU,专门为需要直接接入模拟信号的各式传感器应用而设计。
电子商城
现货市场
服务
可定制显示屏的尺寸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 提交需求>
登录 | 立即注册
提交评论