Tool/software: Code Composer Studio
I see two driver I2C and PRUSS-I2C f/w for AM3358.
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Tool/software: Code Composer Studio
I see two driver I2C and PRUSS-I2C f/w for AM3358.
One is driver from ARM side, the other is driver from PRU-ICSS side.
does pdk_am335x_1_0_15 support I2C? does pdk_am335x_1_0_15 support HSI2C? Thanks
StarterWare 02.00.01.01 User Guide said
The HSI2C component is in complaint with the Philips Semiconductors Inter-IC bus (I2C-bus) specification version 2.1. The HSI2C module supports only Fast mode (up to 400 kbps) of operation.HSI2C can be configured to multiple master-transmitters and slave-receivers mode and multiple slave-transmitters and master-receivers mode.HSI2C also could be configured to generate DMA events to the DMA controller for transfer of data. The HSI2C driver library exports a set of APIs to configure and use HSI2C module for data transfers. The APIs are exported in /include/hsi2c.h
Part Number: AM3358
Tool/software: Code Composer Studio
StarterWare 02.00.01.01 User Guide didn't mentionI2C. It said
The HSI2C component is in complaint with the Philips Semiconductors Inter-IC bus (I2C-bus) specification version 2.1. The HSI2C module supports only Fast mode (up to 400 kbps) of operation.HSI2C can be configured to multiple master-transmitters and slave-receivers mode and multiple slave-transmitters and master-receivers mode.HSI2C also could be configured to generate DMA events to the DMA controller for transfer of data. The HSI2C driver library exports a set of APIs to configure and use HSI2C module for data transfers. The APIs are exported in /include/hsi2c.h
Anping,
As Biser indicated, the I2C driver uses the HW I2C module on the chip and provides a driver for application developers to program the interface and design I2C protocol to interact with I2C slave devices using the ARM. The PRU-ICSS I2C is a software/firmware implementation for the I2C interface using PRU GPIO pins that allows users to use this software implementation of the I2C module to allow control of I2C slave from PRU as well as for use cases that require more UARTs that provided on the SOC.
The HW version of the driver or the I2C driver (not PRU firmware version) support HSI2C (speeds from 10kbps/400 kbps and 3.4 Mbps) for PRU I2C Firmware supported spec, the design document indicates that upto 1Mbps has been tested. I would recommend that you look at chapter 2 Feature set of the I2C SW implementation design document located at:
pdk_amxx_x_x_xx\packages\ti\drv\i2c\firmware\icss_i2c\docs\I2C_FW_DESIGN_GUIDE.pdf
Hope this helps.
Regards,
Rahul
PS: Starterware package is obsolete and not meant to be used for new development as it is not under active development outside of boot and board support for the am335x/am437x devices.
Anping,
Yes, pdk_am335x_1_0_15 supports HSI2C mode both using the Hw based peripheral and using ICSS firmware.
Starterware document should not be referred in this context as that is an obsolete package. Processor SDK RTOS I2C document is provided here:
http://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/index_device_drv.html#i2c
Hope this clarifies the response.
Regards,
Rahul
Hi Rahul
What is non-interrupt based blocking modes? Can you give a example? Thanks
I2C_MODE_BLOCKING: By default, driver operates in blocking mode. In blocking mode, a Task’s code execution is blocked until transaction is complete. This ensures only one transaction operates at a given time. Driver supports both interrupt or non-interrupt based blocking modes.