I needed I2C-3 peripheral, so I configured it using pinTool v.7 routing to available pins.
The code generated by pinTool shows nothing unusual, the SION bits for both SDA [J12] and SCL [K10] pins are set by pinTool to "0" which per Ref.Manual (page 473) means:
SION: 0 DISABLED — Input Path is determined by functionality
Problem with above is, when testing the I2C, the SoC peripheral does not work.
It does work however, when I manually set this bit in code to "1", which per Ref.Manual means:
SION: 1 ENABLED — Force input path of pad GPIO_AD_B1_06
Even if my understanding of SION bit is incorrect, why pinTool generates the code with SION bit setting that makes I2C-3 inoperable? And why I have to manually make correction, also against RT1064 Ref.Manual ?
This looks like a serious bug. Or am I missing something here?
According to section 10.3.2 (SW Loopback through SION bit) of the RT1064 RM:
"A limited option exists to override the default pad functionality and force the input path
to be active (ipp_ibe==1'b1) regardless of the value driven by the corresponding module.
This can be done by setting the SION (Software Input On) bit in the
IOMUXC_SW_MUX_CTL register (when available) to "1".
• LoopBack - Module x drives the pad and also receives pad value as an input."
So, "the software input on (SION) bit is an option to force an input path to be active regardless of the value
driven by the corresponding module. It is used when the nature direction of a pin depending on selected
alternative function is an output, but it is needed to read the real logic value on a pin. [...]
The SION bit can be used in:
• Loopback: the module of a selected alternative function drives the pad and also receives the pad
value as an input;
• GPIO capture: the module of a selected alternative function drives the pin and the value is captured
by the GPIO."
Since I2C data line is bidirectional in its nature, the SION should be set.
Have a great day,
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
Yuri, thanks for reference which makes it clear.
So how come the pinTool does not adhere to this reference generating flawed code with SION bit cleared, instead of having bit set when user choose I2C interface to be active? This is more of rhetorical question and what I am trying to say is that this should be reported to pinTool creator team to get it sorted with next tool update.