目录一、内存映射1、什么是内存映射?为什么要内存映射?2、gec6818如何进行内存映射?(相关的函数)3、内存映射代码 :二、模拟IIC的底层代码实现1、配置输入输出方向2、拉高拉低引脚3、获得总线传回的数据4、协议的实现三、TM1650的使用1、TM1650简介2、TM1650怎么驱动?2.1控制命令 2.2显存地址 2.3对显存地址写数据时序四、针对TM1650实现的IIC驱动1、TM1650模块驱动(完整驱动代码)2、驱动测试程序3、Makefile4、Linux操作关键词:1、模拟IIC协议2、S5P68183、ARM内存访问控制4、TM1650数码管本片博客记录在gec6818平台
此为软件模拟IIC,可以直接移植到HAL库使用。.h文件需要自己做函数声明这里就不再放出,如有问题大家可以讨论。使用的时候只需要更改SDA和SCL引脚的宏定义就可以移植使用,当然IIC协议其实就是根据IIC的时序图编写代码,主要内容就是包括开始信号,停止信号以及发送数据的格式、接收数据和数据的应答。此IIC代码可以供所有的IIC模块使用,包括IIC必须要的几个基本功能代码中都已经给出。下面开始来介绍IIC协议。IIC协议具体内容写数据:主机给从机发从机只收SDA为输出模式读数据:从机给主机发主机收SDA为输入模式IIC具体内容:(只规定了开始信号停止信号8位数据(发8位收一位ACK)ACK应答
SMbus总线SMBus是SystemManagementBus的缩写,它是一种简单的串行通信总线,用于连接计算机上的系统管理芯片和其他设备,如电池、风扇、温度传感器等。SMBus是由英特尔公司开发的,它基于I2C总线协议,但是增加了一些额外的功能,如命令、控制和错误检测等。SMBus使用两根线进行通信,一根是数据线(SDA),另一根是时钟线(SCL)。设备可以通过发送命令和数据来与系统管理芯片进行通信,系统管理芯片则可以控制和监测系统的各种参数,如电压、温度、风扇转速等。SMBus还支持一些特殊的功能,如快速模式、扩展寻址和设备识别等。快速模式可以提高通信速度,扩展寻址可以支持更多的设备,设
IIC错误原因汇总前言最近手里有个项目,是由IIC总线作为通信协议的。IIC的教程和原理网上一大把,但是我在调试时遇到了一个很奇葩的BUG,整整花费了3天时间才得到解决。因此在这里把调试过程记录一下,给大家遇到相似的问题时以提供一个大致思路。问题排除流程1、检查硬件连接问题,注意总线是否连接上拉电阻。2、检查电压,排除由于硬件设计导致读取失败,注意引脚电平一般为3.3V或1.5V。3、检查IO口配置,在初始化配置IO时一定要注意IO的配置是否正确,是否有复用或重复定义,多检查几遍,尤其是和官方的Datasheet或者例子相对比一下。4、检查从机设备地址,从机设备地址设置错误导致通信失败,一般读
IIC通信协议简介:IIC(也记为I2C,读作I^2C,inter-integratedCircuit集成电路总线),最早是飞利浦在1982年开发设计并用于自己的芯片上,是一种半双工串行同步的通信协议。常用于一主多从的通信方式,由于只有两根线。,一根数据线SDA、一根时钟线SCL,因此抗干扰能力大不如CAN总线通信,常用于短距离通信。I2C总线标准模式下速度可以达到100Kb/S,快速模式下可以达到400Kb/S。通信协议详解:上图可以看出,由两条信号线的上拉电阻把电平拉高,因此当IIC总线的数据线SDA和时钟线同时处于高电平时,规定为总线的空闲状态。此时各个器件输出级场效应管均处在截止状态,
文章目录一、中微单片机烧录与使用编译软件烧录软件下载地址烧录软件二、模拟IIC三、逻辑分析仪下的时序一、中微单片机烧录与使用编译软件中微所使用编译软件为SCMCU_IDE,不过个人不推荐使用这个软件写代码(十分不好用,不能跳转,只能全部搜索一个个查,而且不能替换),大家可以利用VScode打开代码项目文件(直接拖入桌面VScode图标或者打开VScode再打开项目文件),VScode永远的神。烧录软件烧录软件是SCMCUWRITER,买个中微的烧录器直接接好线烧录即可(每次编译完会提醒你代码改变了)下载地址中微官网是:https://www.mcu.com.cn(顺带提一嘴,好牛皮的域名)进入
文章目录一、中微单片机烧录与使用编译软件烧录软件下载地址烧录软件二、模拟IIC三、逻辑分析仪下的时序一、中微单片机烧录与使用编译软件中微所使用编译软件为SCMCU_IDE,不过个人不推荐使用这个软件写代码(十分不好用,不能跳转,只能全部搜索一个个查,而且不能替换),大家可以利用VScode打开代码项目文件(直接拖入桌面VScode图标或者打开VScode再打开项目文件),VScode永远的神。烧录软件烧录软件是SCMCUWRITER,买个中微的烧录器直接接好线烧录即可(每次编译完会提醒你代码改变了)下载地址中微官网是:https://www.mcu.com.cn(顺带提一嘴,好牛皮的域名)进入
前言:上一篇博客介绍了IIC通信,这篇我们就来玩玩oled模块。当然选用的是IIC接口,因为市面上还有一种是SPI接口的。对于oled长啥样,采用了什么材料,工艺怎么怎么样等等这里就不作任何介绍,搞得眼花缭乱的,对我们用它做开发也没任何帮助,同时节省读者阅读时间。为什么会有这种想法,就是因为发现一些博客在无关紧要的东西方面写了大半篇幅,而在实现原理方面草草了之,再放点代码,贴个效果实现图就算完事了,虚的一批。所以想自己写点东西,话不多说,下面直接开干,上技术活。强调:相关IIC通信代码请参考我的上篇博客1、写模式——写命令与写数据当我们拿到一个硬件产品准备做开发时,毫无疑问首先要做的就是参考产
IIC总线驱动+IIC设备驱动(驱动分割分离分层思想) 我们不需要写适配器,只需要写设备驱动 I2C是很常用的一个串行通信接口,用于连接各种外设、传感器等器件,在裸机篇已经对I.MX6U的I2C接口做了详细的讲解。本章我们来学习一下如何在Linux下开发I2C接口器件驱动,重点是学习Linux下的I2C驱动框架,按照指定的框架去编写I2C设备驱动。 I2C总线驱动重点是I2C适配器(也就是SOC的I2C接口控制器)驱动,这里要用到两个重要的数据结构:i2c_adapter和i2c_algorithm,Linux内核将SOC的I2C适配器(控制器)抽象成i2c
IIC读写接口驱动模块一、功能分析二、输入/输出信号三、IIC接口驱动状态机四、IIC接口驱动实现五、仿真测试写在前面FPGA实现IIC协议读写EEPROM相关文章:IIC通信协议【FPGA】FPGA实现IIC协议读写EEPROM(一)-----IIC接口驱动实现【FPGA】FPGA实现IIC协议读写EEPROM(二)-----EEPROM读写控制模块实现【FPGA】FPGA实现IIC协议读写EEPROM(三)-----汇总篇在上篇文章中已经对IIC协议进行了详细介绍,本文介绍IIC读写接口驱动模块的实现。一、功能分析IIC接口驱动模块功能是按照IIC协议时序将数据写入EEPROM或者从EEP