Shop OBEX P1 Docs P2 Docs Learn Events
Overclock & FullduplexSerial Object — Parallax Forums

Overclock & FullduplexSerial Object

greybeardgreybeard Posts: 65
edited 2012-02-08 21:31 in Propeller 1
I've put together a couple of Propeller Apps that use the serial port exclusively to communicate with a Windows App using the Windows serial API which has specific baud rate values. I am currently useing the Propelller running with a 5 MHz crystal. I'm about to start to experimenting with over-clocking the Propeller and would like to know what, if any, changes that I need to the make to the FullDuplexSerial spin object ( or other spin serial objects) to get make sure things continue working properly. I believe the Propeller baud rate is based upon the sysem clock thus may need a 'tweeking' somewhere to get the correct baud rate. I am currently working reliably with a 115200 baud rate.

I'm not looking to overclock drastically. The postings I have seen suggest that a 6.25 MHz Crystal replacement will yield a 100 MHz Propeller and seems to be reliable. I have a couple of the 6.25 MHz crystals to start experimenting with. I also have a couple of 6.144 Mhz Crystals which would produce a 98.304 Mhz Propeller (an odd frequency to work with but may be managable -- that's why it's called experimenting). If the 100 Mhz propeller functions reliably, the 98.304 Mhz should work well also but may make other timing difficult.

The Windows API apparently supports a baud rate at least twice 115200 baud. I would also like to increase the Propeller ouput baud rate, if possible, and would apperciate any pointers to accoplish that. I don't believe just overclocking the Propelleer will lead to an incrase in the baud rate but may be a necessary first step. Any suggestions or comments??

Comments

  • Duane DegnDuane Degn Posts: 10,588
    edited 2012-02-06 14:26
    A lot, if not most, serial drivers are system clock agnostic (as JonnyMac likes to say).

    As long as you define your clock constants correctly, the serial driver should compute the timing needed at various baud rates for you.

    A lot (most) have this kind of calculation. This is from Parallax Serial Terminal.
    bit_ticks := clkfreq / baudrate
    

    I've noticed the name "bit_ticks" or a similar name is pretty universal for the number of clock cycles per bit of data sent or received. I suppose it would be nice (as in, it would work better), at very fast baud rates, if the clock frequency was divisible by "baudrate".
  • Heater.Heater. Posts: 21,230
    edited 2012-02-06 14:43
    Quite so. I have used 6.5536MHz crystals for something over 104MHz clock and never had to think about tweaking FullDuplexSerial, it just works.
  • Cluso99Cluso99 Posts: 18,069
    edited 2012-02-06 16:32
    I regularly overclock using 6.5MHz xtals giving 104MHz and I also supply 13.5MHz (PLLx8) xtals =108MHz for my RamBlades. But you must design your pcb correctly - there are lots of threads about this so please search for them.
  • greybeardgreybeard Posts: 65
    edited 2012-02-08 21:31
    Thanks all for the help. Save me a bit of anxiety when I start experimenting. BTW. RE the speed up in the serial communications. I downloaded JDCogserial and tested it with the Parallax serial terminal. A simple test indicated I could transmit and recieve at 430800 baud. I tried it wth the Windows API (WIN7 X64 with C#) and could transmitt and receive at 230400 reliably. Any higher baud rate and the Windows API could only receive. Data was transmitted to the the PROP. Would like know wha is differnt in the ParallaxTerminal. Not crtical, just curious. Thanks again
Sign In or Register to comment.