tag:blogger.com,1999:blog-6737713102444501259.post1014488408835084849..comments2023-11-02T21:59:18.942-07:00Comments on KO7M - Ham Radio Blog: PSK vs. FSK/MSKJeff ko7mhttp://www.blogger.com/profile/17258789919264407403noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-6737713102444501259.post-43755468139152598252017-10-15T21:22:11.960-07:002017-10-15T21:22:11.960-07:00Hello Pedro,
So far I have not attempted to imple...Hello Pedro,<br /><br />So far I have not attempted to implement this using any DDS hardware that I have available to me. You basically have to be able to set a small frequency shift of 7.8125 Hz above and below your carrier frequency within the bit time of 32 ms. This seems highly likely except with very slow I2C or SPI clocks on the control channel of the DDS. It should be simple enough to code it up. The tricky part is that to generate your bit clock of 32 ms you will likely be wanting to use a timer interrupt. The timer interrupt handler must effectively cause the shift in the DDS frequency. The problem here is that the communications with the DDS is likely to itself use interrupts for the I2C or SPI communications which are prevented by the fact that you are already in an interrupt handler and so interrupts are disabled. This would likely be the difficult part of this notion of generating PSK. You might also want to check out my articles on generating PSK31 audio on the Arduino which is in a multi-part series of articles where I basically implement a software DDS. If I get time to pursue this further, I will of course share that work.<br /><br />One possible way to implement this would be to have the timer ISR handler just set a flag that code in the main loop is waiting on to indicate the I2C communications should commence. As long as that communicaiton and the rest of the main loop are shorter than the timer period, in theory it should work.<br /><br />One further thing that you should keep in mind is that these frequency shifts must be able to be made by the DDS without turning off the DDS output and in a phase continuous fashion. Otherwise there will be unacceptable splatter of the keyed signal. Good luck and let me know how you get on if you attempt to implement this.Jeff ko7mhttps://www.blogger.com/profile/17258789919264407403noreply@blogger.comtag:blogger.com,1999:blog-6737713102444501259.post-20304622637081432242017-09-19T12:37:13.641-07:002017-09-19T12:37:13.641-07:00Hello, I wonder if you hack any evolution of this ...Hello, I wonder if you hack any evolution of this work. Looks very interesting to me as I'm working into building a recharged Pixie with the addition of an AD9850 DDS plus an Arduino Nano board. I was considering to fit into the code beacon capabilities for WSPR, PSK31, RTTY, QRSS and so on. As it's difficult to create the amplitude modulation needed for the PSK31 scheme your approach might be a good substitute. Cheers. Pedro LU7DID.Pedro Collahttps://www.blogger.com/profile/10803470051497515522noreply@blogger.com