This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3517 PINMUX CONFIG DUMP QUESTIONS

I am using LogicPD EVM3517 and I found issues in MCSPI1 and MCSPI2 with WINCE600_TI_BSP_01_02_00_02.  I created a DLL subproject in the BSP platform builder solution to open SPI1, SPI2 and just write to the bus.  I scope the CLK lines and they are flat lines.  I looked at the pinmux configuration. As far as I can see, the defaults are:

    PAD_ENTRY(MCSPI1_CLK          ,RELEASED_PAD_DEFAULT_CONFIG)     \
    PAD_ENTRY(MCSPI2_CLK          ,RELEASED_PAD_DEFAULT_CONFIG)     \

where:


#define RELEASED_PAD_DEFAULT_CONFIG     (INPUT_ENABLED | PULL_RESISTOR_DISABLED | MUXMODE(SAFE_MODE))

I think this is my problem because the clock should be output lines.

Before I make the code change I would like to dump the pinmux configuration for all SPI1 and SPI2 lines.  If my understand is correct, I don't see an easy way to dump the default/configured pinmux configuration.  Looks like I have to right and application to call DeviceIoControl() and the driver code to pass the pinmux data up to the C++ DLL and then C# application.  Is this right, because BSPGetDevicePadInfo()from bsp_padcfg.c of ceddk can only access from the driver side?


My second question is should the BSP configure the pinmux correctly when the devices (SPI1, SPI2, etc.) are selected?

Thanks,

Dennis 

  • Hi, Dennis,

    I think you are looking at ALL_ALLOWED_PADS, this is the initial value for the Pinmux configuration.

    During SPI driver initialization, RequestDevicePads() is called to configure the SPI signal PADS according to the following table defined in bsp_padcfg.h

    #define MCSPI1_PADS \
        PAD_ENTRY(MCSPI1_CS0, INPUT_DISABLED | PULL_RESISTOR_DISABLED | MUXMODE(0)) \
        PAD_ENTRY(MCSPI1_SOMI,INPUT_DISABLED | PULL_RESISTOR_DISABLED | MUXMODE(0)) \
        PAD_ENTRY(MCSPI1_SIMO,INPUT_DISABLED | PULL_RESISTOR_DISABLED | MUXMODE(0)) \
        PAD_ENTRY(MCSPI1_CLK, INPUT_DISABLED | PULL_RESISTOR_DISABLED | MUXMODE(0))

    In this file only SPI1 is configured, if you would like to use SPI2, you can add similar table as above. However the SPI2 pins maybe used as GPIO lines for LCD on logic PD board.Check LcdInitGpio() in lcd_support.c

    The easiest way to dump the pinmux configuration is to use "do ini2c <physical address>" command from a telnet window.

    FYI: In the default OSdesign, only SPI1 is enabled.

    Thanks,

    Tao

  • Hi,

    Thanks for the inputs and I will use do.exe. I verified that my BSP solution generated do.exe.  However, the NK.BIN does appeared to include do.exe after I booted WinCE.  Should do.exe included in the NK.BIN and I missed something in the catalog that caused this or I have to add do.exe after WinCE booted up?

    Thanks a lot,

    Dennis

  • Hi Tao,

    I manually added do.exe to \Windows and executed do.exe.  However, there is no trace/output from the telnet command line.  Is there something else I have to enable?

    Thanks a lot for your helps,

    Dennis

  • In the default OS design, "TI shell extensions" is always enabled. If you use your only OSDesign, it can be enabled in "Catalog Items View":

    Third Party -> BSP -> AM35x_BSP:ARMV7 -> Kernel features -> IT shell extensions

    The trace will appear in Serial port log. And command output  should appear in telnet window.

    " do ?" will give you all supported commands.

    \windows> do ?

      in8    address [size] -> read 8-bit registers
      in16   address [size] -> read 16-bit registers
      in32   address [size] -> read 32-bit registers
      out8   address value  -> write 8-bit register
      out16  address value  -> write 16-bit register
      out32  address value  -> write 32-bit register
      ini2c  [1,2,3] address subaddress [size] -> read I2C registers
      outi2c [1,2,3] address subaddress value  -> write I2C register
      cpuidle -> display amount of time spent in OEMIdle
      dump [prcm | sdrc | gpmc | dss | contextrestore | efuse | prcmstate] -> output values in register group
      tscal -> calibrate touchscreen
      rotate [0,90,180,270] -> rotates screen to next or given angle
      device [[enable | disable] peripheral] | [status]] | [source peripheral clockId]
      observe [signal] [enable | disable]
      setcontrast [level] -> changes the constrast level (0 to 6)
      opm [mode | ?] -> changes the operating mode (0 to 6)
      smartreflex [enable | disable] -> enables disables smartreflex monitoring
      reboot -> software reset of device
      display [on|off] -> controls display parameters
      tvout [on|off|settings|aspect|scale|offset] -> controls TV out parameters
      dvi [on|off] -> controls DVI
      powerdomain [core/mpu/iva2/neon/usbhost/dss/per/camera/sgx] [ D0 - D4 / -r ] -> Set power domain contraint
      halprofile [dvfs | interruptlatency | sdrcstall | wakeupaccuracy] -> profiles latency
      interruptlatency [time] -> applies an interrupt latency constraint
      usbFnSet [serial/rndis/storage [<storage_device_name ex: DSK1:>]] -> Change current USB Function Client. For storage, you can optionally spe
    cify device name (along with the colon at the end)
      otghcdtestmode USB Speed[ 0 - LS,  1 - FS,  2 - HS], Test Mode [ 0 - SE0,  1 - Test_J,  2 - Test_K,  3 - Test_Packet]

      OSversion -> Get OS version information
        Address, size and value are hex numbers.

    \windows>