Jump to content
  • 0

Multiple controllable PWM signals


dasbill

Question

Hi,

Im looking for a development board to output 6, simultaneous clock signals as well as some basic signal monitoring and arithmetic.

I anticipate that outputting 6 simultaneous clock signals with accurate control over the duty, phase and frequency of each, will be the most difficult part of what I require. I have previously investigated the Arduino Mega and while it is able to output reasonable clock signals, the accuracy of the duty, phase and frequency of the signals are often both inconsistent and inaccurate due to the way the Arduino is programmed.

In order to try and keep it as simple as possible to program and as cheap as possible ive been considering the CHIPKIT MAX32 as a step up from the Arduino. Can anyone help me with determining if this would be suitable?

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

Hi Dasbill,

I would agree that for the most control over timing-sensitive applications, an FPGA would be the best fit. Unfortunately, FPGAs can be a lot more involved than any microcontroller board you'll come across, and they also tend to be a lot more expensive. I think a MAX32 is definitely a step up from the Arduino, and it would suit your application better. The PIC32 contains 5 timers as well as 5 output compare modules that handle timing pretty well and give you accurate control over duty cycles and frequencies. This being said you might have to figure out another solution for the 6th clock. I haven't explored phase shifting using microcontrollers, but it can be done. It is also clocked at 80MHz rather than 16MHz! Let me know if you have any other questions.

 

Thanks,

Tommy

Link to comment
Share on other sites

Hi dasbill,

While it is a lot more involved, there is an intermediate step between FPGA and microcontrollers. Implementing Microblaze on an FPGA (most likely an Arty board) would let you program the primary piece of code in a similar way to other microcontrollers, but would also allow you to develop your own timer module. I've looked into the provided IP cores in Vivado, and from what I can tell, the AXI timer would do most but not all (as far as I can tell, you can't control relative phase of two different timer modules) of what you want. Since you most likely wouldn't be able to just drag and drop a prewritten timer into the project, the tradeoff is between a steep learning curve and more options later.

Thanks,

Arthur

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...