Go Down

Topic: [SOLVED] question on PPM signal (Read 877 times) previous topic - next topic

amine2

Sep 23, 2015, 10:19 pm Last Edit: Sep 24, 2015, 11:12 am by amine2
so , i did work with the 50Hz PWM signal usually used with arduino , servo motors , ESCs , and stuff like that .
since it's 50Hz , The interval time is 20ms and the timing for data is at the start is 1ms for 0 and 2ms for 255 .

what about PPM though ? what i currently know is that it's a bunch of PWM signals in series in the same 20ms time for 50Hz ...

i have a system that demands PPM data . what are the specifications beside the frequency ?
if it's an 8 chanel PPM signal what are the correct timings ? .

thank you .
it's all about the melons .

Grumpy_Mike

Quote
i did work with the 50Hz PWM signal usually used with arduino , servo motors , ESCs , and stuff like that .
Did you?

Why did you not use the servo library?

Quote
what are the specifications beside the frequency
Pulse width.

Quote
if it's an 8 chanel PPM signal what are the correct timings ?
Normal servo timings center position 1.5 mS in a 20mS frame rate.
The servo library produces PPM and with the write microseconds method you can have any pulse width you want.



amine2

hey Mike .

i did work with PWM without using the lib . and i also did work with it using the Servo lib .
this code is in assembly , so i cannot use a lib .

i know the specifications of PWM , i am working with a PPM signal now .
for example , what is the timing needed between pulses within the 20ms interval ? and does that change ?
or is it all standard and i should not worry ?

it's all about the melons .

Grumpy_Mike

Quote
this code is in assembly , so i cannot use a lib .
What does that mean, of course you can use a library and call it from assembler, is this some sort of assignment?

Quote
needed between pulses within the 20ms interval ? and does that change ?
Not at all sure you have got PPM if you are asking that question. A PPM signal is a pulse, the width of that pulse determines the modulation information you are trying to pass to the other circuit, that pulse must repeat every 20mS. That is the leading edge of consecutive pulses must be separated by 20mS.

amine2

Mike ,for 8channel PPM for example you have 8 pulses during the 20ms period
as far as i understend
it's all about the melons .

TomGeorge

Hi,

http://blog.oscarliang.net/pwm-ppm-difference-conversion/

This explains the difference, even an example of converting one to the other using arduino.

What did you, that is if you did,  google?

Tom.... :)
Everything runs on smoke, let the smoke out, it stops running....

amine2

hey TOM , i actually did get to that in google , and did read some of it to .
i came here to make sure ,and to know about the stability of timings . thank you though TOM
it's all about the melons .

Paul__B

You need to start providing information if you want help.

Code, schematics, link to previous discussion etc.

amine2

You need to start providing information if you want help.

Code, schematics, link to previous discussion etc.

hey Paul , the arduino needs to communicate with that :

http://www.hobbyking.com/hobbyking/store/__17205__FrSky_DHT_8ch_DIY_Telemetry_Compatible_Transmitter_Module.html
it's all about the melons .

Grumpy_Mike

Mike ,for 8channel PPM for example you have 8 pulses during the 20ms period
as far as i understend
So what difference does that make? Each PPM channel has its own wire. Or are you talking about something else.

Grumpy_Mike

hey Paul , the arduino needs to communicate with that :

http://www.hobbyking.com/hobbyking/store/__17205__FrSky_DHT_8ch_DIY_Telemetry_Compatible_Transmitter_Module.html
So now you tell us!
You need to find out what modulation method that transmitter uses.

amine2

#11
Sep 24, 2015, 10:20 am Last Edit: Sep 24, 2015, 10:20 am by amine2
that transmitter accepts PPM input . one signal wire for 8channels . (the top signal)
you have one PPM signal , and multipe PWM channels



it's all about the melons .

Grumpy_Mike

#12
Sep 24, 2015, 10:40 am Last Edit: Sep 24, 2015, 10:40 am by Grumpy_Mike
So I assume you want to produce that with an Arduino, it would have been good to state this in the original question instead of going round the houses.

Now if it were me I would enlist a bit of hardware help in the form of a monostable set up to have a 0.5mS output. Then I would hammer it with an ISR driven from one of the counters. In each ISR the monostable is triggered and then the time for the next channel is put into the counter set to count down.

In that way it is all driven in the background and all you have to do is to alter the numbers in the delay list.

amine2

it's all about the melons .

Paul__B

So, it is a stock-standard radio control protocol for use with a 4017 decoder.

Now if it were me I would enlist a bit of hardware help in the form of a monostable set up to have a 0.5mS output.
Mind you it is just as easy to let the ISR handle the 0.5 ms pulses as well unless you are really stretched for - well, time, in the code!

Go Up