In a context of digital electronics, a brief couple of resources bout the I
2C serial bus protocol:
- Intefacing with the Linux kernel
- i2c-tools - I2C Tools for Linux
- libsoc
- Generic kernel interfaces
- ioctls
- Does not depend on i2c-tools
- See also
- Blozis, Steve and Jean-Marc Irazaba. I2C Logic Family Overview . Philips. 2004
- Extensive presentation, even in its "slide format"
- Provides a thorough technical overview about I2C as a serial bus protocol
- Contains some useful "Best practice" advice, e.g. with a reference to the NXP P82B96 Dual bidirectional bus buffer
- Blozis, Steve and Jean-Marc Irazaba. I2C Manual. Philips. 2003
- Provides an overview and comparison onto other serial bus protocols
- UART
- SPI
- CAN
- USB
- IEEE-1394 Firewire
- SMBUS
- A survey of individual connectors for cables in circuits using those protocols is available from Western Digital: WD Interface Guide (HTML) (PDF)
- Thorough explanation of theory and technology represented in the I2C serial bus protocol
- Observe that the I2C serial bus, in bidirectional bus operation, may be operated at one of three individual rates of clock timing -- maximum clock rates:
- 100 kbit/s (Standard-mode / Sm)
- 400 kbit/s (Fast-mode / Fm)
- 1 Mbit/s (Fast-mode Plus / Fm+
- 3.4 Mbit/s (High-speed mode / Hs-mode)
- In unidirectional bus operation, the bus may be operated in Ultra Fast-mode (UFm) at a maximum clock rate of 5 Mbit/s
- A multi-master I2C protocol, effectively, would require a bidirectional mode of I2C bus operation
- Topic: Using I2C functions on contemporary single board computer platforms
- I2C on Raspberry Pi (RPi)
- Magda, Yury. Raspberry Pi Measurement Electronics: hardware and software. Second edition (Kindle). 2014
- uses i2c-tools (see previous items)
- Note that the RPi uses a Broadcom BCM2835 as a microcontroller munit (MCU).
- Lacking further documentation about the I2C interface(s) on the BCM2835 , the lack of availability of the BCM2835 data sheet may effectively serve to limit any I2C development on the RPi
- See also: Discussion in RPi forums
- Alternately: The BCM2835 may be found to publish interfaces for SPI and USB 2, as made avaialble via the RPi board. USB in particular is used on the RPi board.
- I2C on the BeagleBone Black (BBB)
- PRU-ICSS modules on the TI Sitara MCU (ie. TI AM3358)
- See also: BBB - Working with the PRU-ICSS/PRUSSv2, Element 14 Community
- Note: PRU-ICSS may be capable of only Standard-mode (100k) or Fast-mode (400k) I2C. See Technical Reference Manual (AM335x) p. 4484 noting the specification of 100k or 400k
- Block view: Two PRU-ICSS modules in each TI Sitara MCU; One TI Sitara MCU to on each BBB.
- See also:
- System Refertence Manual (SRM) for BeagleBone Black. CircuitCo
- AM3358 Technical Documents. Texas Instruments.
- Data sheet for AM3358
- Pinmux utility
- User Guide (AM335x) 13 pp.
- Note the section about interrupt events, including "INT_STS2_REG.GPIO_R/F_IT"
- Technical Reference Manual (AM335x) 1566 pp.
- Note specifically, sublcause 9 of the manual, Control Module through to subclause 9.2.2.1, Mode selection, concerning the two-bit MUXMODE field and its specifier values
- Note also subclause 4 of the manual, which is dedicated to the PRU-ICSS
- Note, thirdly, subclause 21.3.15 of the manual, How to Program I2C - using the PRU-ICSS function set
- For I2C development with the BBB and other TI Sitara (AM335x) platforms, it may be feasible to use the I2C features of one or both of the PRU-ICSS modules on the AM335x device, rather than reconfiguring the pimux of the primary ARM(R) Cortex A8 MCU via SYSBOOT
- References onto broader theory
- PRU-ICSS. Texas Instruments
- Hardware information (individual microcontrollers' product pages)
- Software information
- Getting Started Guide (PRU-ICSS)
- Recommends software packages for the development environment
- PRU-SWPKG (see subsequent items)
- Programmable Realtime Unit Software Development. Texas Instruments
- A single PRU-ICSS module may provide access to an I2C bus, across the full range of available rates of clock timing in the I2C specification
- Driver support
- Integrating the PRU-ICSS within userspace software : ?
- Patching i2c-tools ? libsoc ?
- Integrating the PRU-ICSS within kernel drivers:
- Module uio_pruss and BBB device tree updates
- See also, previous items (Remoteproc, Rpmsg drivers )
- Sitara Linux SDK
- See also: BeagleBone PRU Notes, Embedded Linux WIki
- Accessing the I2C interfaces (three available?) on the primary TI Sitara MCU module
- See also: BBB SRM
- Processor mode switching, Pinmux configuration
- uBoot
- Microinstructions for processor mode switch?
- See also: BeagleBone I2C2 Enable, Embedded Linux Wiki
- See also: Notes onto RTOS Linux, DSP42.
- Specifically, Timesys LinuxLink provides direct support for LinuxLink RTOS on the BeagleBone Black platform. Links and more are available at the other article
No comments:
Post a Comment