HT66F40使用SIM I2C Mode之用法与注意事项
- 格式:pdf
- 大小:281.26 KB
- 文档页数:10
前言 (4)第1章 I2C模块规格说明 (5)1.1 综述 (5)1.2 特性 (5)1.3 模块架构 (7)1.4 配套资料说明 (7)1.5 模块原理图 (8)第2章 Arduino 基础 (9)2.1 Arduino硬件 (9)2.2 Arduino软件 (10)2.3 示例程序:LED控制 (12)第3章实时时钟 (17)3.1 DS1307介绍 (17)3.2 接线图 (17)3.3 DS1307的使用 (18)第4章外部存储 (23)4.1 AT24C32介绍 (23)4.2 接线图 (23)4.3 AT24C32的使用 (23)第5章温度侦测 (28)5.1 LM75介绍 (28)5.2 接线图 (28)5.3 LM75的使用 (29)结语 (33)为什么叫I2C模块?和一元硬币差不多大小的一块PCB上放了三个芯片,分管三个功能:时间计算、温度侦测、数据存储。
这三个芯片都是通过I2C总线通信的。
我们知道,I2C理论上可以级联2的7次方即128个设备,该模块级联了三个典型且通用I2C设备(这里为三个独立芯片),并且预留了级联更多I2C设备的接口,所以叫I2C模块。
为什么做这个I2C模块?在淘宝上搜索“I2C模块”,搜索结果中的I2C模块,一般是用一两个芯片实现对应的一两个功能,有的板上还集成非I2C相关的功能,不是纯粹的I2C模块,配套教程则比较杂乱。
于是我们决定做一个纯粹的、功能多一点的I2C模块,和Arduino配套,配上精心书写的“一份”教程。
我们强调教程的“一份”,是因为这份教程针对I2C的使用做了集中且系统的教学,不用再去搜索其他资料。
教程中使用到的Arduino库经过我们的开发,把相关功能都做好了封装,在代码中直接调用即可,无论是用来学习还是做产品开发,都简单和高效。
为了大家更好的学习,模块实行软硬件开源。
By MAKERTIPS2013年7月于广州大学城第1章 I2C模块规格说明1.1 综述I2C模块集成了三个芯片,分别实现三个功能:1、时间计算:DS13072、温度侦测:LM753、数据存储:AT24C32图1.1 I2C模块功能说明3D图1.2 特性1、使用实时时钟芯片DS1307计算时间2、使用温度传感器芯片LM75侦测温度3、使用EEPROM存储芯片AT24C32 存储数据4、通过精简的I2C总线实现以上功能5、使用CR2032锂电池为时钟芯片供电,可使用2年LM75DS1307AT24C326、设计小巧,PCB尺寸28mm*25mm7、引出LM75的OS脚,可作为温度中断输出8、通过排针J1或J2,可以级联其他I2C设备图1.2 小巧的I2C模块1.3 模块架构I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。
HT46F46E/HT46F47E/HT46F48E/HT46F49E -- Cost-Effective A/D Flash Type 8-Bit MCU with EEPROM概要经济型A/D 单片机是内置EEPROM 的8 位FLASH 型高性能精简指令集MCU,专门为需要A/D 转换的产品而设计,例如传感器信号输入。
所有单片机都集成了多通道模数转换器和1 或者2 通道PWM 输出。
暂停和唤醒功能、振荡类型选择、可编程分频器等功能,使得实际应用时只需要很少的外部器件。
具有A/D 和PWM、低功耗、高性能、灵活的输入/输出口和低成本,使得这款单片机可以广泛应用于带传感器信号处理、马达驱动、工业控制、消费类产品和子系统控制器等。
此系列芯片大部分特性都是通用的,然而,主要不同在于输入/输出引脚数目、RAM 和ROM 的容量、A/D 分辨率、堆栈层数和封装类型。
特点∙工作电压:f SYS=4MHz:2.2V ~5.5Vf SYS=8MHz:3.3V~5.5Vf SYS=12MHz:4.5V~5.5V∙13 到23 个双向输入/输出口∙与输入/输出口共享引脚的外部中断输入∙8 位可编程定时/计数器,具有溢出中断和7 级预分频器∙内置晶体和RC 振荡电路∙看门狗定时器∙具有PFD 功能,可以用来发声∙暂停和唤醒功能可降低功耗∙在V DD=5V ,系统频率为8MHz 时,指令周期为0.5μs∙ 4 或6 层硬件堆栈∙ 4 通道8 位或9 位分辨率的A/D 转换器∙ 1 或2 通道8 位的PWM 输出口,与输入/输出口共享引脚∙位操作指令∙查表指令∙63 条指令∙指令执行时间为1 或2 个指令周期∙低电压复位功能∙100,000次可擦/写闪存程序存储器∙1,000,000次可擦/写EEPROM数据存储器∙闪存程序存储器数据有效期>10年∙EEPROM数据有效期>10年∙ICP (In-Circuit Programming) 接口∙多种封装HT46RU232 -- A/D+UART 型八位单片机概要HT46RU232 是8 位高性能精简指令集单片机,专门为需要A/D 转换产品而设计,例如传感器信号输入。
M O D R O L E L E C T R I C C O ., L T D .IMS -G F 系列使用手册交流伺服驱动器 400V 级1.5KW ~ 55KW产 品 运 转 前 请 认 真 阅 读 说 明 书 , 并 保 存 好 , 以 备 今 后 查 阅 。
VERSION: VS501目录第1章概要1.2 性能指标 (6)第2章变频器的相关说明第3章接线第4章操作器的使用第5章参数一览表第6章参数的说明第7章保护功能及故障显示7.1故障检出 (59)11.2 性能指标 (6)1.1 功能MODROL公司IMS-GF系列通用型驱动器采用智能功率模块IPM模块,具有集驱动、保护、功率交换于一体的优点,大大提高整机的可靠性;采用优化的PWM生成技术,输出谐波小;丰富的保护功能,使驱动器及周边设备的使用寿命更长!■具有V/F曲线控制、无传感矢量控制、电流矢量控制、磁通矢量控制四种电机控制模式,具有低速高转矩、低噪音等优点,适合不同的应用场合■可驱动交流异步电机、交流永磁同步电机■强大的控制功能转矩提升、全领域直流制动、速度搜索、PID控制、输出电压自动调整(AVR)等■接口丰富可切换的共发射极/共集电极端子输入模式标准的通信接口RS-422/485脉冲输入/输出■频率指令的种类●操作器直接设定●操作器UP/DOWN设定●外部端子多段速控制●外部端子UP/DOWN设定●模拟量输入●脉冲输入■特殊功能应用模式●主轴定位●刚性攻丝●PID控制卷绕控制■客户化功能追加具有系统的客户化功能追加体系,轻松实现控制驱动一体化。
22.1铭牌说明在驱动器侧面贴有铭牌,记载了驱动器的型号,规格,编号等,请用户确认与订购的产品是否一样。
■ 铭牌示例三相AC 400V 11KW 铭牌示例:图2.1 铭牌■ 型号说明在铭牌上的驱动器型号(MODEL )一栏里,用数字和字母表示了驱动器的系列号、电压等级、最大适用电机容量以及改版记号。
HT66F27xx美音应用范例文件编号:AN0539SC简介HT66F2730、HT66F2740具有10路HVIO(High Voltage I/O Ports),提供12V驱动能力,本身更提供4(HT66F2730)、8(HT66F2740)通道12位A/D转换器,1个5V LDO输出,提供小家电显示板当作电源,在电路设计上可省掉外部高压驱动零件及LDO,让PCB上的零件更精简,PCB面积可以缩小。
在部分家电产品中,当机器启动或者按下按键时会有一些声音提醒,让使用者知道机器启动或是触发了何种功能,而这些声音提醒采用的是美声音乐,听起来较悦耳动听,而这些美音电路须采用蜂鸣器、电容及电阻所组合而成,且驱动电压为12V,以下就来说明如何使用HT66F2730、HT66F2740 HVIO功能实现美音功能。
功能说明硬件电路说明美音电路使用1个蜂鸣器与2个电阻及1个电容所组成,通过2个HVIO来做控制,PC1输出高电位对电容做充电,而PC0输出低电位使电容放电,藉由两者配合形成有音色及音调的美音效果。
PC0PC1图1输出时序图使用HVIO PC0与PC1做为美声音乐的控制脚,利用高压High 、高压Low 或Floating 信号输出做为控制信号。
其中PC0做为高频端,使用NMOS 输出音频使Buzzer 发声;PC1做为低频端,使用PMOS 输出控制电容的充放电。
1. 电容充电时,PC1输出High 信号,PC0输出Floating 信号。
2. 电容放电时,PC1输出Floating 信号,由电容及二个电阻连接到PC0,当PC0输出Low 信号时进行放电。
PC0在输出低准位时设为高压输出(输出Low),在输出高准位时设为浮空。
因此音频端的电压会随着电容的充放电而改变,在放电时,会发出具有衰减效果的音乐声。
如下图,PC0 & PC1输出控制信号:PC0:音频信号PC1:节拍信号40msHigh Low Floating图2PC0及PC1波形如下图所示:通道1为PC0输出音频,通道2为PC1电容充放电波形。
电动机SIMOCODE Pro 使用教程1.S IMOCODE Pro系统功能概述SIMOCODE Pro是智能的电机管理控制系统,它的中央处理单元是微处理器,所有的控制和保护功能都由微处理器执行,包括连锁功能、运行计算、诊断和统计数据、以及自动控制级与电机回路之间的高性能的通讯(PROFIBUS-DP)等。
SIMOCODE Pro系统分为功能不同的两个设备系列:SIMOCODE Pro C—用于直接和可逆的紧凑型系统,没有扩展功能。
SIMOCODEProV—具有SIMOCODEProC的功能之外还是可以提供众多其它附加功能的可扩展系统,集成的附加控制程序用于星/三角起动器、Dahlander、变极电机、软启动器(每个都包括反向功能)以及阀和定位器。
电流测量模块作为系统的必选模块,可以检测电流。
过流保护、过流报警、电流限制、On/Off返回值检测信号,运行次数和时间的计算等参数都是以电流作为参考值。
与传统的电机控制回路相比,SIMOCODE Pro大大的简化了电机的控制回路,从而减少了接线,相应地减少了故障点。
单独的SIMOCODEPro系统就可以实现控制和监视功能以及信号处理,不需要增加过载继电器,热敏电阻计算电路,电流互感器,模数转换等等,这些功能的实现完全不需要控制电路接线。
起停开关直接接到基本单元的输入,接触器线圈通过基本单元的输出控制,不需要互锁的辅助触点。
5.1保护功能过载保护造成电机热过载的原因通常有电流不平衡、缺相、或机械负荷过载等,SIMOCODE Pro可按照IE60947-4-1对三相交流电机进行保护。
脱扣等级可设置为5至40之间的(5、10、15、20、25、30、35、40)8个不同设置。
SIMOCODEPro可以通过电流测量模块监测电机电流和通过过热保护采集电机温度作为过载的保护机制。
相不平衡保护SIMOCODE Pro可以对相不平衡的程度进行监视并传输到控制系统。
在超过一个可调节值时,可以触发一个可定义和可延迟的响应。
如何使用HT66F40 ETM Timer功能文件编码:HA0244S简介HT66Fx0系列MCU提供了一个新的功能单元TM,即Timer Modules,整合了Timer和PWM的功能,提供包括普通Timer定时、外部计数、可编程Duty/Period PWM输出或单脉冲输出、输入捕捉等丰富的功能。
TM依据功能可分为简易型TM (CTM)、标准型TM (STM) 和增强型TM (ETM)。
本文即以HT66F40为母体,通过具体范例说明ETM如何使用Timer功能。
工作原理ETM的核心是一个既可以向上计数,又可以向下计数的10位的计数器和三个比较器,具体结构如下图示:增强型TM方框图计数器的时钟源可以通过设定T1CK0~T1CK2选择为f SYS/4、f SYS、f H/16、f H/64、f TBC或者为TCK1输入。
三个内部比较器:CCRP、CCRA和CCRB,用于设定比较基准值,CCRP 有3位宽,只对计数器的高3位进行比较,而CCRA和CCRB的位数和计数器一样,可以跟计数器比较所有的位。
当设定好相关的寄存器TM开始运行后计数器即向上或向下计数,系统会将预先写入CCRA和CCRB的值与计数器中的值进行比较。
计数器在计数溢出或者与设定CCRA和CCRB的值相等时,可以自动清除为零并产生一个中断信号,同时系统会根据程序设定产生相应的输出信号。
计数器中TM1DH/TM1DL的值无法改变,但是可以读出,只能通过设定T1ON位由0→1才能清除为零计数器。
T1APOL/T1BPOL可以对TP1A 和TP1B输出极性进行控制,当被设定为1,可以强制对TP1A和TP1B输出极性翻转。
HT66F40输出引脚介绍:引脚功能描述TMPC0 PRM2TP1A CCRA匹配输出引脚或者输入捕捉模式输入引脚,外部脉冲输出引脚,PWM输出引脚T1ACP0 :1 : 使能TP1A功能0 : I/O功能或者其它功能TP1APS :0 : 设定TP1A为PA11 : 设定TP1A为PC7TP1B_0 CCRB匹配输出引脚或者输入捕捉模式输入引脚,外部脉冲输出引脚,PWM输出引脚T1BCP0 :1 : 使能TP1B_0功能0 : I/O功能或者其它功能默认TP1B_0为PC0TP1B_1 CCRB匹配输出引脚或者输入捕捉模式输入引脚,外部脉冲输出引脚,PWM输出引脚T1BCP1 :1 : 使能TP1B_1功能0 : I/O功能或者其它功能默认TP1B_1为PC1TP1B_2 CCRB匹配输出引脚或者输入捕捉模式输入引脚,外部脉冲输出引脚,PWM输出引脚T1BCP2 :1 : 使能TP1B_2功能0 : I/O功能或者其它功能TP1B2PS :0 : 设定TP1B_2为PC51 : 设定TP1B_2为PE4在Timer模式,计数器清除为零有两种方式,由T1CCLR选择,一个是由CCRP匹配清除为零或者计数器溢出清除为零 (CCRP寄存器值为0时)。
HT66F40使用SIM I2C Mode之用法與注意事項 文件編碼:HA0200T簡介HT66F40內建有SIM功能,其中包括了SPI和I2C這兩種功能,本文以HT66F40為母體,介紹使用I2C進行資料傳輸的方法和注意事項。
I2C通信原理I2C是一種用來和傳感器、EEPROM等外圍設備進行通訊的介面。
I2C總線最初是由飛利浦公司開發的兩線串列傳輸介面,用來同步串列傳輸數據。
而現在,這種兩線式的傳輸介面,擁有通信協議簡單,可容納多個外圍設備等優點,已經成為一種非常流行的介面,應用於很多領域中。
I2C串列介面是一種兩線式介面,一條是串列資料線SDA,另外一條是串列時鐘線SCL。
需要注意的是,I2C總線不存在片選線,I2C總線上的每個設備通過唯一的設備地址被識別。
兩個設備通過雙向I2C總線相互通信,一個設備稱為主機,另一個為從機。
主機和從機都可以進行資料的發送和接收,但是,主機具有總線過速控制能力。
對於在從機模式下運行的微控制器來說,I2C總線有兩種資料傳輸方式,從機發送模式和從機接收模式。
對於SIMD。
I2CI2C Block Diagram相關控制説明如下圖所示腳位,要打開I2C功能你必須首先將配置選項的SIM Function選擇為Enable,然後設置好SIMC0和SIMC1這兩個暫存器相應的位元。
下面會對這兩個暫存器詳細的介紹。
HT66F40與I2C功能相關的一共有4個暫存器。
它們是SIMA、SIMD、SIMC0和SIMC1。
SIMA暫存器SIMA暫存器是MCU設置從機的7位元位址所使用的暫存器。
暫存器的1~7位元定義了從機位址,第0位元未被使用。
當主機設備連接到I2C總線,將會發出從機位址,如果能和存儲在SIMA暫存器的某從機位址匹配時,該從機設備將會被選中。
SIMD暫存器SIMD暫存器用來存儲馬上要傳輸或者剛接收到的資料。
它是和SPI共用的,在HT66F40中,SPI與I2C只能二選其一。
在資料寫入I2C之前,資料必須要放入SIMD暫存器才能被得到傳輸。
相應的,在資料從I2C接收到後,也只能從SIMD暫存器中讀出資料。
總之,任何通過I2C進行傳送和接受的資料都必須通過SIMD暫存器。
SIMC0暫存器SIMC0暫存器也是SPI和I2C共用的,它用來打開或者關閉串列總線功能,設置SIM模式。
SIMEN:SIMEN位元決定I2C功能的開和關。
當SIMEN位元被清除為零時,將關閉掉I2C 功能,SDA與SCL總線將會處於浮空狀態,I2C工作電流將變為最小值。
當這一位變為1時,I2C功能將打開。
當然,必須要先在配置選項中打開SIM功能,這一位元才會有效。
SIM0~SIM2:這幾位元設置SIM功能的操作模式,也就是選擇I2C功能或者選擇SPI功能。
當SIM0~SIM2為110時,將選中I2C功能。
SIMC1暫存器SIMC1暫存器是一個I2C專用的暫存器。
RXAK:RXAK是從機設備接收到的應答旗標。
RXAK為0時,表示接收設備接收8個位元的數據後,在第9個SCL時鐘發出的應答信號已被發送設備收到。
當從機設備處於發送模式,主機設備處於接收模式時,從機設備通過檢查RXAK位元來確定主機設備是否要接收下一個字節的數據,RXAK為0,表示主機設備要繼續接收數據,從機設備將發送下一個位元組的數據,RXAK為1,表示主機設備不再接收數據,從機設備將釋放SDA總線,主機設備將發送停止信號,釋放I2C總線。
IAMWU:此位元用來控制I2C位址匹配是否可以喚醒MCU,1為是,0為否。
SRW:SRW是一個從機的讀取/寫入模式位元。
這一位元決定了主機是希望發送或者接收數據。
當主機傳送的地址和從機匹配後,HAAS位元將被設為高準位,設備將會檢查SRW位元來決定是應該進入發送模式或者是接收模式。
如果SRW位元為高準位,主機會請求從I2C 總線上讀取數據,此時從機設備為發送模式。
反之,主機會寫入數據到總線上,從機為接收模式。
TXAK:TXAK是從機設備發送出去的應答旗標。
當從機設備處於接收模式,主機設備處於發送設備時,從機設備接收8個位元的數據後,在第9個SCL時鐘把TXAK位元作為應答信號發送給主機設備。
當TXAK設置為0時,表示從機設備要接收下一個位元組的數據,TXAK設置為1時,表示從機設備不再接收數據。
HTX:HTX是從機的讀取/寫入模式標準位元。
這一位元被設為高為發送模式,設為低為接收模式。
HBB:HBB是I2C總線繁忙旗標。
HBB變為1時,表示從機設備檢測到主機設備發送的開始信號,總線處於繁忙狀態。
HBB變為0時,表示從機檢測到主機發送的停止信號,總線處於空閒狀態。
HAAS:HAAS是一個地址匹配旗標。
這個標準位元由從機設備的位址是否同主機發送的位址相同決定。
如果地址匹配這一位會為高,不匹配則為低。
HCF:HCF是一個數據傳送旗標。
當數據正被傳送時,它將被設置為0。
當傳送完成後,這一位會變為1,同時將產生一個中斷。
I2C總線通信I2C總線上的通信需要四步驟完成,一個開始信號、一個從元件位址發送、一個資料發送和一個最終的停止信號。
當開始信號被寫入I2C總線時,所有的總線上的元件都會接收信號並且被通知總線上會立即有位址資料到達。
資料的前7位元是從元件位址,高位元在前,低位元在後。
如果從元件位址匹配,MCU會將HAAS設置為1,同時產生I2C總線中斷。
進入中斷服務程式後,系統要檢測HAAS位元,以確定I2C總線中斷是來自從機地址匹配,還是來自8位元資料傳送完畢。
HAAS為1時,是地址匹配引起I2C中斷,HAAS為0時,是8個位元的資料傳輸完畢引起的I2C中斷。
在資料傳遞中,需要注意的是,在7位元從機位址被發送後,接下來的一位,即第8位元,是讀取/寫入控制位,該位元的值會反映到SRW。
從元件通過檢測SRW以確定從機是要進入發送模式還是接收模式。
I2C的時序圖如下圖所示:I2C Communication Timing Diagram開始信號開始信號只能由連接I2C總線的主機設備產生,總線上的所有元件必須偵測開始信號,當檢測到後,表明I2C總線處於忙狀態,從機設備會設置HBB位元。
開始信號是指在SCL為高時,SDA發生準位從高到低的變化。
從機地址總線上的所有元件都會偵測由主機發起的開始信號的發送。
發送開始信號後,主機必須發送從機地址以選擇要進行資料傳輸的從機設備。
所有在I2C總線上的從機設備都會接收到這個從機位址(7位元),並與各自內部的從機地址進行比較。
如果地址匹配,該從機會產生一個中斷,並將接下來的一位元資料 (即第8位元) 保存到SRW位元,並發出一個應答信號,即第9位元的低準位信號。
當從元件位址匹配時,還會設置位元狀態旗標 (HAAS)。
由於I2C總線有兩個中斷源,在中斷服務副程式中,通過檢測HAAS位元可以確定I2C總線中斷是來自從機地址匹配,還是來自8個位元資料傳送完畢。
當是地址匹配引起的中斷時,則從機必定是用於設置發送模式或是接收模式,所以必須寫入資料到SIMDR或從SIMDR 虛擬讀取資料以釋放SCL。
SRW位元SIMC1暫存器的SRW位元表示主控制器是要從I2C總線上讀取資料還是要將資料寫到I2C 總線上。
從機設備則通過檢測該位以確定自己是作為發送設備還是接收設備。
SRW為1時,表示主機設備要從I2C總線讀數據,從機設備必須將資料寫到I2C總線,即從機設備做為發送器;SRW為0時,表示主機設備要寫資料到I2C總線,從機設備要從總線讀取資料,即從機設備做為接收器。
應答位元在主控制器發送呼叫地址後,當從機內部地址與其匹配時,會發送一個應答信號。
應答信號會通知主控制器從元件已經接收了呼叫地址。
如果沒有應答信號,主控制器必須發送停止 (STOP) 信號以結束通訊。
當從機的SIMC1暫存器的第6位元 (HAAS) 是高時,表示位址匹配,則從機需檢查SRW,以確定自己是作為發送器還是作為接收器。
如果SRW位元為高,從機設置成發送器,這樣需要將SIMC1暫存器的HTX位元設置為1。
如果SRW位元為低,從機設置成接收器,這樣會將SIMC1暫存器的HTX位元清除為零。
資料位元組在從機發出應答信號後,就會進行資料傳輸,一個資料長度為8位元,高位在前,低位元在後。
接收器在接收到資料後會發出一個應答信號 ("0") 以繼續接收下一個資料。
如果發送器沒有檢測到應答信號,發送器將釋放SDA線,同時,主機將發出STOP信號以釋放I2C 總線。
如果從機設置成發送器,從機必須將資料寫到SIMDR;如果從機設置成接收器,從機必須從SIMDR讀取資料。
接收和發送應答位元當從機作為接收器,想要繼續接收下一個資料時,必須在第9個時鐘發出應答信號 (TXAK)。
當從機作為發送器時,檢測應答信號 (RXAK) 以決定是繼續寫資料到I2C總線,還是改變為接收模式並虛讀SIMDR暫存器以釋放SDA線,同時主機發出停止信號。
S/W流程圖在I2C總線開始傳送資料前,需要先初始化I2C總線,在初始化I2C總線時必須注意以下幾點:∙步驟1向SIMA暫存器寫入從機位址。
∙步驟2將I2C總線控制暫存器SIMC0的SIMEN位元設置為1,以打開I2C總線。
∙步驟3將I2C總線中斷控制暫存器 (INTC2) 的MF2E位元設置為1,以允許I2C總線中斷。
如果不需要中斷,就需要在程式中不斷的檢查HCF位元,用來檢測I2C是否有資料傳輸完成,這種方法不推薦。
具體過程如下圖所示:I2C Bus Initialisation Flow Chart需要注意的是,當I2C總線中斷被關掉時,必須去不斷的檢查HCF位元來確定I2C有無數據傳輸完成。
I2C Bus ISR Flow Chart如上圖所示,這是一個I2C的中斷服務程式的流程圖,當進入中斷服務程式後,會首先檢查HAAS位元。
通過檢測HAAS位元可以確定I2C總線中斷是來自從元件地址匹配,還是來自8位元資料傳送完畢。
如果是位址匹配者,會檢查SRW,以確定主機是希望發送數據還是接受數據。
根據此為設置好從機此時的狀態,還必須寫入資料到SIMD或從SIMD虛擬讀取資料以釋放SCL總線。
如果是8位元資料傳送完畢,先判斷從機此時處於接收或者是發送模式 (HTX),如果從機設備是接收模式,就要立刻從SIMD中讀取數據,如果從機是發送模式,會繼續檢查RXAK位元以決定是否要繼續發送下一個資料。
如果沒檢測到應答信號 (RXAK=1),從機要從SIMD虛擬讀取資料以釋放SDA線,同時主控制器將發出STOP信號以釋放I2C總線。
程式說明本範例是HT66F40作為從機的I2C程式,由主程序以及I2C的中斷服務程式2部分組成,在主程序中,會對MCU進行初始化操作,主要是對I2C的相關暫存器進行初始化操作,要注意的是同為使用PA口的其他功能會對I2C的使用造成影響,在初始化中必須關閉這些功能,這些功能包括CP和AD轉換。