Hello Everyone,
I am posting this on behalf of Phytec, a vendor for a great PXA270 board, which features a processor module and carrier board. The carrier board allows easy customization of the interface to the PXA270, while allowing the processor module hardware to remain unchanged. To the question at hand...
When using .NET CF with Windows CE serial drivers, if an application requests data rates beyond 115.2 Kbps by assigning the value of the System.IO.Ports.SerialPort.BaudRate member a bit rate beyond 115.2 Kbps (i.e. a value of 1000000 for 1 Mbps), an error value may be returned. This is true even with custom serial drivers unless a particular change is made to the default serial driver code provided with Platform Builder. This change is described below:
Windows CE serial port drivers are required to implement the IOCTL IOCTL_SERIAL_GET_PROPERTIES in the COM_IOControl function. This IOCTL returns a reference to the COMMPROP structure, which contains a member which is of particular importance in answering this question. This member is called dwMaxBaud and it informs the caller of the maximum supported bit rate for the serial driver. When a customized CE serial driver needs to indicate to a calling .NET CF application that data rates beyond 115.2 Kbps are supported, this member must be assigned the actual value of the highest supported data rate in bits per second. So, for example, if the serial driver supports a maximum data rate of 13 Mbps, a value of 13000000 must be assigned to the COMMPROP.dwMaxBaud member.
For those serial drivers which use the CSerialPDD::SetDefaultConfiguration member function in the MDD layer, this will require that this member function be overridden in the derived class to modify the assignment of the dwMaxBaud member with the desired maximum bit rate. If this is not done, then a custom serial driver will report a maximum bit rate of 115.2 Kbps to .NET CF applications.
Making this change to the serial driver will then allow .NET CF applications to assign the value of the System.IO.Ports.SerialPort.BaudRate member a value up to the value of the dwMaxBaud member. As in our above example, the .NET CF application would then be able to assign the System.IO.Ports.SerialPort.BaudRate member a value of 13000000 to request a data rate of 13 Mbps.
Jim
(on behalf of Josie Adams of Phytec)