星空体育官网注册
集成解决方案 自研解决方案
首页 > 产品解决方案 > 集成解决方案
星空体育官网注册12、PIC系列-I2C通讯模块
发布时间:2024-03-21 15:46:19 来源:星空官方网站入口 作者:星空体育网站入口

  • I2CxMSK :地址掩码寄存器(指定 I2CxADD 中的哪些位可以忽略,从而提供了多地址支持)

  • I2CxBRG:波特率发生器重载寄存器(保存I2C模块波特率发生器的波特率发生器重载值)

  注: 使用 1:1 PBCLK 分频比时,在清零模块 ON 位的指令之后,用户的软件不应立即在 SYSCLK周期中读 / 写外设的 SFR。

  bit 14 FRZ :DEBUG(调试)模式冻结控制位(仅在 DEBUG(调试)模式下可读 / 写;其他情况下读为 0)

  0 = 保持时钟为低电平(时钟延长)。用户可以将该位设定为 0,强制在下一次 SCL 低电平时产生时钟延长。

  仅适用于I 2 C主模式;适用于主模式接收期间。当用户在接收结束时发出一个应答序列时将发送的值。

  bit 4 ACKEN :应答序列使能位,仅适用于 I 2 C 主模式;适用于主模式接收期间

  1 = 当 I2CxRCV 寄存器仍然保存原先字节的情况下接收到了新字节。在发送模式下 I2COV 为 “无关位”。必须用软件清零。

  当检测到启动、重复启动或停止条件时更新;当 I 2 C 模块被禁止 (ON = 0)时清零。

  当检测到启动、重复启动或停止条件时更新;当 I 2 C 模块被禁止 (ON = 0)时清零。

  当某个主器件要启动数据传输时,它首先发送它要与之进行通信的器件地址。所有的器件均会,看是否是自己的地址。在该地址中,bit 0 指定主器件是要自从器件读数据还是向从器件写数据。外接上拉电阻以确保在没有器件将数据线拉低时线路能保持高电平。

  • 在数据传输期间,只要 SCLx 时钟线为高电平,数据线就必须保持稳定。在 SCLx 时钟线为高电平时,数据线的电平变化将被解析为启动或停止条件。

  在总线空闲状态之后,当时钟(SCLx)为高电平时,SDAx 线从高电平跳变到低电平产生启动条件。所有数据传输都必须以启动条件开始。

  当时钟(SCLx)为高电平时,SDAx 线从低电平跳变到高电平产生停止条件。所有数据传输都必须以停止条件结束。

  在等待状态之后,当时钟(SCLx)为高电平时,SDAx 线从高电平跳变到低电平产生重复启动条件。重复启动条件使主器件可在不放弃总线控制的情况下更改所寻址从器件的总线方向。

  在启动条件之后,如果 SDAx 线在时钟信号的高电平期间保持稳定,则 SDAx 线的状态代表有效数据。每个 SCLx 时钟传送一位数据。

  所有的数据字节传输都必须由接收器进行应答 (ACK)或不应答 (NACK)。接收器将 SDAx 线拉低则发出 ACK,释放 SDAx 线则发出 NACK。应答为一位周期,使用一个 SCLx 时钟。

  数据线上的数据必须在时钟信号的低电平期间改变。器件也可以通过在 SCLx 上驱动低电平来延长时钟的低电平时间,使得总线处于等待状态。

  当模块使能时,主器件和从器件功能同时工作,并根据软件或总线事件作出响应。总线操作使用两个引脚。它们是 SCLx 引脚 (时钟线)和 SDAx 引脚 (数据线C 模块可产生三种中断信号:从器件中断(I2CxSIF)、主器件中断(I2CxMIF)和总线CxBIF)。

  I2CxTRN 是写入发送数据的寄存器。在报文的处理过程中, I2CxTRN 寄存器将移出各个数据位。因此,除非总线空闲,否则不能写入 I2CxTRN。

  主器件或从器件正在接收的数据移入一个不可访问的移位寄存器 I2CxRSR。当接收到完整字节时,字节将传送到 I2CxRCV 寄存器。

  如果在软件从 I2CxRCV 寄存器中读取前一字节之前,模块接收到另一完整字节,则发生接收器溢出, I2COV 位 (I2CxSTAT

  波特率发生器的重载值包含在 I2CxBRG 寄存器中。在写入 I2CxTRN 时,波特率发生器会自动开始计数。

  使用I2C来与I2C外设(例如I2C串行存储器)进行通信。在I2C系统中,主器件控制总线上所有数据通信的序列。

  向从器件发送数据:将适当的值写入 I2CxTRN 寄存器即可发送一个数据字节、一个 7 位器件地址字节或一个 10 位地址的第二个字节。

  接收来自从器件的数据:主器件在发送了 R/W 位值为 1 的从器件地址之后,即可接收来自从器件的数据。这可通过将接收使能位 RCEN(I2CxCON

  )置 1 来使能。主器件逻辑开始产生时钟,并且在SCLx的每个下降沿之前,对SDAx线进行采样并将数据移入I2CxRSR。

  主模式工作时的休眠:当器件进入 SLEEP (休眠)模式时,模块的所有时钟源都会被关闭。波特率发生器会由于时钟停止而停止。

  从模式工作时的休眠:在器件处于 SLEEP (休眠)模式时, I 2 C 模块可以在从模式下继续工作。

  空闲模式:当器件进入 IDLE(空闲)模式时,所有 PBCLK 时钟源继续工作。如果 I2CxSIDL = 0,则模块将在 IDLE (空闲)模式下继续工作。如果 I2CxSIDL = 1,则模块将在 IDLE (空闲)模式下停止工作。

  调试模式下的操作:当 FRZ = 0 时,即使应用程序在 DEBUG(调试)模式下暂停,I 2 C 模块也会继续运行。当 FRZ = 1 且应用程序在 DEBUG(调试)模式下暂停时,模块将冻结其操作,并且不更改 I 2 C 模块的状态。

  复位(POR 和 WDT 等)会禁止 I 2 C 模块并终止所有正在进行和待执行的报文活动。

  //模拟I2C总线传感器通信 //将测得数据通过串口输出(成功) //未加 CRC校验 #include pic18.h #define SCL RG0 //时钟总线 #define DATA RG1 //数据总线 #define SCL_DR TRISG0 //时钟方向 #define DATA_DR TRISG1 //数据方向 #define out 0 #define in 1 #define MT 0x03 //Measure Temperature #define MH 0x05 //Measure Humidity #define RR 0x07 //Read Status R

  总线数据程序 /

  引言 随着以计算机技术、通信技术和软件技术为核心的信息技术的迅速发展,嵌入式系统在各行业得到了广泛的应用,极大地推动了行业的渗透性应用。 嵌入式系统是“以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统”,由嵌入式硬件和嵌入式软件两部分组成。嵌入式软件包括嵌入式操作系统和嵌入式应用软件。Microsoft的桌面操作系统已经为人们熟悉和使用,嵌入式的操作系统日益风行。Windows CE.net是Microsoft推出的功能强大的紧凑、高效、可伸缩的32位嵌入式操作系统,主要面对各种各样的嵌入式系统和产品。该系统所具有的多线

  最近用到的MCU型号为ASM9260,在写相关驱动时遇到了一些麻烦,以下做记录以便谨记。 1.SPI上,使用DMA进行读写FLASH数据。出现的现象为:擦除FLASH之后,读出的值为0xFF,写入一些数据后,读出的值与写入的值不一致,读写值的规律例如每一次写入的是0x3C,读出的都是0x08,每一次写入的是0x2B,读出的是0xE0,就是说每一个字节的写入它都会有与之对应的另一个字节读出,只是不相等而已。由于读写擦除的过程中程序并没有提示任何错误故可判断程序中SPI初始化以及相关DMA的初始化都没有问题,这一点也在大神同事的检查代码之后得以验证。后来观察板子之后可以看到MCU与FLASH的距离大概有四五十厘米的距离,这个长度确

  1.Linux主机驱动和外设驱动分离思想 外设驱动→API→主机驱动→板机逻辑--具体的i2c设备(camera,ts,eeprom等等) 2.主机驱动 根据硬件手册,操作具体的寄存器,产生波形。 Linux应用工程师:屏蔽了驱动和硬件 Linux驱动工程师:屏蔽硬件,提供标准的主机驱动。驱动工程师需要完成“外设驱动” 内核函数接口:(API)。主机驱动提供給外设驱动的函数接口 注册i2c设备:i2c_board_info 驱动注册和卸载函数以及结构体:i2c_del_driver/i2c_add_driver, i2c_driver 读写函数和结构体:i2c_transfer, i2c_m

  1.硬件电路 I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。如下图: SDA(串行数据线)和SCL(串行时钟线)都是双向I/O线,需通过上拉电阻接电源VCC.当总线空闲时.两根线c协议规则 传输过程如下: 主控发送start讯号(S) 主控发送从设备地址(slave dev addr) 主控发送方向(W/R) 从设备应答(ack) 主控(or从设备)发送数据(data) 从设备(or主控)应答(ack) … 主控发送停止讯号(P) 下图是具体的s3c2440 一次i2c读写过程: 2.1 start & stop讯号 start信号:SCL是高电平,SDA被主控拉低

  编程-1.i2c协议 /

  随着科学技术的发展和现代战争条件的变化,传统图像信号提供的单一服务已远远不能满足现代战争的需要。图像信号由于包含有极其丰富的信息,具有通信效率高、便于记录、形象逼真、临场感强等特点,所传送的信息量远远超过其他通信手段,所以得到越来越多的重视。在JPEG2000系统下,视频采集系统是视频采集功能的FPGA(现场可编程门阵列)前端系统,是视频图像处理、应用的前项通道。作为视频采集系统的重要组成部分I2C(Inter Integrated Circuit)总线年代由荷兰Philips公司研制开发成功。它是一种简单、双向二线制同步串行总线C总线C总线协议作为一个串行总线标

  总线设计与实现 /

  PIC16C5X系列可以使用4种类型振荡方式:标准晶体/陶瓷振荡XT、高速晶体振荡HS(4MHz以上)、低频晶体振荡LP(32KHz)以及阻容振荡RC。 对于窗口型可重擦除芯片可以通过对 定义EPROM (Coriguratiou EPROM)编程来选择任何一种振荡方式。对于OTP和掩腌片QTP则由厂家定义好振荡方式,并通过相应的检测。 §1.9.1 晶体/陶瓷振荡 这种振荡包括XT、HS和LP。其 电路 是在OSC1和OSC2两端加一晶体/陶瓷振。


星空体育官网注册
上一篇:揭秘MC3361+MCU低速通信系统电路 —电路图 下一篇:低功耗MCU电子电路设计图集锦TOP12 —电路图