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.

TMDSIDK437X: Creating my pinmux_data.c file

Part Number: TMDSIDK437X
Other Parts Discussed in Thread: SYSCONFIG, AM4379

Hello.

I'm trying to figure out how to create my own pin setup configuration. For this, I use NIMU_ICSS_BasicExample_idkAM437x_wSoCLib_armExampleproject. I have loaded the project into target and checked ping to target, all work. 

In the PDK I take file idkevm_config.pinmux and load in TI System Configuration Tools. File location:
c:\ti\ti-processor-sdk-rtos-am437x-evm-06.03.00.106\pdk_am437x_1_0_17\packages\ti\starterware\tools\pinmux_config\am43xx\

File upload successful. In this file, I do not change anything, only load the generated files to disk and replace the original files with them from PDK. After I execute the command gmake clean and after gmake board=idkAM437x from this path: c:\ti\ti-processor-sdk-rtos-am437x-evm-06.03.00.106\pdk_am437x_1_0_17\packages\ti\board\

This way I get a new board library file. Next, I rebuild the project and load it into the target. The target is not pinging whiter. If I return the original file am43xx_idkevm_pinmux_data.c and rebuild the board library, then the device is pinged.

I also noticed that the file pinmux_data.c generated by the tool TI System Configuration Tools differs in size and content from the original from the PDK.

Is there an idkevm_config.pinmux file that reflects the actual configuration of the pins? If not, help me create it, I need a working example to create my own configuration for my board.

Regards, Dmitry.

  • Hi Dmitry,

    The pinmux files generated by the System Configuration tool are generic and need to be further modified for a specific board, such as AM437x IDK, AM437x GP EVM, etc. Please refer to  the attached documentation, section 3.1.3.7 - Creating Custom Board Library for AM335x and AM437x. This documentation is an updated version of the online documentation of Processor SDK Board Support. The online version will soon be updated. For now, please use the attachment. 

    Section 3.1.3.7 has detailed information with AM335x GP EVM as an example. It applies to AM437x IDK as well.

    7607.Processor SDK RTOS Documentation 3.1. Board Support.pdf

    Please give it a try and I'd be happy to further help you.

    Regards,

    Jianzhong

  • Hi, Jianzhong.

    The document provided to you is very important and useful. Closes a lot of questions. But as it seems to me, it does not answer my question. I'll try to rephrase it.

    Does the idkevm_config.pinmux file reflect the correct configuration of the chip pins in which the NIMU_ICSS_BasicExample_idkAM437x_wSoCLib_armExampleproject  will work correctly?

    Regards, Dmitry.

  • Hi Dmitry,

    You're right, the pinmux config file pdk_am437x_1_0_17\packages\ti\starterware\tools\pinmux_config\am43xx\idkevm_config.pinmux doesn't seem to match the pinmux data source code pdk_am437x_1_0_17\packages\ti\starterware\board\am43xx\am43xx_idkevm_pinmux_data.c.

    PRUSS is not included in idkevm_config.pinmux, so project NIMU_ICSS_BasicExample_idkAM437x_wSoCLib_armExampleproject won't work if using this pinmux config.

    Regards,

    Jianzhong

  • Hi, Jianzhong.

    Maybe you can tell me what I can take as an example for the correct setting PRUSS and work correct project NIMU_ICSS_BasicExample_idkAM437x_wSoCLib_armExampleproject? I would be very grateful if you can share the correct source configuration file idkevm_config.pinmux. This is my first experience with such a setup, so it's hard for me to decide how to do it right.

    Regards, Dmitry.

    P.S.

    ------------------------------------------------

    I added to the existing config file the settings as I think it should be. But it still doesn't work. File attached.

    idkevm_config.rar

  • Hi Dmitry,

    Unfortunately I don't have the pinmux config file corresponding to source code am43xx_idkevm_pinmux_data.c in the PDK. 

    I looked at the config file you uploaded. Even though you added MII_PRUSS1, the pins were configured differently from what's in am43xx_idkevm_pinmux_data.c of the PDK. You'll need to configure each pin properly to either Pull Up/Down or No Pull. You can compare the am43xx_pinmux_data.c generated by SysConfig tool against am43xx_idkevm_pinmux_data.c of the PDK to find out how each pin should be configured.

    Regards,

    Jianzhong

  • Hi, Jianzhong.

    I was able to customize the file. You were right, I took a close look at the pin configuration. Eliminated the difference. But it turned out some nuances that prevented correct initialization. For example, in my project I didn’t need to activate the ADC ports and some other modules. It turns out that if you do not perform this initialization, then when you call Board_pinmuxConfig from the idkAM437x_pinmux.c file (c:\ti\ti-processor-sdk-rtos-am437x-evm-06.03.00.106\pdk_am437x_1_0_17\packages\ti\board\src\idkAM437x\), the PRU_ICSS ports will not be initialized, since the previous ADC setting will return an error and all the code below will be ignored. In this case, ret = Board_init (cfg); will return a successful result. I didn't know about it. I solved this problem. But it still did not give the desired result.

    It turned out that one more important setting still needs to be done. It is necessary to initialize the GPIO-4-20 pin. It is necessary to initialize the GPIO-4-20 pin. With this pin, the chip AM4379 resets the PHY chip. In this regard, I have a question, if I want to change the circuit and transfer the reset control to another pin, where in the program will I need to change the code that will use another pin of the chip AM4379?

    If anyone is interested, I attach the configuration project file with which the NIMU_ICSS_BasicExample_idkAM437x_wSoCLib_armExampleproject  works for me.

    Regards, Dmitry.

    idkevm_config_my_edition.rar

  • Hi Dmitry,

    Glad that your program is working and thanks for sharing your solution.

    With this pin, the chip AM4379 resets the PHY chip. In this regard, I have a question, if I want to change the circuit and transfer the reset control to another pin, where in the program will I need to change the code that will use another pin of the chip AM4379?

    Please refer to this thread. If you still have questions, can you please open a new thread?

    Thanks and best regards,

    Jianzhong