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.

AM2432: System Configuration questions

Part Number: AM2432

Hi team,

Could help my customer's questions on below system configurations?

  1. Customer used to use C2000's F2812 or F28335, when using UART peripherals, receiving data is received by using interrupts, byte by byte, and the efficiency is relatively low. Does AM243X have UART receive timeout interrupt or receive complete interrupt? If yes, can you provide a reference code?

  2. Set up a local timer interrupt, how can the interrupt be synchronized with the ethercat bus SYNC? Can an IO input port latch the timer count value? If so, which peripherals should be used to implement it?

  3. The bus SYNC signal can be synchronized with PWM, SINC and encoder, so can PWM, SINC and encoder be synchronized with the input of a certain IO port? If so, which peripherals should be used to implement it?

  4. A certain project runs in R5-0-0, how to change it to run in R5-0-1? Can you use "cdc_echo_nortos_am243x-lp_r5fss0-0_nortos_" in the SDK to explain how to modify it to run in R5-0-1?

  5. Some sample codes will directly call the source code in the SDK. How to view the corresponding source code in CCS conveniently and quickly?

  6. AM243X supports BISS-C, ENDAT and TAMAGAWA encoders, but is it supported to use the same pins? That is, the fixed pins of the processor are connected to RS485, and the switching of the above three encoder functions can be realized through software settings?
    At present, in our products, the above three encoder interface functions are implemented in the FPGA. When the interface function is switched, there is no need to change the hardware circuit.

  7. When transplanting the CDC example (cdc_echo_nortos) in other SDK examples (such as uart_echo_low_latency_interrupt), the following 2 MPUs must be added, otherwise the program will run away. What is the reason?

  • Hi Sirui,

    Before I try to answer your questions, I have a suggestion. In the future, can you please separate a e2e thread with many questions into several e2e threads each focus on a specific peripheral or topic. This way it is a lot easier for us to assign the e2e thread to the domain expert in charge.

    1. Customer used to use C2000's F2812 or F28335, when using UART peripherals, receiving data is received by using interrupts, byte by byte, and the efficiency is relatively low. Does AM243X have UART receive timeout interrupt or receive complete interrupt? If yes, can you provide a reference code?

      [MW] The AM243x has a callback mode. The user can assign a callback function for read and/or write transactions. They will be called only if the transaction is done. See
      Read Transfer Mode
      Read Transfer Callback
      Write Transfer Mode
      Write Transfer Callback
       in SysCfg.
    2. Set up a local timer interrupt, how can the interrupt be synchronized with the ethercat bus SYNC? Can an IO input port latch the timer count value? If so, which peripherals should be used to implement it?
      [MW] It can be done via the PRU-ICSSG IEP

    3. The bus SYNC signal can be synchronized with PWM, SINC and encoder, so can PWM, SINC and encoder be synchronized with the input of a certain IO port? If so, which peripherals should be used to implement it?

      [MW] See above answer.
    4. A certain project runs in R5-0-0, how to change it to run in R5-0-1? Can you use "cdc_echo_nortos_am243x-lp_r5fss0-0_nortos_" in the SDK to explain how to modify it to run in R5-0-1?
      [MW] in short, there is no difference between the binary code runs on R5F_0_0 or R5F_0_1. You can simply load the OUT file built for R5F_0_0 to R5F_0_1 and run. There will be issues when you try to run different program on R5F_0_0 and R5F_0_1 at the same time. You will get into the resource (peripherals, On-chip memory etc.) conflicts. That is when you will need to allocate the resources among the different cores to avoid resource conflicts. 

    5. Some sample codes will directly call the source code in the SDK. How to view the corresponding source code in CCS conveniently and quickly?

      [MW] You may noticed that all MCU+ SDK libraries are built using makefiles (not CCS projects), but you can still trace down to the source code of driver libraries. When you use CCS debugger, you can use the F5 (step into) a driver library function. The CCS will pop up the dialog box for you to choose the where is the source file for this function. Once you use the CCS dialog box to select the folder for the source file, CCS will open the correct source file for you to do the single step debugging.
    6. AM243X supports BISS-C, ENDAT and TAMAGAWA encoders, but is it supported to use the same pins? That is, the fixed pins of the processor are connected to RS485, and the switching of the above three encoder functions can be realized through software settings?
      At present, in our products, the above three encoder interface functions are implemented in the FPGA. When the interface function is switched, there is no need to change the hardware circuit.
      [MW] Yes and No. The hardware pin mux may not change when you switch the encoder protocol, but the PRU-ICSSG firmware will need to change, because different encoder protocol uses different PRU-ICGGS firmware and the encoder driver is different too.

    7. When transplanting the CDC example (cdc_echo_nortos) in other SDK examples (such as uart_echo_low_latency_interrupt), the following 2 MPUs must be added, otherwise the program will run away. What is the reason?
      [MW] The non-cached region was used for the low level USB driver, because the USB IP has its own DMA engine. I am not sure the 0x60000000 region is needed. It is for the flash address space. I do not think it is needed unless you are doing the USB DFU class.

    Best regards,

    Ming

  • Hi Ming,

    Thanks for the support! Will put the questions seperately later. 

    BR

    Sirui