Question

The baudrate is normally set to one of the specified values, like 9600, 56k and so on. Is it possible to select another value, like 123456 Baud? Its an numerical parameter, so why not?

Was it helpful?

Solution

The clock of the communication module is usually derived from the system clock. this system clock can be devided by specific numbers , like 2,4,8.. that's why you can reach only to specific baudrates.

Because you are talking on asynchronous protocol , clock is not transmitted on lines.

all of the above , cause the industry to decide on list of acceptable baudrates

BUT , if your two communication modules support special baudrate like 17800 you can work with it.

OTHER TIPS

Generally a serial adapter is designed to only operate at certain "standard" bit rates -- 50, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, etc. In practice many adapters are implemented partially in software and can run any rate (within the range of their counters), but the (de-facto) standard doesn't require that you can specify such arbitrary rates.

Under Windows you set the baud rate of a serial port using SetCommState which takes a device control block structure as a parameter. The BaudRate element of this structure is used to set the baud rate and can either be a constant value,e.g. CBR_4800, or your own specified value, e.g. 4801. Whether any value works is hardware dependent, i.e. whether or not the UART or SIO in use allows your specific baud rate. It's a while since I've worked with these things, but it is possible the baud rate must be a multiple of an input clock rate provided by some other piece of hardware, such that certain rates may not work. Note that my experience relates to RS232, as opposed to RS485, but I believe the same SDKs are used.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top