Whenever the I C module requires an interaction, it checks the pending commands. If one or a
After a reset, the state of the I C-bus is unknown. To avoid interrupting transfers on the I C-bus after
a reset of the I C module or the entire MCU, the I C-bus is assumed to be busy when coming out of a
on the I C-bus, the bus must be idle.
time before the I C module detects that the bus is idle can be significant. There are two ways of assuring
that the I C module gets out of the busy state.
? Use the ABORT command in I2Cn_CMD. When the ABORT command is issued, the I C module is
instructed that the bus is idle. The I C module can then initiate master operations.
shows the states the I C module goes through while acting as a master transmitter. Every state where
The interrupt flag START in I2Cn_IF is set when the I C module transmits the START.
+W, i.e. the address of the slave to address + the R/W bit is then required by the I C module. If this
...the world's most energy friendly microcontrollers
set in a pending state, which can be read from the STATUS register. A pending START command can
for instance be identified by PSTART having a high value.
2
combination of these can fulfill an interaction, they are consumed by the module and the transmission
continues without setting the BUSHOLD interrupt flag in I2Cn_IF to get an interaction from software.
The pending status of a command goes low when it is consumed.
When several interactions are possible from a set of pending commands, the interaction with the highest
priority, i.e. the interaction closest to the top of Table 15.3 (p. 152) is applied to the bus.
Pending commands can be cleared by setting the CLEARPC command bit in I2Cn_CMD.
15.3.7.2.1 Automatic ACK Interaction
When receiving addresses and data, an ACK command in I2Cn_CMD is normally required after each
received byte. When AUTOACK is set in I2Cn_CTRL, an ACK is always pending, and the ACK-pending
bit PACK in I2Cn_STATUS is thus always set, even after an ACK has been consumed. This can be used
to reduce the amount of software interaction required during a transfer.
15.3.7.3 Reset State
2 2
2 2
reset, and the BUSY flag in I2Cn_STATUS is thus set. To be able to carry through master operations
2
The bus goes idle when a STOP condition is detected on the bus, but on buses with little activity, the
2
2
2
2
? Use the Bus Idle Timeout. When SCL has been high for a long period of time, it is very likely that the
bus is idle. Set BITO in I2Cn_CTRL to an appropriate timeout period and set GIBITO in I2Cn_CTRL.
If activity has not been detected on the bus within the timeout period, the bus is then automatically
assumed idle, and master operations can be initiated.
Note
If operating in slave mode, the above approach is not necessary.
15.3.7.4 Master Transmitter
To transmit data to a slave, the master must operate as a master transmitter. Table 15.4 (p. 154)
2
an interaction is required has the possible interactions listed, along with the result of the interactions.
The table also shows which interrupt flags are set in the different states. The interrupt flags enclosed
in parenthesis may be set. If the BUSHOLD interrupt in I2Cn_IF is set, the module is waiting for an
interaction, and the bus is frozen. The value of I2Cn_STATE will be equal to the values given in the table
when the BUSHOLD interrupt flag is set, and can be used to determine which interaction is required to
make the transmission continue.
2
A master operation is started by issuing a START command by setting START in I2Cn_CMD. ADDR
2
is not available in the transmit buffer, then the bus is held and the BUSHOLD interrupt flag is set. The
2011-04-12 - d0001_Rev1.10
153
www.energymicro.com
相关PDF资料
EFM32GG-STK3700 KIT STARTER GIANT GECKO
EFM32LG-DK3650 KIT DEV EFM32 LEOPARD GECKO
EK-K7-KC705-CES-G-J KINTEX-7 FPGA KC705 EVAL KIT
EK-S6-SP601-G KIT EVAL SPARTAN 6 SP601
EK-S6-SP605-G KIT EVAL SPARTAN 6 SP605
EK-V6-ML631-G-J VIRTEX-6 HXT FPGA ML631 EVAL KIT
EK-V7-VC707-CES-G VIRTEX-7 VC707 EVAL KIT
EK-Z7-ZC702-CES-G ZYNQ-7000 EPP ZC702 EVAL KIT
相关代理商/技术参数
EFM32GG230F1024 功能描述:ARM微控制器 - MCU 1024KB FL 128KB RAM RoHS:否 制造商:STMicroelectronics 核心:ARM Cortex M4F 处理器系列:STM32F373xx 数据总线宽度:32 bit 最大时钟频率:72 MHz 程序存储器大小:256 KB 数据 RAM 大小:32 KB 片上 ADC:Yes 工作电源电压:1.65 V to 3.6 V, 2 V to 3.6 V, 2.2 V to 3.6 V 工作温度范围:- 40 C to + 85 C 封装 / 箱体:LQFP-48 安装风格:SMD/SMT
EFM32GG230F1024G-E-QFN64R 功能描述:IC MCU 32BIT 1MB FLASH 64QFN 制造商:silicon labs 系列:Giant Gecko 包装:剪切带(CT) 零件状态:在售 核心处理器:ARM? Cortex?-M3 核心尺寸:32-位 速度:48MHz 连接性:I2C,IrDA,智能卡,SPI,UART/USART 外设:欠压检测/复位,DMA,POR,PWM,WDT I/O 数:56 程序存储容量:1MB(1M x 8) 程序存储器类型:闪存 EEPROM 容量:- RAM 容量:128K x 8 电压 - 电源(Vcc/Vdd):1.98 V ~ 3.8 V 数据转换器:A/D 8x12b,D/A 2x12b 振荡器类型:内部 工作温度:-40°C ~ 85°C(TA) 封装/外壳:64-VFQFN 裸露焊盘 供应商器件封装:64-QFN(9x9) 标准包装:1
EFM32GG230F1024-QFN64 制造商:Energy Micro AS 功能描述:GIANT GECKO MCU - Cut TR (SOS) 制造商:Energy Micro 功能描述:GIANT GECKO MCU 制造商:Energy Micro AS 功能描述:IC MCU 32BIT 1MB FLASH 64QFN
EFM32GG230F1024-QFN64T 制造商:Energy Micro AS 功能描述:GIANT GECKO MCU - Trays
EFM32GG230F1024-QFN64-T 制造商:Energy Micro AS 功能描述:IC MCU 32BIT 1MB FLASH 64QFN
EFM32-GG230F1024-SK 制造商:Energy Micro AS 功能描述:GIANT GECKO SAMPLE KIT - Bulk
EFM32GG230F1024-T 制造商:Energy Micro AS 功能描述:IC MCU 32BIT 1MB FLASH 64QFN
EFM32GG230F512 功能描述:ARM微控制器 - MCU 512KB FL 128KB RAM RoHS:否 制造商:STMicroelectronics 核心:ARM Cortex M4F 处理器系列:STM32F373xx 数据总线宽度:32 bit 最大时钟频率:72 MHz 程序存储器大小:256 KB 数据 RAM 大小:32 KB 片上 ADC:Yes 工作电源电压:1.65 V to 3.6 V, 2 V to 3.6 V, 2.2 V to 3.6 V 工作温度范围:- 40 C to + 85 C 封装 / 箱体:LQFP-48 安装风格:SMD/SMT