Hello!
I'm working with the i.MX7 Dual, on the reference sabre board, running buildroot linux based on the fslc 4.1.15 2.0.0 GA release.
What are the correct pad settings for the ECSPI pads? Right now I have 0x2 in the pad control registers, which translates to the following:
* 100K PD
* Pull Disabled
* Hysteresis Disabled
* Fast Slew Rate
* Drive Strength X2
This seems to yield some really sloppy looking waveforms, with everything rounded off. It may be a problem on my board, or the connection to the (external) SPI slave, but I wanted to check what the expected settings should be.
Hi Jonah
please check imx7d-sdb.dts
linux-2.6-imx.git - Freescale i.MX Linux Tree
sect.8.2.7.243 SW_PAD_CTL_PAD_ECSPI1_MOSI SW PAD Control
Register (IOMUXC_SW_PAD_CTL_PAD_ECSPI1_MOSI) i.MX7D Reference Manual
http://cache.nxp.com/files/32bit/doc/ref_manual/IMX7DRM.pdf
Drive strength depends on spi bus load and should be adjusted based on timig requirements
for slave and master devices, use also sect.4.11.1.1 ECSPI Master mode timing i.MX7D Datasheet
http://cache.nxp.com/files/32bit/doc/data_sheet/IMX7DCEC.pdf
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Igor,
Thanks for the reply. I will adjust the drive strength based on the bus load and timing requirements, as you say. Can you confirm that the other pad settings should be as I have given them above?
Jonah
Hi Jonah
could you clarify what do you mean by :
"other pad settings should be as I have given them above?"
if i.MX and attached peripheral timings measured with oscilloscope
are good, there is nothing to do.
If not with max. drive strength, then you should use additional buffers or
decrease signals loading.
~igor
Hello Igor,
Sorry for the delay - I did not see that you had replied. I was concerned about the settings for Pullup/pulldown, hysteresis, and slew rate, which I would normally only consider when dealing with a GPIO. Does configuring the IOMUX to assign those pins to the SPI module mean that it will ignore pin settings other than drive strength? Empirically, that seems to be the case, but I would appreciate the confirmation.
Thanks!
Hello Jonah
configuring IOMUX to assign those pins to the SPI module will retain all pad settings (drive strength e.t.c.)
Best regards
igor
To follow up, I changed the drive strength to X6 and now the waveform looks a little better. Still not great. I'm clocking ECSPI3 at 32 MHz.