飞思卡尔8位单片机-第10章 IIC

合集下载

8位机讲义

8位机讲义

存储器结构
内部数据存储器
内部数据存储器被划分为物理上分开的两个不同的区域: 256B RAM和128B 特殊功能寄存器(SFR)区。RAM的 高128B和SFR区共用相同的地址段,通过不同的寻址方式 访问。RAM的低128B可通过直接寻址或寄存器间接寻址 方式访问;RAM的高128B只能通过寄存器间接寻址方式 访问;SFR只能通过直接寻址方式访问。RAM的地址段 20H到2FH的16个字节可位寻址;地址段30H到7FH可用作 暂存寄存器或堆栈。
存储器结构
程序存储器
使用一个专用接口使CPU和程序存储器直接 相连(而无需任何引脚连接),CPU的性能 得到优化。这意味着在每个时钟的上升沿均 能读取代码。因此,这里不存在“内部”或 “外 部”程序存储器的概念,因为所有的代码均 从 同一个程序存储器接口存取。
存储器结构
数据存储器
数据存储器由内部存储器和外部存储器组成。 数据存储器的“内部”和“外部”标记用来 区分寄 存器存储器和使用“MOVX”指令存取数据的 64 KB数据存储器。该外部标记并非暗指外部数 据存储器位于片外。
存储器结构
XC886/888的CPU可寻址以下五个地址空间:


12KB启动ROM(BootROM)程序存储器 256B内部RAM数据存储器 1.5KB XRAM存储器(XRAM可作为程序存储器或外部数 据存储器进行读写) 128B SFR区 24/32KB Flash程序存储器(Flash器件);或24/32KB ROM程序存储器,外加4KB Flash(ROM器件)
功能概述
法的十进制的调整和比较。逻辑运算包括与、 或、异或、补码和循环移位(右环移、左环 移、或4位环移(半字节交换))。ALU还包 括一个布尔处理机,可执行置位、清零、补 码、等于1跳转、等于0跳转、等于1跳转并清 零,送入/取自进位位的位操作。在任意可寻 址位(或该位补码)和进位标志之间,可执

1飞思卡尔8位单片机MC9S08JM60开发板实践教程-60页word资料

1飞思卡尔8位单片机MC9S08JM60开发板实践教程-60页word资料

第一章搭建实验环境1、实验电路板及下载器实物图片2、实验电路图本实验图包含两大部分,分别是CPU.SCH和实验资源.SCH。

CPU采用飞思卡尔8位单片机MC9S08JM60CLD,(电路图介绍)图1-3实验资源部分电路图1-4LCD串口1602液晶电路图1-5RS232接口电路图1-6数码管显示电路图1-7发光管、ad转换以及按键电路图1-83、集成开发软件环境的建立1〉运行文件CW_MCU_V6_3_SE.EXE,在电脑C盘安装飞思卡尔8位(及简化32位)单片机集成开发环境codewarrior6.3版本2〉运行USBDM_4_7_0i_Win,这个程序会在c盘的程序文件夹下增加一个目录C:\Program Files\pgo\USBDM 4.7.0,在这个目录下a>C:\Program Files\pgo\USBDM 4.7.0\FlashImages\JMxx下的文件USBDM_JMxxCLD_V4.sx是下载器的固件文件;b>C:\Program Files\pgo\USBDM4.7.0\USBDM_Drivers\Drivers下有下载器的usb驱动.因此在插入usb下载器,电脑提示发现新的usb硬件的时候,选择手动指定驱动安装位置到以上目录即可。

3〉运行USBDM_4_7_0i_Win之后,还会在目录:C:\Program Files\Freescale\CodeWarrior for Microcontrollers V6.3\prog\gdi下增加一些文件,从修改时间上来看,增加了6个文件,这些文件是为了在codewarrior集成开发环境下对usb下载器的调试、下载的支持。

4、C语言编程基础第二章 LED闪烁程序编写过程1、新建工程运行单片机集成开发环境codewarrior IDE出现如下界面●Create New Project :创建一个新项目工程●Load Example Project :加载一个示例工程●Load Previous Project :加载以前创建过的工程●Run Getting started Tutorial:运行CodeWarrior软件帮助文档●Start Using CodeWarrior:立刻使用CodeWarrior点击Create New project按钮,以创建一个新的工程,出现选择CPU的界面如下,请选择HCS08/HCS08JM Family/MC9S08JM60,在右边的Connection窗口可以选择最后一个开源下载器HCS08 Open Source BDM。

飞思卡尔8位单片机—飞思卡尔8位单片机基础知识

飞思卡尔8位单片机—飞思卡尔8位单片机基础知识

2.2、单片机的命名规则及选择
2.2.1、单片机选型需要关心的事项
供电电压、速度及功耗 管脚数量、并口与串口、功能复用、外扩能力 存储器资源:ROM、RAM、是否分页 外设接口 定时器数量、PWM、捕捉、比较 SPI、IIC、UART、CAN、USB、YITAI 中断源 模拟量处理 特殊接口:VGA、LCD、MOTOR 封装
选型要学会查找资源差异表
Freescale的08系列单片机型号有一百多种。在 这些不同型号的单片机中,资源各不相同,即使 是同一种型号的单片机,也有多种封装形式,其 I/O引脚数目也不相同。如MC68HC908JB8就有 20脚的DIP、28脚的SOIC、44脚的QFP和20脚 的SOIC四种封装形式。
7〉 管脚的复用
注意: 0、管脚功能复用时的优先 级见右表,高优先级接管管 脚时,对低优先级模块会产 生杂乱信号,因此切换前应 先停止不使用的功能。 1、PTA5作为只能输入管脚 而言,输入电压不能超过 VDD。 2、IIC使用的端口可以通过 设置SOPT2 寄存器中的 IICPS位重新定位到PTB6和 PTB7,复位时缺省使用 PTA2 and PTA3。 3、如果ACMP和ADC被同 时使能,管脚PTA0和PTA1 可同时使用。
第二章 飞思卡尔8位单片机基础知识
2.1、飞思卡尔8位单片机系列简介 2.2、飞思卡尔单片机命名规则与单片机选型 2.3、 MC9S08QG8硬件结构
8bit 单片机的Core type
HC08系列、HCS08系列、RS08系列。 HC08是1999年开始推出的产品,种类多,针对不同场合 的应用都可以选到合适的型号。 HCS08是2004年左右推出的8位MCU,资源丰富,功耗 低,性价比高,是08系列单片机的发展趋势。HC08与 HCS08的最大区别是调试方法不同与最高频率的变化 。 RS08是HCS08架构的简化版本,2006年推出,其内核体 积比传统的内核小30%,带有精简指令集,满足用户对 体积更小、更加经济高效的解决方案的需求。RAM及 Flash空间大小差异、封装形式不同、温度范围不同、 频率不同、I/O资源差异等形成了不同型号,为嵌入式 应用产品的开发提供了丰富的选型。

飞思卡尔8位单片机—飞思卡尔8位单片机基础知识

飞思卡尔8位单片机—飞思卡尔8位单片机基础知识

7〉 管脚的复用
注意: 0、管脚功能复用时的优先 级见右表,高优先级接管管 脚时,对低优先级模块会产 生杂乱信号,因此切换前应 先停止不使用的功能。 1、PTA5作为只能输入管脚 而言,输入电压不能超过 VDD。 2、IIC使用的端口可以通过 设置SOPT2 寄存器中的 IICPS位重新定位到PTB6和 PTB7,复位时缺省使用 PTA2 and PTA3。 3、如果ACMP和ADC被同 时使能,管脚PTA0和PTA1 可同时使用。
管脚及其功能
6〉 管脚控制寄存器
位于高页面的管脚控制寄存器,可以独立设置每个管 脚的输出驱动强度、输出信号变化速度、输入脚的内部 上拉允许等。内部上拉的设置有些时候自动失效,比如 管脚设为输出、管脚被外设使用、管脚作为模拟电路使 用等。如果管脚被用于键盘中断KBI模块,,并设置上升 沿触发,则允许上拉时实际是配置了下拉电阻。 对输出管脚设置了输出变化速度控制后,可以减少 EMC辐射,变化速度控制对输入脚无效。 输出管脚的输出驱动强度控制,可以选择更大的驱 动电流,虽然每个输出管脚都可以设置成大电流驱动, 但总电流不能超出芯片的工作范围。同时大驱动电流对 EMC辐射也会有一定影响。
• EPROM
EPROM(Erasable Programmable ROM,可擦除可编 程ROM)芯片可重复擦除和写入,。EPROM芯片在其正 面的陶瓷封装上,开有一个玻璃窗口,透过该窗口,可以 看到其内部的集成电路, 紫外线透过该孔照射内部芯片 就可以擦除其内的数据,完成芯片擦除的操作要用到 EPROM擦除器。EPROM内资料的写入要用专用的编程 器,并且往芯片中写 内容时必须要加一定的编程电压( VPP=12—24V,随不同的芯片型号而定)。EPROM的型 号是以27开头的,如27C020(8*256K)是一片 2M Bits容 量的EPROM芯片。EPROM芯片在写入资料后,还要以 不透光的贴纸或胶布把窗口封住,以免受到周围的紫外线 照射而使资料受损

飞思卡尔8位单片机MC9S08JM60开发板实践教程

飞思卡尔8位单片机MC9S08JM60开发板实践教程

第一章搭建实验环境系统时钟设置#include "App\Include\App.h"#ifndef _MCG_C#define _MCG_C//oscillator 12MHZ 倍频为24MHZ()先8分频后16倍频void S_MCGInit(void){/* the MCG is default set to FEI mode, it should be change to FBE mode*//************************************************************************** ***********MCGC2[7:6] BDIV总线频率分频因子–选择由MCGC1寄存器中CLKS位决定的时钟源的分频。

这控制总线频率。

00 编码0 –时钟1分频01 编码1 –时钟2分频(复位后默认)10 编码2 –时钟4分频11 编码3 –时钟8分频[5] RANGE频率范围选择–选择外部振荡器或者外部时钟源的频率范围。

1 选择1MHz到16MHz外部振荡器的频率范围。

(1MHz到40MHz的外部时钟电源)的高频率范围0 选择32kHz到100kHz外部振荡器的频率范围。

(32kHz到1MHz的外部时钟电源)的低频率范围[4] HGO高增益振荡器选择–控制外部振荡器操作模式。

1 配置外部振荡器为高增益运行0 配置外部振荡器为低功耗运行[3] LP低功耗选择–控制在忽略模式中FLL(或者PLL)是否为无效1 FLL(或PLL)在忽略模式(低功耗)中为无效的。

0 FLL(或PLL)在忽略模式中为无效的。

[2] EREFS外部参考时钟选择–为外部参考选择时钟源1 选择振荡器0 选择外部时钟源[1] ERCLKEN外部参考时钟使能–使能外部参考时钟作为MCGERCLK1 MCGERCLK激活0 MCGERCLK 无效[0] EREFSTEN外部参考时钟停止使能MCGC2 0b0011 0110 激发外部时钟(晶振)(没有使能)*************************************************************************** ***********/MCGC2=MCGC2_RANGE_MASK|MCGC2_HGO_MASK|MCGC2_EREFS_MASK|MCGC2_ERCLK EN_MASK;while(!MCGSC_OSCINIT);//MCGSC寄存器中OSCINIT(第1位)为1,表示由EREFS位选择的晶振被初始化。

飞思卡尔8位单片机MC9S08 10 定时接口模块.ppt

飞思卡尔8位单片机MC9S08 10 定时接口模块.ppt
上升沿捕捉 下降沿捕捉 跳变沿捕捉 输出电平翻转 输出高电平 输出低电平 输出电平翻转 输出高电平 输出低电平
10.4 定时器模块的输出比较功能
(3)T1通道1状态和控制寄存器(Timer1 Channel 1 Status and Control Register,T1SC1)
数据位 定义 复位
10.1 计数器/定时器的基本工作原理
10.1.2 MC68HC908GP32 MCU的定时接口的基本 原理的概述
MC68HC08系列的单片机可以提供多个独立的定时器,例如, MC68HC908GP32芯片有两个定时器,分别叫定时器1、定时器2,它们的 工作原理是一致的,下面的说明均以定时器1为例。
(2)输入捕捉的基本含义
输入捕捉功能是用来监测外部的事件和输入信号。当外部事件发 生或信号发生变化时,在指定的输入捕捉引脚上发生一个指定的沿跳 变(可以指定该跳变是上升沿还是下降沿)。定时器捕捉到特定的沿 跳变后,把计数寄存器当前的值锁存到通道寄存器。
10.3 定时器模块的输入捕捉功能
10.3.2 输入捕捉的寄存器
通道寄存器是一个16位的寄存器,分为高字节和低字节,在读取的 时候要分别读取。为了防止两次读取之间该寄存器的内容发生变化而产 生虚假的输入捕捉计数值,系统会在读取高字节时锁存低字节的内容, 这时即使又发生特定的沿跳变,通道寄存器的内容也不会改变。
所以,若要读取整个通道寄存器,必须先读高字节,再读低字节。
1
111
1
1
1
1
D7 :通道标志位,用来标志定时器1通道0发生了输入捕捉。 D6 :通道中断允许位,用来设置是否允许发生输入捕捉中断。 D5~ D4:模式选择位。每一个定时器都可以工作在输入捕捉,输出比较和 PWM输出模式,这两位用来选择这些工作模式。 D3~D2 :跳变沿/ 输出电平选择位。 D1 :溢出翻转控制标志位,定时器通道用做输入 捕捉时,此位无用。 D0 :通道最大占空比设置位 ,定时器通道用作 输入捕捉时,此位无用。

(整理)飞思卡尔8位单片机MC9S08JM60开发板实践教程

(整理)飞思卡尔8位单片机MC9S08JM60开发板实践教程

第一章搭建实验环境系统时钟设置#include "App\Include\App.h"#ifndef _MCG_C#define _MCG_C//oscillator 12MHZ 倍频为24MHZ()先8分频后16倍频void S_MCGInit(void){/* the MCG is default set to FEI mode, it should be change to FBE mode*//************************************************************************** ***********MCGC2[7:6] BDIV总线频率分频因子–选择由MCGC1寄存器中CLKS位决定的时钟源的分频。

这控制总线频率。

00 编码0 –时钟1分频01 编码1 –时钟2分频(复位后默认)10 编码2 –时钟4分频11 编码3 –时钟8分频[5] RANGE频率范围选择–选择外部振荡器或者外部时钟源的频率范围。

1 选择1MHz到16MHz外部振荡器的频率范围。

(1MHz到40MHz的外部时钟电源)的高频率范围0 选择32kHz到100kHz外部振荡器的频率范围。

(32kHz到1MHz的外部时钟电源)的低频率范围[4] HGO高增益振荡器选择–控制外部振荡器操作模式。

1 配置外部振荡器为高增益运行0 配置外部振荡器为低功耗运行[3] LP低功耗选择–控制在忽略模式中FLL(或者PLL)是否为无效1 FLL(或PLL)在忽略模式(低功耗)中为无效的。

0 FLL(或PLL)在忽略模式中为无效的。

[2] EREFS外部参考时钟选择–为外部参考选择时钟源1 选择振荡器0 选择外部时钟源[1] ERCLKEN外部参考时钟使能–使能外部参考时钟作为MCGERCLK1 MCGERCLK激活0 MCGERCLK 无效[0] EREFSTEN外部参考时钟停止使能MCGC2 0b0011 0110 激发外部时钟(晶振)(没有使能)*************************************************************************** ***********/MCGC2=MCGC2_RANGE_MASK|MCGC2_HGO_MASK|MCGC2_EREFS_MASK|MCGC2_ERCLK EN_MASK;while(!MCGSC_OSCINIT);//MCGSC寄存器中OSCINIT(第1位)为1,表示由EREFS位选择的晶振被初始化。

飞思卡尔单片机教程

飞思卡尔单片机教程

注 : A/D模块的时钟频率要在500KHz和2MHz之间, 所以在选择分频因子时一定要注意。
采样时间选择
SMP [1 :0]
采样时间
00
2个 A/D时钟周期
01
4个A/D时钟周期
ATDclock= ( (BusClock) / (PRS+1) ) /2
10
8个A/D时钟周期
11
16个A/D时钟周期
设CCBCA = 000,转换序列从通道
0开始;ATD0DR0,
ATD0DR1,ATD0DR2存放转换结果
设CCBCA = 0 10,转换序列从通道 2开始。 仍然是ATD0DR0,
ATD0DR1,ATD0DR2存放转换结果
S8C 、S4C 、S2C 、S1C:定义转换队列的长度 。默认长度为4。 FIFO: 结果寄存器先进先出模式 。1=FIFO模式 ,转换结果是连续 存放的;0=非FIFO模式 ,转换结果放在对应的寄存器中。 FRZ1、FRZ0:背景调试冻结模式允许 。这两个控制位就决定了,
{ while (ATD1STAT0_SCF ==0) ;
ad_value [0] = ATD1DR0; ad_value [4] = ATD1DR4;//使用 PORTB= (byte) ad_value [4] ;
}}
void ATDInit(void)
{ATD1CTL2=0xC0;//AD模块上电,快速清零,无等待模式,禁止外部触发, 中断禁止 // ADPU AFFC AWAI ETRIGLE --- ETRIGP ETRIGE ASCIE ASCIF
PRS=3
ATD1CTL5=0xA4; //右对齐无符号 ,单通道采样 ,通道0
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(4) 重复的 重复的START信号 信号 • 图10-8所示,一个重复的 一个重复的START信号是不用首先产生 信号是不用首先产生STOP信号终止 - 所 信号是不用首先产生 信号终止 通信的START信号。 信号。 通信的 信号 (5) 仲裁程序 • 如果两个或更多的主器件试图在同一时间控制总线,一个时钟同步程 如果两个或更多的主器件试图在同一时间控制总线, 两个或更多的主器件试图在同一时间控制总线 序确定总线时钟 时钟。 序确定总线时钟。竞争的主器件之间相对优先级由一个数据仲裁进程 确定。丢失的主器件立即切换到从接收模式并停止驱动 的主器件立即切换到从接收模式并停止驱动SDA输出。 输出。 确定。丢失的主器件立即切换到从接收模式并停止驱动 输出 (6) 时钟同步
QG8的IIC特点
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 标准的IIC协议兼容 协议兼容; 与 标准的 协议兼容; 支持多主操作; 支持多主操作; 有64种不同的时钟频率可供选择; 种不同的时钟频率可供选择; 种不同的时钟频率可供选择 Software selectable acknowledge bit; ; 支持中断传输; 支持中断传输; 在总线仲裁中失败方可自动由主切换到从模式; 在总线仲裁中失败方可自动由主切换到从模式; 支持地址匹配中断; 支持地址匹配中断; 信号产生与检测功能; 有S和P信号产生与检测功能; 和 信号产生与检测功能 重新启动” 有“重新启动”(Repeated START)信号产生能力; )信号产生能力; 支持Ack信号的产生与检测; 信号的产生与检测; 支持 信号的产生与检测 具有总线忙检测能力; 具有总线忙检测能力;
• 数据字节没有限制,但每个字节后都必须跟随一个应答位 数据字节没有限制, 应答信号在第9个时钟位上出现, 应答信号在第9个时钟位上出现,主控发送器必须在被控 接收器发送应答信号前,预先释放对SDA线的控制。 SDA线的控制 接收器发送应答信号前,预先释放对SDA线的控制。接收 器在SDA线上输出低电平为应答信号( ),输出高电平为 SDA线上输出低电平为应答信号 器在SDA线上输出低电平为应答信号(A),输出高电平为 非应答信号( 非应答信号(A)。
图9-2 I2C总线的器件连接
I2C总线信号的时序
I2C协议
一个标准的通信由四部分组成: 一个标准的通信由四部分组成:
– – – – START信号 信号 从地址传输 数据传输 STOP信号 信号
(1)START信号 ) 信号 一个START信号定义为 信号定义为SDA的一个下降沿,同时 保持 的一个下降沿, 一个 信号定义为 的一个下降沿 同时SCL保持 为高。由主机产生。 为高。由主机产生。 (2)从地址传输 )
7位呼叫地址,紧接着一个读/写位,读写位告诉从器件数据传 位呼叫地址,紧接着一个读 写位 写位, 位呼叫地址 输的期望方向。 输的期望方向。 1 = 读传输,从发送数据给主。 读传输,从发送数据给主。 0 = 写传输,主发送数据给从。 写传输,主发送数据给从。 正好匹配主器件传输的呼叫地址的从器件通过送回一个应答位 响应。 响应。 从机地址由一个固定的和一个可编程的部分构成。例如, 从机地址由一个固定的和一个可编程的部分构成。例如,某些 器件有4个固定的位( 个可编程的地址位( 器件有4个固定的位(高4位)和3个可编程的地址位(低3位), 那么同一总线上共可以连接8个相同的器件。 那么同一总线上共可以连接8个相同的器件。
QG8
SDA SCL
1、电气特性; 电气特性; 寻址无需片选; 2、寻址无需片选; 3、多主和主从 MT、MR、ST、 4、MT、MR、ST、SR
I2C总线的特点
1、电气特性。各节点需共地,SDA和SCL需分别接上拉电阻。 2、寻址无需片选,主从方式中,从器件的地址包括器件编号地址和引脚地 址,器件编写地址由I2C总线委员会分配,引脚地址决定于引脚外接电平 的高低 3、多主和主从两种工作方式的总线 4、为主控发送器、主控接收器、被控发送器和被控接收器 5、起始和终止信号以及时钟信号都是由主控器提供 6、其总线传输速率为100 kb/s(改进后的规范为400 kb/s),总线驱动能 力为400 pF。QG8的最快速度为clock/20。 7、 I2C总线还具有仲裁功能,当一个以上的主器件同时试图控制总线时,只 允许一个有效,从而保证数据不被破坏 8、当主机发送寻址字节时,总线上所有器件都将该寻址字节中的高7位地址 与自己器件的地址比较,若两者相同,则该器件认为被主机寻址,并根据 读/写位确定是从发送器还是从接收器 9、具有I2C总线接口的单片机可以工作在上述4种工作状态中的任一状态,而 一些带有I2C总线接口的存储器(RAM或E2PROM)模块只能充当被控发送器 或被控接收器 10、在多主方式中,通过硬件和软件的仲裁主控制器取得总线控制权
I2C总线的接口电路结构
1、数据线SDA和时钟线SCL都是双向传输线,平时均处于高 数据线SDA和时钟线SCL都是双向传输线, SDA和时钟线SCL都是双向传输线 电平备用状态,只有当需要关闭I 总线时,SCL线才会箝 电平备用状态,只有当需要关闭I2C总线时,SCL线才会箝 位在低电平。 位在低电平。 2、 SCL线上为高电平时,SDA线上的数据信号才会有效, SCL线上为高电平时 SDA线上的数据信号才会有效 线上为高电平时, 线上的数据信号才会有效, SCL低时 SDA数据无效 因此,只有当SCL线为低电平时, 低时, 数据无效。 SCL线为低电平时 SCL低时,SDA数据无效。因此,只有当SCL线为低电平时, SDA线上的电平状态才允许发生变化 线上的电平状态才允许发生变化。 SDA线上的电平状态才允许发生变化。
内部集成电路IIC原理及应用 第十章 内部集成电路 原理及应用
第1节 IIC概述 节 概述 第2节 IIC管脚及相关寄存器 节 管脚及相关寄存器 第3节 IIC在系统扩展中的应用 节 在系统扩展中的应用
9.1
I2C 概述
• I2C总线是PHILIPS公司推出的串行总线。I2C总 线的应用非常广泛,在很多器件上都配备有I2C 总线接口,使用这些器件时一般都需要通过I2C 总线进行控制。这里简要介绍I2C总线的工作原 理及操作时序。
• 前提:总线时钟4MHz,IIC的时钟为 前提:总线时钟 的时钟为100KHz; , 的时钟为 ;
MULT = 01,对应 mul = 2; 对应 ; ICR = 0; 对应 SCL分频数 分频数=20; SDA保持值 7; 保持值= ; 分频数 保持值 = 总线频率 总线频率(Hz)/ (mul * SCL分频数 分频数) 则波特率 分频数 =4000000/(2*20) =100K; (周期 周期10uS) 周期 总线周期(s) 数据保持时间 = 总线周期 * SDA保持值 保持值 = 1/4000000 * 7 = 1.75uS 如果数据保持时间不够,可以修改ICR的数值 比如设置为7,对应的SCL 的数值, 如果数据保持时间不够,可以修改 的数值,比如设置为 ,对应的 分频数为40, 保持值为10, 修改为1,此时100KHz的波特率不 分频数为 ,SDA保持值为 ,将mul修改为 ,此时 保持值为 修改为 的波特率不 但数据保持时间为2.5uS了。 变,但数据保持时间为 了 配置: 配置: SDA hold time is the delay from the falling edge of the SCL (IIC clo ck) to the changing of SDA (IIC data).
(3)数据传输 • 数节为8位,高位在前,低位在后。每传输一位数据都有 数节为8 高位在前,低位在后。 一个时钟脉冲相对应。 一个时钟脉冲相对应。 • SCL线为低电平时,SDA线上数据就被停止传送。接收器可 SCL线为低电平时,SDA线上数据就被停止传送。 线为低电平时 线上数据就被停止传送 SCL线输出低电平而箝住SCL(SCL=0),迫使SDA 线输出低电平而箝住SCL ),迫使SDA线处于 向SCL线输出低电平而箝住SCL(SCL=0),迫使SDA线处于 等待状态,直到接收器准备好接收新的数据/地址字节时, 等待状态,直到接收器准备好接收新的数据/地址字节时, 再释放时钟线SCL SCL)=1), SDA线上数据传输得以 SCL( ),使 再释放时钟线SCL(SCL)=1),使SDA线上数据传输得以 继续进行。 继续进行。
IIC Control Register (IICC)
7-IICEN 6-IICIE 5-MST 4-TX
Iic模块的允许控制位,“1”时允许,此时对应的管脚不再是普通的 管脚 模块的允许控制位, 模块的允许控制位 ”时允许,此时对应的管脚不再是普通的I/O管脚 了。 IIC中断允许是否打开,“1”时打开,一般都要使用中断进行数据的传输。 中断允许是否打开, 中断允许是否打开 ”时打开,一般都要使用中断进行数据的传输。 主模式选择位,当从“0”到“1”改变时,会产生 信号,且器件改为主模式; 信号, 主模式选择位,当从“ ” ”改变时,会产生S信号 且器件改为主模式; 当从“ ”切换到“ ” 会产生P信号 且器件改为了从模式。 信号, 当从“1”切换到“0”时,会产生 信号,且器件改为了从模式。 数据传送的方向控制位, 数据传送的方向控制位,“1”表示发送,“0”表示接收;该位需要根据数 ”表示发送, ”表示接收; 据传输的模式分别设置。主模式下,寻址期间该位为“1”,对于从模式来说, 据传输的模式分别设置。主模式下,寻址期间该位为“ ” 对于从模式来说, 该位需要根据状态寄存器IICS中的 中的SRW位来决定。 位来决定。 该位需要根据状态寄存器 中的 位来决定 该位决定收到数据后是否发送ACK信号,无论是主还是从模式。 信号,无论是主还是从模式。 该位决定收到数据后是否发送 信号 “0”接收到一字节数据后发送应答信号,“1”未发送应答信号。 ”接收到一字节数据后发送应答信号, ”未发送应答信号。 Repeat START,在主模式下,对该位写“1”会产生“重新启动” 信号。 ,在主模式下,对该位写“ ”会产生“重新启动” 信号。
相关文档
最新文档