|
|
I2C Bus Interface - Master/Slave with APB interfaceThe I2C is a two-wire, bi-directional serial bus that provides a simple and efficient method of data transmission over a short distance between many devices. The DI2CMS-APB core provides an interface between parallel APB bus and an I2C bus. It can work as a master or slave transmitter/receiver depending on working mode determined by microprocessor. The DI2CMS-APB core incorporates all features required by the latest I2C specification including clock synchronization, arbitration, multi-master systems and High-speed transmission mode. The DI2CMS-APB supports all the transmission speed modes. Built-in timer allows operation from a wide range of the clk frequencies. The DI2CMS-APB is a technology independent VHDL or VERILOG design that can be implemented in a variety of process technologies and can be fully customized accordingly to customer needs. The DI2CMS-APB is delivered with fully automated testbench and complete set of tests allowing easy package validation at each stage of SoC design flow. The I2C-bus supports any IC fabrication process (NMOS, CMOS, bipolar). Two wires, serial data (SDA) and serial clock (SCL), carry information between the devices connected to the bus. Each devices is recognised by a unique address – whether it is a microcontroller, LCD driver, memory or keyboard interface – and can operate as either a transmitter or receiver, depending on the function of the device. Obviously an LCD driver is only a receiver, whereas a memory can both receive and transmit data. In addition to transmitters and receivers, devices can also be considered as masters or slaves when performing data transfers (see Figure below).
A master is the device which initiates a data transfer on the bus and generates the SCL clock signals. A slave is the device addressed by a master. The I2C-bus is a multi-master bus. This means that more than one device capable of controlling the bus can be connected to it. As masters are usually microcontrollers or microprocessors. For more information about the I2C Bus protocol please see....
pclk presetnint
![]() sdaisdao
![]() sclisclo
![]() sclhs
![]() pwdata (7:0) pwrite penable psel paddr (2:0)prdata (7:0)
![]()
sdai
![]() sdao
![]()
scli
![]() sclo
![]() sclhs
![]()
pwdata (7:0) prdata (7:0) pwrite penable psel paddr (2:0)
pclk
![]() presetn
![]() intData UnitIt controls SDA line, performs data and address shifts during the data transmission and reception. Input data spikes are also filtered.Control LogicControl Logic manages execution of all commands sent via interface. Synchronizes internal data flow. Includes Control Register used for performing all types of I2C Bus transmissions, and Status Register indicates state of the I2C Bus and the DI2CMS core.Clock UnitPerforms clock synchronization, clock generation in master mode, and clock stretching in slave mode.TimerTimer allows operation from a wide range of the input frequencies. It is programmed by an user before transmission and can be reprogrammed to change the SCL frequency.APB InterfaceAPB Interface performs the interface functions between DI2CMS internal blocks and APB bus. Allows easy connection of the core to existing APB systems.Each core has been tested in variety of FPGA and ASIC technologies. Its implementation's results are summarized below.
The presented above table gives a survey about the DI2CMS-APB area and performance in ASIC devices (all features are included).
|
Home
Site map
Contact Us




pclk
pwdata (7:0)
pwdata (7:0)
