Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Explanation of pad control functions in a Freescale processor?

Reading the MCIMX50 Application Processor Reference Manuals on page 1368 (Section 33.3) there is a list of the different possible control functions of the processors pads.

The list is:

  • SRE (1 bit slew rate control).
  • DSE (2 bits drive strength control).
  • ODE (1 bit open drain control).
  • HYS (1 bit hysteresis control).
  • PULL_KEEP_CTL (4 bits pull up/down and keeper controls)
  • PUS (2 bits pull up/down configuration value)
  • PUE (1 bit pull/keep select)
  • PKE (1 bit enable/disable pull up, pull down or keeper capability)
  • DDR_MODE_SEL (1 bit ddr_mode control)
  • DDR_INPUT (1 bit ddr_input control)

Can someone explain what each one of these are, preferably in an educative manner with links to additional information?

Thanks in advance.

like image 453
Bjarke Freund-Hansen Avatar asked Jan 09 '12 10:01

Bjarke Freund-Hansen


2 Answers

SRE (1 bit slew rate control) - How fast the pin state changes from 0 to 1, since rapidly changing states takes more power & emits RF spikes, slowing it down if you can helps EMC. We run most of our GPIO pins at low slew rate apart from SPI & I2C which need to be fast.

DSE (2 bits drive strength control). - How much current the IO pin will source/sink, again a power-saving / EMC thing as it's generally bad practice to hang loads directly from micro pins.

ODE (1 bit open drain control). - Whether the pin pulls down to 0V for a low output or goes "open drain" (disconnected/floating), this is useful for some things like I2C where parts take it in turns to hold lines low or high.

HYS (1 bit hysteresis control). - Look up Hysteresis on wikipedia, should tell you all you need to know.

Pullups/downs etc. - basically whether the pin has an internal resistor connected to +v or 0v to stop things floating to some random/undesired value, usually used when the pin is an input.

DDR_MODE_SEL (1 bit ddr_mode control) - Probably Data Direction Register, in other words is the pin an input or output

DDR_INPUT (1 bit ddr_input control) - Not sure, the micro reference manual should give you some clue to this and all the others.

Hope this helps!

like image 127
John U Avatar answered Sep 28 '22 17:09

John U


There is more detail on this in app note AN5078 on the Freescale site.

Link: http://cache.freescale.com/files/32bit/doc/app_note/AN5078.pdf

Summarized: The keeper keeps the output level the same even if you turn the driver off. There's an associated internal resistance of ~130kohms, so it won't drive much but it'll keep the pin from floating.

like image 42
David Fenger Avatar answered Sep 28 '22 16:09

David Fenger