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.

Choosing the right LaunchPad for High Speed (80 MHz) Digital output

Other Parts Discussed in Thread: EK-TM4C123GXL, TMS570LC4357

Hello Everyone,

I am looking for the best fit LaunchPad that can be used for generating a few digital patterns, otherwise known as digital vectors. The catch is that the signals, at least a couple of them, are high frequency -- say 20 pulses of 40MHz clock. Here is a better description:

I- a 1 is sent out on a pin

II- after some delay, a 0 is sent on another pin

III- after half a clock of 40MHx (12.5nsec) another pin starts sending out 20 pulses of 40MHz then stays High

iV- after the first pulse of III, pin II sends out a 1

V- at the end of 20 clocks on III, pin I goes to 0

And, the patter repeats after a delay.

Obviousely, we need quite a few timers and the pins have to be able to switch state at high frequency. Normally, this is done with a CPLD or FPGA but if a LaunchPad can handle this, I think I have a better and more flexible solution. I am almost sure this is beyond MSP capabilities but how about Tiva? Or anything else?

Thanks for reading.

Mahmood

  • Hello Mahmood

    I would advise a TMS470 LaunchPad....

    Regards
    Amit
  • Hi Amit,

    Thank you for your reply. Is there a LaunchPad for TMS470 with the tool chain or do I have to make the board etc.?

    If there is one, do you have part number?

    Rgards,

    Mahmood

  • Hello Mahmood,

    I don't think that even the TMS570 line of uC and Launchpads would be able to support a 40MHz digital signal output. You might try looking into the Beaglebone Black development board/ecosystem fo his level of performance. The Sitara class devices have a module called a PRU that can be used for this specific purpose and should be able to support the tasks you want to do. There are many books on the beagle board that are available. The one at this link has a chapter on the PRU but I don't know if others have much content on it.

    https://play.google.com/store/books/details?id=Udu6BQAAQBAJ&source=productsearch&utm_source=HA_Desktop_US&utm_medium=SEM&utm_campaign=PLA&pcampaignid=MKTAD0930BO1&gl=US&gclid=CLm29cCsh84CFSv5Mgod6vAKOA&gclsrc=ds

    Note that the Sitara device on the beagle board comes in many different configurations from lower end to higher end and is a muti-core device. More info on it and the beagle bone boards can be found here: www.ti.com/.../overview.page

  • Hi Chuck,

    Thank you very much for the detailed and informative response. It seems my initial fears are true and unless the MCU is capable and the board is designed for high speed IO, I will be out of luck. I really liked your suggestion about beagle board and chased it.

    Derek Molloy's book very early on in his book , page 6, suggests using Stellaris platform for real-time interfacing, right after mentioning the PRU units in the beagle board. He specifically mentions that beagle board's linux OS does not allow the real-time operation, although I am not sure if it impacts the PRU controlled IOs. I am not sure if LM4F120 has dedicated MCU for IO and I am chasing it to find out the answer.

    Again, thank you for reading my post and suggesting a promising route.

    Regards,

    Mahmood

    UPDATE: EK-LM4F120XL is obsolete and it seems TI has replaced the Stellaris line with Tiva line. TI is suggesting EK-TM4C123GXL instead. Does anyone know if these have PRU built in the MCU for GPIO control?

  • Mahmood Anvar said:
    Does anyone know if these have PRU built in the MCU for GPIO control?

    The PRU is available in the AM335x, AM437x and AM57x series processors. The Tiva series MCUs don't contain a PRU.

    Mahmood Anvar said:
    He specifically mentions that beagle board's linux OS does not allow the real-time operation, although I am not sure if it impacts the PRU controlled IOs.

    The PRU runs its own firmware for controlling IOs in "real time", and there are Linux drivers which allow programs running in Linux to load firmware onto the PRUs and communicate with the PRUs - see PRU-ICSS which has links to the Linux drivers.

    The FAQ What is the maximum speed for toggling PRU GPO pins via PRU software? states with a simple 4 instruction loop, the PRU can generate a 50 MHz pin-toggle rate with a 50% duty cycle. Given you need to generate a 40 MHz pulse train, and the PRU executes instructions at 200 MHz you wouldn't be able to generate a 40 MHz pulse train with 50% duty cycle. Instead the PRU could generate 40 MHz with say a low time of 10ns (2 PRU clocks) and a high time of 15ns (3 PRU clocks). How important is the duty cycle of the pulse train for your implementation?

  • Chuck Davenport said:
    I don't think that even the TMS570 line of uC and Launchpads would be able to support a 40MHz digital signal output.

    The TMS570 series has the Next Generation High-End Timer (N2HET) timing co-processors, and somewhat analogous to the PRU the N2HET "provides sophisticated timing functions for real-time applications".

    The maximum VCLK2 input frequency to the N2HET is 110MHz (on a TMS570LC4357), and while haven't fully checked don't believe that the N2HET would be able to generate a 40 MHz pulse train.

  • Hi Chester,

    Thank you for answering all the difficult questions.

    Chester Gillon said:

    The FAQ What is the maximum speed for toggling PRU GPO pins via PRU software? states with a simple 4 instruction loop, the PRU can generate a 50 MHz pin-toggle rate with a 50% duty cycle. Given you need to generate a 40 MHz pulse train, and the PRU executes instructions at 200 MHz you wouldn't be able to generate a 40 MHz pulse train with 50% duty cycle. Instead the PRU could generate 40 MHz with say a low time of 10ns (2 PRU clocks) and a high time of 15ns (3 PRU clocks). How important is the duty cycle of the pulse train for your implementation?

    I can live with 40% duty cycle and if that proves problematic for my design, I can always throw in a couple gates and flops to fix the issue. The important thing for me is to be able to send out controlled high frequency pulses out of the pins.

    Based on your confirmation, I will go with Chuck's recommendation and start playing with Beaglebone Black board. It seems to offer so much possibilities that I am sure it can be put to use in many projects.


    Regards,

    Mahmood