iic裸机与linux通信,裸机系列——S3C2440IIC通信

最新更新时间:2022-04-21来源: eefocus关键字:裸机系列  S3C2440  IIC通信 手机看文章 扫描二维码
随时随地手机看文章

经过一周左右的时间终于是把IIC弄的个差不多了,我只能说对于每一个程序都要认真对待,每个程序的编写都是一种进步。对于IIC,给我的感觉是这个东西单片机的时候也知道,但是没有调出来,现在RAM裸机编程正好好好的学习的一下,但是虽然对于2440的IIC驱动只需要配置好寄存器和把握好时序就可以了,但是我还是经过了很多的一段痛苦的时期,不过现在回想看看,都是一种成长的经历,让人值得骄傲。因为我坚持过来了。好的,说正点的,首先IIC编程依然感谢乐于奉献的赵老师,他的博客地址很多详细的介绍我就不多说了,赵老师的博客讲得很详细,和以前一样讲一下自己的体会和问题。


1.AT24C08芯片,是一款EEPROM,8K,不过是8Kbit,1024X8bits。遵循IIC协议通信。首先对于一个控制器可以接多个IIC设备,为了区分每个IIC设备,给每个IIC设备一个地址。这个的地址的确定用硬件的连接方式确定。24c08的地址,1010(A2)(B9)(B8)(R/W)1010代表EEPROM设备,A2引脚的硬件连接(接地或者接VCC)确定0或者1,最多可以接俩片24C08。B9和B8是内存地址的最高位,R/W位读写控制位。


2. IIC的应答

1. 应答信号的发送,应答信号是在8位数据(读或者写)传输完成后,由主设备发送第九个时钟脉冲同时主设备释放SDA线(拉高SDA)

2. 应答信号的响应, 从设备在接收到第九个时钟信号后,拉低SDA线,响应应答信号

3. 主设备的应答接收, 主设备在检测到从设备拉低SDA后,将时钟线SCL拉低,时钟线SCL为低是不能进行数据的传送,所以只有再 Clear pending bit to resume 后才能从新进行数据的接收。

3. IIC的读写中,等待中断的死循环中要加delay延时函数,读写函数的最后需要释放iic总线以便下一次读写,建议IICCON = 0xe0 ,先要把数据写到IICDS上再发送开始信号

4. 在读IIC的时候,发送了接收模式的时候,从设备会发送一个0xa1的数据,应该是设备地址加上读信号。同时有可能设备内部的内存地址计数器加1,(猜测)因为我用current address read 读数据的时候总是向后移动了一个字节。

5.

24C08有Byte Write和Page Write,当写Page

Write的时候要注意,24c08是以16个字节为一页,同时一页的起始地址是16位对齐的,即最后俩位地址只能是00.而且在一页中写不能写到接下来

的那一页去,但是Sequential Read就没有这种限制,可以一直读。

6. 一个串口显示的问题,就是接收到的数据不能显示字符的时候可能会影响下一个字符的显示,我因为用串口调试的时候总是收不到数据,或者乱码,后面用十六进制显示就好了。

7. 写程序要有耐心和毅力,能够冷静坚持,不能遇到问题就浮躁,使情绪。


关键字:裸机系列  S3C2440  IIC通信 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic564325.html

上一篇:移植内核到s3c2440
下一篇:ARM裸机程序研究 - S3C2440时钟初始化

推荐阅读

OK6410A 开发板 (八) 105 linux-5.11 OK6410A 进程通信机制2 共享内存
共享内存 posix 提供一套 , XSI(systemv) 提供一套共享内存的实现 有很多种 1.posix mmap && open mmap 共享文件映射mmap(/dev/shm/xxx) 也用到了 shmem_vm_ops ,封装出了 posix 共享内存 // 共享匿名映射 用到了 shmem_vm_ops // 共享文件映射mmap(/dev/zero) 也用到了 shmem_vm_ops ,封装出了 posix 共享内存 2.XSI(systemv) 3.memfd_create和fd跨进程共享 4.dma-buf共享内存实现方案有多种,posix共享内存是其中的一种posix共享内存是一种通信方式,其基于 mmap
发表于 2022-08-11
OK6410A 开发板 (八) 125 linux-5.11 OK6410A 进程通信之pipe
综述管道,本质是用__get_free_page在内核空间申请一个空间,并将其初始化为一个环行buffer。写的时候,就填充这个buffer,写满了,就根据IO设置,阻塞或者非阻塞,写到非空,唤醒读进程。读的时候,就从这个buffer拿值,读空了,就根据IO设置,阻塞或者非阻塞,读到非满,唤醒写进程。有名管道,本质上是管道的升级版,即有名管道可用于非亲属进程的通信改进方法为:通过将内核的这个环行缓冲区与磁盘文件绑定, 磁盘文件对所有非亲属进程可见,从而非亲属进程可通过磁盘文件访问该环行缓冲区PIPE测试代码 : https://github.com/lisider/Communication.git 中的 pipe.cstace .
发表于 2022-08-09
嵌入式linux开发 (十三) FLASH(3) s3c2440外扩NAND FLASH
- JZ2440 S3C2440 ARM920T -内置 Steppingstone (4K-Byte SRAM) 无rom -外扩 MX29LV160DBTI:2MB,并口 NOR FLASH K9F2G08U0C: 256MB,NAND FLASHsocThe S3C2440A is developed with ARM920T core, 0.13um CMOS standard cells and a memory complier.The ARM920T implements MMU, AMBA BUS, and Harvard cache architecture with separate 16KB instructi
发表于 2022-08-08
嵌入式linux开发 (二十三) 内存管理(5) s3c2440内存管理
之前想着s3c2440内存管理应该和imx6ull 是一样的,目前看起来是不一样JZ2440 S3C2440 ARM920T ARMv5t -内置 Steppingstone (4K-Byte SRAM) 无rom -外扩 EM63A165TS-6G:32MB/片,SDRAM,共两片 MX29LV160DBTI:2MB,并口 NOR FLASH K9F2G08U0C: 256MB,NAND FLASH硬件对内存的管理socSupports various types of ROM for booting (NOR/NAND Flash, EEPROM, and others)NAND Flash Boot Loader· Suppo
发表于 2022-08-08
嵌入式<font color='red'>linux</font>开发 (二十三) 内存管理(5) <font color='red'>s3c2440</font>内存管理
嵌入式linux开发 (九) RAM(3) s3c2440外扩sdram
- JZ2440 S3C2440 ARM920T -内置 Steppingstone (4K-Byte SRAM) 无rom -外扩 EM63A165TS-6G:32MB/片,SDRAM,共两片socThe S3C2440A is developed with ARM920T core, 0.13um CMOS standard cells and a memory complier.The ARM920T implements MMU, AMBA BUS, and Harvard cache architecture with separate 16KB instruction and 16KB data caches, each
发表于 2022-08-08
嵌入式<font color='red'>linux</font>开发 (九) RAM(3) <font color='red'>s3c2440</font>外扩sdram
S3C2440汇编点灯
如何点灯步骤如下1、看原理图确定控制LED的引脚2、看主芯片手册确定如何设置/控制引脚这里JZ2440的芯片,就是S3C24403、写程序主芯片引脚输出高电平或低电平就可以改变LED状态我们不关心GPIO引脚输出的逻辑电压,只关心高电平或低电平主芯片输出的两种情况第一种此时主芯片输出3.3V电压,点亮LED输出0V电压,熄灭LED第二种此时主芯片输出0V电压,点亮LED输出3.3V电压,熄灭LED引脚驱动能力不足的情况有可能有的引脚能够发出的最大电流不能够点亮LED这时候就需要我们来改进这个电路——使用三极管有可能芯片只能输出1.2V,但足以使得三极管导通那么电流从3.3V处往下流动,就能点亮LED另一种方法当芯片输出低电平/0V,
发表于 2022-08-08
<font color='red'>S3C2440</font>汇编点灯

推荐帖子

关于ROM 和 RAM 编址问题
系统上电的时候,cs:ip指向0xffff0,这个位置应该为ROM地址,这时RAM是不可用的,当ROMbios检测到RAM时,是否执行了代码拷贝?将ROMbios拷到1M高端的64k,如果bios大于64k怎么办呢?或者根本没有什么代码拷贝,只是进行了内存映射? videobios好像也是内存映射吧?假如系统新增加了PCI设备,bios是否也会映射到1M内存区域的某个部分呢?关于ROM和RAM编址问题
stargon_zhang 嵌入式系统
Altera参考设计-1536-Point FFT for 3GPP Long Term Evolution
3GPPLongTermEvolution(LTE)isanongoingprojecttoimprovetheuniversalmobiletelecommunicationsystem(UMTS)standardtohandlefuturerequirementsofmobilephones.Themaintargetsincludehigherdatarates,improvedspectrumefficiency,im
xiaoxin1 FPGA/CPLD
入职测试题目, 哪位高手可以帮忙? 先谢谢了!
试题的超连接: http://www.happyit.com.cn/login.aspx 用户名:周伟明 密码:happyit 谢谢大家帮忙! 在线等!!!!!入职测试题目,哪位高手可以帮忙?先谢谢了!
zhouzhaofu 嵌入式系统
求助关于LPC1343仿真器都可以仿真哪些芯片
小弟正在买淘宝上买东西,顺便多买几片LPC的片子回来。 前几天不是有5块LPC1343的板子送出了, 我想请问哪位大哥知道那个仿真器都可以仿真哪些LPC的芯片啊?? 小弟在这里恭候佳音!求助关于LPC1343仿真器都可以仿真哪些芯片
lilong8470 NXP MCU
【平头哥RVB2601创意应用开发】环境监测终端02-连接阿里云控制LED灯
本帖最后由sipower于2022-4-520:34编辑 本篇文章介绍使用RVB2601开发板连接阿里云,并通过云端web界面控制开发板上的LED灯开关。RVB2601开发板内置了联盛德公司⾼性能&安全的WiFi4芯⽚W800,W800通过SPI⼝与CH2601连接。W800已经默认烧录基于AT的WiFi透传固件,支持飞燕平台,开发者可基于AT⽹络指令,快速实现联⽹的应y
sipower 平头哥RISC-V RVB2601活动专区
小广播
实战 培训 开发板 精华推荐

何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved