i2c_client * client, unsigned char REG) {unsigned char Buf; i2c_master_send (client, reg, 1); // send Register address i2c_master_recv (client, Buf, 1); // The value of the receiving register return Buf ;}
2. ResetRecently, the interface is often deadlocked because of the I2C bus of the platform. It is found that both SDA and SCL are pulled low by the logic analyzer, so the reset mechanism is added to the i2c
During Android development and transplantation, you sometimes need to read and write a device, but the system may not provide the corresponding services. We need to develop our own hardware access service to control devices. The following example is the process of reading and writing the most simple I2C device EEPROM, I2C driver writing there are two ways, one is
), Gpio_free (Gpio_pv4), after calling Gpio_free, The Gpio has been released, it is not the state you set up.
5. Files created under device will generate the SYS directory under the corresponding Sys/class directory, for example,/sys/class/i2c-dev/i2c-3/device/3-0030 corresponding to a device with a 0x30 address of I2C under number 3rd
6. At the time of Probe
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
1. Get the source code of I2C tools
Reference: http://lm-sensors.org/wiki/I2CTools
$ Wget http://dl.lm-sensors.org/i2c-tools/releases/i2c-tools-3.1.0.tar.bz2
2. Compile the source code
$ Tar-jxvf i2c-tools-3.1.0.tar.bz2
$ I2c-tools-3.1.0 CD
$ Cc = arm-None-Linux-gnueabi-GCC
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
4 bus driver
4.1 Overview
The I2C bus driver is a software implementation of the I2C Adapter. It provides the ability to complete data communication between the I2C adapter and the slave device, such as the start, stop, response signal, and master_xfer implementation functions.
The I2C bus driver is described by i2c_ad
(client, AMP;BUF, 1); Value of Receive Register
return buf;
}
2, Reset interface
Recently because the platform of the I2C bus often deadlock, with the logic Analyzer detection found that usually SDA and SCL are pulled down, so in I2c-core added the reset mechanism, the overall idea is as follows:
(1) In the structure of i2c.driver and i2c.adapter add reset interface, that is, each
the adapter number, used to identify the adapter used by the device */array_size (mini2440_i2c_devs ));......}
The i2c_register_board_info function registers I2C from the hardware feature information of the device to the global linked list _ i2c_board_list. when calling the i2c_add_adapter function, it traverses _ i2c_board_list to obtain the information of the device to construct I.
I2c_client Construction
We call the i2c_register_board_info funct
I2C transmits data between devices connected to the bus using only two wires (SDA and SCL. each device is identified by a unique address (whether it is a microprocessor, LCD driver, memory, or keyboard interface) and can be used as a sender or receiver based on the functions of the device. the LCD driver may be a receiver, while the memory can send and receive data. in addition to transmitters and receivers
with me, starting with a test without any knowledge, and then engaged in technology, and then became him 10 years later. I think I should be lucky to him. I just started technology after graduation, and now I am getting started, and I have been recognized by my colleagues and leaders. So I firmly believe that I don't need 10 years to achieve anything better than him. People are forced out. Only a firm belief will prompt us to grow and we will not be on the road to success. If you want or don't
table supported by the driver. During the match operation, check whether the table name is the same as the device name. If the table name is the same, the match is successful. This is why a driver can match multiple devices at the same time. If the driver is matched by the name in platform_driver --> driver, the driver and the device can only be one-to-one.
Static struct platform_device_id s3c24xx_driver_ids [] ={
Let's take a look at the probe code
According to their own understanding, the http://lxr.linux.no/linux+v2.6.34/Documentation/i2c/instantiating-devices is translated into the document about enumerating and establishing i2c_client. Have objections or questions please refer to the original, after all, the core of the document is the true essence.
Method 1: Use the bus number to declare the device. defines the device's information in the initi
EmbeddedLinux Bare Metal Development (13)--i²c communication a,IIC Protocol 1. Introduction ofIIC bus i2c (Inter - integrated circuit) bus is a philips The company developed a two-wire serial bus for connecting microcontrollers and peripherals. i2c Bus is a serial data bus, only two signal lines, one is two-way cable sda and the other one is the clock line scl
line "and" relationship.
2, the pin in the output signal at the same time also the pin on the level of detection, detection and just output consistent, for "clock synchronization" and "bus arbitration" to provide a hardware base.
3. Main equipment and from equipment
All peripheral devices in the system have a 7-bit "from the device specific address code", of which the high 4-bit device type, developed by the manufacturer, the low 3-bit for the device
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 devi
When debugging an I2C touch screen driver, its I2C address is 0X01, finally found in \ linux-3.0 \ drivers \ i2c \ i2c-core.c has detected I2C address available is the following function:/* And this is a strict address validity check, used when probing. if a * device uses a
About I2C, this is also the previously tangled part. Note.
(For details, refer to: source; Phodal'sBlog)
The I2C (Inter-Integrated Circuit) bus is a two-line serial bus developed by PHILIPS to connect the microcontroller and its peripheral devices. It is a bus standard widely used in the field of microelectronics communication control. > The
Port Environment (Bold font in redIs the modified content,Blue bold ChineseFor special attention)
1. host environment: centos 5.5 and 1 GB memory in vmare.
2. Integrated Development Environment: Elipse ide
3. compiling environment: Arm-Linux-GCC v4.4.3 and arm-None-Linux-gnueabi-GCC v4.5.1.
4. Development Board: mini2440, 2 m nor flash, 128 m nand Flash.
5, U-boot version: u-boot-2009.08
6, Linux: linux-2.6.32.2
7. References:
Complete embedded Linux application development manual, edited by Wei
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.