硬件IIC调试问题排查
沁恒蓝牙系列芯片中目前只有CH582/583以及208包含有硬件IIC外设,本文均使用582进行测试,其他沁恒芯片也可以参考本文排查。
先进行“常规”检查,检查相关引脚的焊接、线材是否断线或接触不良等问题,确定是否为IIC模块的问题。
如果582作硬件IIC主机:
①上电后是否进行了上电延时以给从机进行上电加载。从机上电加载可能需要一定的时间,具体看从机芯片手册或者从机模块手册的要求。
②SCL、SDA总线上是否按从机要求加了2~10k的上拉电阻。是否需要上拉电阻和上拉电阻阻值的选择,具体看从机芯片手册或者从机模块手册的要求。
③时序正常,应答都正常,但是数据“异常”,比如说某些寄存器能读到正常数值,某些寄存器读出来都是0。建议查阅从机手册,检查一下从机模式是否正常,有没有唤醒从机,有没有向从机配置一些必要参数等。
④重映射后一直busy。最新EVT中已解决,初始化函数中添加了重置IIC模块的语句,具体见博客硬件IIC的重映射使用问题 - JayWell - 博客园 (cnblogs.com)。
⑤读操作过程中发现PE被关掉了也就是IIC取消了使能,可以尝试去掉下图中的代码。
检查PE标志位可以这样打印:PRINT("PE = %d\n",((*((uint32_t*)0x40004800))&0x0001));

如果582作硬件IIC从机:
使用到了从机第二地址,接收数据后没有不释放时钟线导致一致busy,可能是EVT版本比较旧而缺少第二地址接收相关宏,可以参考最新EVT中的宏定义。
如果使用到了硬件IIC主/从中断:
发现能够跑通,但运行不稳定,可能运行一段时间后就卡死。建议参考最新EVT例程,使用if语句判断标志位,而不要用switch case语句判断标志位。参考例程中的if语句判断只要求相应的标志置位即可,而使用switch case语句判断则要求每一位标志都严格一致。
如果还是没有排查出问题,可以在沁恒官网相关系列芯片的论坛反馈。
硬件IIC调试问题排查的更多相关文章
- paip.hql的调试故障排查流程总结
paip.hql的调试故障排查流程总结 环境.myeclipse7.0 1 Hql的调试工具myeclipxe默认工具.../Hibernate8IDE 1 故障的排除方法overview 1 Hql ...
- STM32硬件IIC操作
Stm32具有IIC接口,接口有以下主要特性 多主机功能:该模块既可做主设备也可做从设备 主设备功能 C地址检测 位/10位地址和广播呼叫 支持不同的通讯速度 状态标志: 发送器/接收器模式标志 字节 ...
- STM32硬件IIC (转)
源: STM32硬件IIC
- STM32硬件IIC驱动设计(转)
源: STM32硬件IIC驱动设计 参考: STM32—硬件IIC主机通信 STM32’s I2C 硬件BUG引发的血案(qzm) 解决STM32 I2C接口死锁在BUSY状态的方法讨论
- STM32硬件IIC
/** * @brief 写一个字节到I2C设备中 * @param * @arg pBuffer:缓冲区指针 * @arg WriteAddr:写地址 * @retval 正常返回1,异常返回0 * ...
- STM32 IIC双机通信—— HAL库硬件IIC版
参考传送门 关于IIC的原理这里我就不多说了,网上有很多很好的解析,如果要看我个人对IIC的理解的话,可以点击查看,这里主要讲一下怎样利用STM32CubeMx实现IIC的通讯,经过个人实践,感觉HA ...
- STM32读取bq33100数据——硬件IIC
背景:拟采用bq33100超级电容管理芯片,实现自动的超级电容组的均压任务.需监控芯片的工作情况,以及电容组的均压情况. 平台: 硬件:STM32F103C8T6 通信:SMBus(低速IIC) 目标 ...
- LPC2478的硬件IIC使用
LPC2478的IIC使用 LPC2478带有三个IIC接口,每个IIC都可以工作在主机或者从机模式下,LPC的IIC的架构是一种状态机的形式,在不同的的时间做不同的工作之后有不同的状态来表示, 简单 ...
- Xcode中使用数据(硬件)断点调试
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 在Xcode的GUI界面中只能添加软断点,而无法增加硬断点.但 ...
- FPGA开发要懂得使用硬件分析仪调试——ILA
0. ILA概述在FPGA开发中,当我们写完代码,进行仿真,确定设计没有问题后,下载到硬件上一般都能按照我们的设计意愿执行相应功能.但这也并非绝对的,有时候你会遇到一些突然情况,比如时序问题或者仿真时 ...
随机推荐
- 华为云发布冷启动加速解决方案:助力Serverless计算速度提升90%+
摘要:本文介绍了华为云对冷启动优化这一业界难题的探索之路,创新提出了基于进程级快照的优化方案. 作者信息-- 子游:华为元戎高级工程师 平山:华为云中间件 Serverless 负责人 琪君:华为元戎 ...
- c++代码实现中时间复杂度的不断优化
先来介绍一下时间复杂度: 同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率.算法分析的目的在于选择合适算法和改进算法. 计算机科学中,算法的时间复杂度是一个函数,它定量描述了该 ...
- Python 异步集群使用
目前在做Python项目用到同步和异步的方法使用Redis单机,现在要增加兼容Redis集群.也就说当前项目用到中以下4种Python使用Redis的方法都用到了. - 同步 异步 单机 涉及 涉及 ...
- 不用Blazor WebAssembly,开发在浏览器端编译和运行C#代码的网站
本文中,我将会为大家分享一个如何用.NET技术开发"在浏览器端编译和运行C#代码的工具",核心的技术就是用C#编写不依赖于Blazor框架的WebAssembly以及Roslyn技 ...
- WPF 使用动画绘制一个点赞大拇指
效果图 好久没有写wpf了. 最近看到飞书的点赞动画非常有意思,决定试试,虽然不及飞书那样的绚丽,但是练手还是可以的,希望自己的手艺还在! 那么如何写一个这样的动画呢? 首先需要刨析这个动画的构成: ...
- Nginx03 虚拟主机
1 虚拟主机 虚拟主机使用特殊的软硬件技术,把一台运行在因特网上的服务器主机分成一台台"虚拟"的主机,每一台虚拟主机都具有独立的域名,具有完整的Internet服务器(WWW.FT ...
- JSON Crack 数据可视化工具
JSON Crack简介 JSON Crack 是一个很方便的 JSON 数据可视化工具. 该项目不是简单的展示 JSON 数据,而是将其转化为类似思维导图的形式,支持放大/缩小.展开/收缩.搜索节点 ...
- rt-thread模糊到清晰系列: thread切换相关
// 创建thread tid = rt_thread_create("main", main_thread_entry, RT_NULL, RT_MAIN_THREAD_STAC ...
- C++练习12 字符串成员函数的使用
1 #include <iostream> 2 #include <string> 3 using namespace std; 4 int main() 5 { 6 stri ...
- yaml文件详解
一.yaml文件详解 前言 Kubernetes 支持 YAML 和 JSON 格式管理资源对象JSON 格式:主要用于 api 接口之间消息的传递YAML 格式:用于配置和管理,YAML 是一种简洁 ...