Correct pad settings for i.MX7 SPI master mode?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Correct pad settings for i.MX7 SPI master mode?

1,512 Views
skrap
Contributor IV

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.

Labels (1)
0 Kudos
6 Replies

821 Views
igorpadykov
NXP Employee
NXP Employee

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!
-----------------------------------------------------------------------------------------------------------------------

821 Views
skrap
Contributor IV

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

0 Kudos

821 Views
igorpadykov
NXP Employee
NXP Employee

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

0 Kudos

821 Views
skrap
Contributor IV

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!

0 Kudos

821 Views
igorpadykov
NXP Employee
NXP Employee

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

0 Kudos

821 Views
skrap
Contributor IV

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.

0 Kudos