1. Communication Interface
The data sent or received by I2C is encapsulated by the packet struct i2c_msg.
Struct i2c_msg {_ 2010addr; // slave address _ 2010flags; // flag # define i2c_m_ten 0x0010 // ten address flag # define i2c_m_rd 0x0001 // receives the data flag _ Len; // Data Length _ u8 * Buf; // Data Pointer };
ADDR indicates the slave address, flags indicates the communication, 0 indicates the sent data, and i2c_m_rd indicates the received d
ack and nack of I2C signal
We usually in debugging I2C may rarely pay attention to the nack signal, only know if the master send data, MSB first, LSB after sending a byte (8 bit), then Slave will reply to an ACK signal, but sometimes I2C Slave may send a nack signal, let's take a look at the nack signal.
1, from the spec under a paragraph:
2. Translation:
E
In fact, I have never used a 10-bit address or a universal broadcast address. the general broadcast address should be used for communications between multiple MCU using I2C. although it is useless, it is still translated and may be used in the future:
10bit address: the number of addresses that can be extended by 10bit addressing. devices with 7bit and 10bit addresses can connect to the same I2C bus, and bo
The I2C driver test has a problem. for details, refer to Linux general technology-Linux programming and kernel information. Why ~~~~~~~~~
My board is TQ2440. The I2C test is OK during streaking.
After running the system and testing I2C, the following prompt appears:
S3c2440-i2c s3c2440-
The RTC module of hi3515 seems to have a bug, which is not recommended in the Document. Therefore, only one ds1339 can be expanded to serve as a real-time clock. However, the Linux source code provided by hith has not been changed for the drivers of I2C and ds1339, I changed it in make menuconfig. The/dev directory does not respond. It can only be used in the bus_for_each_dev function. I found that the ds1339 driver is mounted to the
I2C communication interview (1) In the current SoC system, many controllers are gradually integrated into the MCU. Only some simple peripherals communicate with the MCU, using the I2C protocol is the choice of many peripherals and MCU communication protocols. Generally, TP, batteryic sensor, and other devices in embedded devices use I2C communication protocols. T
Before learning I2C Drive, think about it should be a profound understanding of the I2C agreement. Personally feel that the best way to understand the I2C protocol is to practice, and the best practice is to use GPIO to simulate the I2C protocol test, intuitive and profound.First look at the
1. Overview
I2C is a two-wire interface that I2C only two bidirectional lines, one serial Data line (SDA), and the other serial Clock (SCL).
SCL: The data is entered into each EEPROM device by the ascent, and the output data is dropped along the drive EEPROM device. (Edge Trigger)
SDA: Two-way door, with any number of other OD and OC gate into "line and" relationship.
2. Output level
The SDA and SCL PIN ci
I2C devices in the system can be found in the/sys/bus/I2C/devices directory, as follows:
View plaincopy to clipboardprint?# Ls0-00340-00300-00110-0058# Ls0-00340-00300-00110-0058
These devices exist in the system.
How did these devices come from?
In your machine configuration, you will execute the "i2c_register_board_info" function, which will register an i2c_board_info struct into the system,
The i2c_board
Differences:
SPI: high-speed synchronous serial port. 3 ~ 4-line interface, independent and synchronous sending and receiving
UART: Universal asynchronous serial port. Bidirectional communication based on the standard baud rate is slow
I2C: A three-line serial transmission mode. The communication protocol and usage can be found on the Internet.
Bidirectional data transmission with three linesSerial peripheral interfaceUART: Universal asynchronous tra
1. Power-on sequence, omitted directly
2. waitclock sends two bytes of 0x00 to the I2C bus. The specific method is to write a byte 0x0 to the address 0.
3. Run the "0xb8 00 00 0x0a" command to directly return the command and data.
The rule of at88 is to send commands before reading and writing data each time. Therefore, reading and writing data must contain commands.
The Data Writing operation is very simple. The first byte of the command is use
Bh1750fvi is a digital ambient optical sensor IC produced by Rohm semiconductor in Japan. Its main features include:
I2C digital interface, supporting a maximum rate of 400 kHz
Illuminance)
Measurement Range: 1 ~ 65535 Lux, minimum resolution
Power down
Shielding illumination variation interference caused by 50/60Hz Mains Frequency
Two I2C addresses are supported and selected through the ADDR pin.
S
I2C is a serial data communication protocol invented by Philips. It only uses two signal lines: serialclock (SCL) and serialdata (SDA ). I2C is a bus structure, with one master, one or more slave. Each slave device is differentiated by a 7-bit address, followed by a read/write bit, indicating read (= 1) or write (= 0), so sometimes we can also see eight-bit device addresses. At this time, each device has tw
The following is a detailed analysis of how to write the first part: the I2C driver of the master chip is divided into two steps: Write the bus driver: select a master chip, for example: (self-compiled chip) the I2C support for this chip (bus driver support) is not found in Driver/I2C/busses/i2c-s3c2410.c )... (Unlucky
Design of I2C-based embedded multi-point touch screen driver
Abstract: With Samsung's 7958 processor, the driver Management System of Embedded Linux is used to implement the design of multi-point touch screen Driver Based on I2C bus protocol, such as cypress and snaptics tm1444. Practice has proved that the qtopia Platform Based on Linux core and the andriod embedded operating system run smoothly, with a h
Although Linux has its own I2C module, some peripherals need to use I2C to set registers. The I2C module in Linux is not so flexible, the following describes how to use an existing bus driver to write a device driver to implement I2C communication.
The main measure of I2C c
5 customer-driven
5.1 Overview
The I2C client driver is the implementation of I2C slave device. A specific I2C client driver consists of two parts: the i2c_driver, which is used to connect the device to the I2C bus; the other part is the driver of the device.
The I2C client
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.