I was pointed to this post from a discussion of long boot times: Wake up time from sleep/deep sleep
You mention in the post that the boot time can be improved by changing the I2C speed from 400 khz to 1MHz, and this would cut down the time a lot.
1. How do you make this change? Is this a matter of changing a value in a CGS file?
For SDK 2.2.1 I see there is a speed setting in the BCM920736 platform directory, but not in the _TAG directory, which is the one I am using. Note that I have a custom board based on the 20736S -- which platform directory should I be using?
2. What is the maximum speed allowed for the EEPROM in the 20736S?
Thanks for your help!
Solved! Go to Solution.
Thanks.. I will look at that thread.
But, I would imagine that can't be used to change the speed used during boot itself?
I could only call that function after I was already running my app.
So I think I got it to work by adding
ENTRY "I2C Speed"
"Speed" = "1000 KHz"
to both the 'mandatory.cgs' and the platform cgs files.
now it is blazing fast.. hope it's not too fast? Can the 20736S handle 1MHz?
It seems to work though.
I think what may have been the issue is that in the transition from 2.1 to 2.2, the entry got dropped from the platform CGS file, and it fell back on the default speed of 100 khz which is a lot slower.
So i think it's addressed, but i wonder if I could get confirmation that 20736S should be OK with 1Mhz speed?
According to WICED™ Smart Hardware Interfaces, the I2C interface on the part supports both low-speed and fast-mode slave devices, up to a maximum SCL speed of 4000 kbps (if the slave is capable of clock cycle stretching, the maximum SCL speed is limited to 2400 kbps).
The user here seemed to run into issues when trying to run the I2C bus at faster speeds (caused another device on the bus to lock up): i2c clock frequency
OK, the question then is whether the integrated eeprom in the module is OK with this speed.
i don't have any other devices on the i2c bus.