I2C Data register gives a 0 value

⚠️
Hi there.. thanks for coming to the forums. Exciting news! we’re now in the process of moving to our new forum platform that will offer better functionality and is contained within the main Dialog website. All posts and accounts have been migrated. We’re now accepting traffic on the new forum only - please POST any new threads at https://www.dialog-semiconductor.com/support . We’ll be fixing bugs / optimising the searching and tagging over the coming days.
3 posts / 0 new
Last post
DanielAcosta11
Offline
Last seen: 1 year 5 months ago
Joined: 2021-01-22 21:15
I2C Data register gives a 0 value

Hello:

After I got TIMER1 to work by turning on the power domain, I am wondering why this does not work on I2C_DATA_CMD_REG, which is outputting 0's. Here is the example code I used.

All the best,

Daniel

Keywords: 
Device: 
PM_Dialog
Offline
Last seen: 5 months 2 weeks ago
Staff
Joined: 2018-02-08 11:03
Hi Daniel,

Hi Daniel,

Thanks for your follow-up question. I saw that the Timer1 code is commented out, so could you please clarify what you are trying to do with the I2C?

Is there any specific reason why you are not using the I2C APIs that provided by the SDK? We strongly recommend using the SDK functions for interacting with the DA14531 peripherals.

Please also check the I2C example of the SDK.

SDK location : 6.0.14.1114\projects\target_apps\peripheral_examples\i2c\i2c_eeprom\Keil_5

http://lpccs-docs.dialog-semiconductor.com/UM-B-119_DA14585-DA14531_SW_Platform_Reference/Peripheral%20Example%20Applications/Peripheral%20Example%20Applications.html#i2c-eeprom-example

Thanks, PM_Dialog

Akeem
Offline
Last seen: 1 year 5 months ago
Joined: 2021-02-27 04:07
This is a straightforward

This is a straightforward error that is issued when you have attempted to access an imp I²C bus that has not yet been configured. Check your code and, if necessary, call i2c.configure() with a supported speed constant passed as a parameter.

The imp signals its intention to begin an I²C transaction by establishing the standard I²C start condition: it attempts to pull the SDA line low (so the waveform has a falling edge) while the SCL line remains high. If the imp is unable to pull SDA low, this error will be issued.

This error may arise if another I²C master is operating on the same bus and has taken control of it. If the imp is the only master on the bus, this error may result from poorly chosen pull-up resistors. I²C ports are open drain so can only pull the SDA and SCL lines low; pull-up resistors are required to drive the lines high when they are released by bus devices.

After the imp has signalled start and is ready to write data to it, it sends the 7-bit address of the I²C peripheral it wants to communicate with, followed by a single bit indicating whether the transaction is a write (the imp pulls SDA low) or a read (the imp leaves SDA high). These eight bits should be acknowledged by a single-bit ACK signal from the peripheral at the transmitted address; it pulls SDA low. If the acknowledgement doesn’t occur during the ninth clock pulse, then the imp will issue this error.

Prepaid Gift Balance