This purpose of this blog was to identify the maximum baud rate of several Windows 10 serial port terminal programs when used with an FTDI USB to TTL adaptor which had a specified rate of 3Mbaud.
Addendum: PCTerm 3.7 added to test results for testing 3Mbaud.
Test Setup
Using the UART SCB component with an external 48MHz clock resulted in the required 3Mbaud data rate.
The properties of the SCB UART displayed the 3Mbaud UART data rate.
Summary
PCTerm, RealTerm and TeraTerm are noteworthy Windows based serial terminal applications which would serve hobbyists and professionals alike. Personally, i am habitual in installing software such as RealTerm and TeraTerm on computers involved in software or hardware development. Further to the recent addendum testing PCTerm, this application may replace TeraTerm in some instances.
It should be noted that each of the terminal applications mentioned in this blog were tested for the specific purpose of receiving with a high baud rate. When choosing a suitable serial terminal application, each specimen of software should be reviewed under its own merit to ensure its suitability for the intended task.
When a more comprehensive look at data is required then a protocol analyser is usually required. These solutions range from all in one devices such as the Analog Discovery 2 by Digilent to dedicated input only products such as the Saleae Logic devices to high end products from Keysight. From experience, even the low cost Digilent Analog Discovery 2 will efficiently record and display the character test performed in this blog!
Addendum: PCTerm 3.7 added to test results for testing 3Mbaud.
Test Setup
A Cypress PSoC development kit CY8CKIT-042 was configured with a UART component to repeatedly send the sequence of capitilised letters A to Z.
The associated transmit output and 0V reference from the development kit were connected to the receive input and 0V on the FTDI USB to TTL adaptor (TTL-232R-RPi).
The USB side of the FTDI adaptor was connected to a Windows 10 laptop for the duration of the software testing. Specifications for the laptop are shown below.
Validation Criteria
PSoC and FDTI Test Setup |
FDTI TTL-232R-RPi Adaptor |
Windows 10 Test System Specifications |
Validation Criteria
There were only two criteria that the software needed to fulfil in order to be accepted as a pass for this test.
1. Display the characters A - Z on the terminal software in either ASCII or HEX and
2. Terminal software should still be useable - meaning not crash, lockup or become unresponsive for the duration of the test
Test Software
Listed below are the ten Windows terminal applications that were tested.
1. Advanced Serial Port Monitor
2. CoolTerm
3. Hype!Terminal
4. Muterm2
5. Putty
6. RealTerm
7. Serial Port Terminal
8. TeraTerm
9. Termite
10. XShell5
11. PC Term 3.7
Test Results
It should be noted that this test was performed under the conditions detailed below.
1. The various Windows terminal applications were used for receiving characters only,
2. Some of the various Windows terminal applications were used in their trial installation mode or the latest Beta of the application,
3. Some Windows terminal applications did have faster baud rates which were not tested,
4. Only standard baud rates such as 115200, 230400, 460800, 921600 and higher were used while determining the maximum receive baud rate of the Windows terminal applications for this specific hardware setup.
PCTerm was added to this blog, post publishing and it was proven to be the fastest in data rate for displaying ASCII text. RealTerm was the fastest in data rate for displaying data in Hex.
Other notable mentions; Putty, Hype!Term and Advanced Serial Port Monitor.
1. Display the characters A - Z on the terminal software in either ASCII or HEX and
2. Terminal software should still be useable - meaning not crash, lockup or become unresponsive for the duration of the test
Test Software
Listed below are the ten Windows terminal applications that were tested.
1. Advanced Serial Port Monitor
2. CoolTerm
3. Hype!Terminal
4. Muterm2
5. Putty
6. RealTerm
7. Serial Port Terminal
8. TeraTerm
9. Termite
10. XShell5
11. PC Term 3.7
Test Results
It should be noted that this test was performed under the conditions detailed below.
1. The various Windows terminal applications were used for receiving characters only,
2. Some of the various Windows terminal applications were used in their trial installation mode or the latest Beta of the application,
3. Some Windows terminal applications did have faster baud rates which were not tested,
4. Only standard baud rates such as 115200, 230400, 460800, 921600 and higher were used while determining the maximum receive baud rate of the Windows terminal applications for this specific hardware setup.
Windows Terminal Software Max Data Rate Test Results |
Other notable mentions; Putty, Hype!Term and Advanced Serial Port Monitor.
Test Notes
During testing TeraTerm performed without any issues receiving data at 921600 baud.
Similarly with RealTerm the receive window configured to display in ASCII no issues were noted.
During testing TeraTerm performed without any issues receiving data at 921600 baud.
TeraTerm Receiving Data at 921600 |
RealTerm Receiving Data at 921600 - ASCII Displayed |
Changing RealTerm to display in HEX at 921600 resulted in slow performance and issues relating to the onscreen refresh. Reducing the baud rate to 460800 resolved the display issues. Similarly adding a 1us delay between characters at 921600 resolved the onscreen refresh.
RealTerm Receiving Data at 921600 - HEX Displayed |
PCTerm 3.7 performed at 3Mbaud without any issues to display ASCII.
Test Code
Basic test code with an option to add inter-character delays.PCTerm Receiving Data at 3Mbaud - ASCII Displayed |
Test Code
/* ========================================
*
* Example Terminal Speed Test PSoC4
*
* Revision: 1.00
* Date: 10/02/2018
*
* 10/02/2018 1.00 Test release
*
* Released as GPL
*
* ======================================== */
#include <project.h>
#include <stdio.h>
#include <stdbool.h>
int main()
{
uint8 count_i; /* Define for loop counter var */
uint16 char_delay = 0; /* Define intercharacter character delay in ms*/
CyGlobalIntEnable; /* Enable global interrupts. */
UART_Start();
while (SW1_Read() == true); /* Wait for button press */
UART_UartPutString("Start");
for(;;)
{
count_i = 65u;
while (count_i <= 90u) {
UART_UartPutChar(count_i);
if (char_delay != 0u) {
CyDelayUs(char_delay);
}
count_i++;
}
}
}
/* [] END OF FILE */
PSoC Creator Changes for PCTerm
The default HFClock 'HFClk' for the PSoC Creator UART is 24MHz. As this clock rate results in only 1.5Mbaud, the HFClock was increased to 48MHz.PSoC Creator HFClk Increase to 48MHz |
PSoC Creator Top Design SCB UART with 24MHz External Clock |
PSoC Creator SCB UART at 3Mbaud |
Summary
PCTerm, RealTerm and TeraTerm are noteworthy Windows based serial terminal applications which would serve hobbyists and professionals alike. Personally, i am habitual in installing software such as RealTerm and TeraTerm on computers involved in software or hardware development. Further to the recent addendum testing PCTerm, this application may replace TeraTerm in some instances.
It should be noted that each of the terminal applications mentioned in this blog were tested for the specific purpose of receiving with a high baud rate. When choosing a suitable serial terminal application, each specimen of software should be reviewed under its own merit to ensure its suitability for the intended task.
When a more comprehensive look at data is required then a protocol analyser is usually required. These solutions range from all in one devices such as the Analog Discovery 2 by Digilent to dedicated input only products such as the Saleae Logic devices to high end products from Keysight. From experience, even the low cost Digilent Analog Discovery 2 will efficiently record and display the character test performed in this blog!
Thanks for your post. Very Helpful.
ReplyDeleteDo you know how Tera Term and/or RealTerm behave at higher speeds?. For instance 2.5M?
Thanks,
R.U
Raul
Thanks for the feedback.
ReplyDeleteHave not tested above 921.6k as there are limitations, possibly with Windows applications or the USB drivers.
Certainly under Windows Device Manager the soft limit is listed as 921.6k. It should be noted however that using Windows API 'baud_user' any rate should be possible - https://msdn.microsoft.com/en-us/library/aa363189(v=vs.85).aspx
The TeraTerm wesbite lists a macro for changing the serial port speed 'setbaud', this tops out at 921.6k - https://ttssh2.osdn.jp/manual/en/macro/command/setbaud.html
RealTerm does list a range a baud rates on the site, https://realterm.sourceforge.io/#possible_baud_rates, however there is a comment listed from Microsoft which states "For all other cases, as long as the requested baud rate is within 1 percent of the nearest baud rate that can be found with an integer divisor, the baud rate request will succeed" - so it would appear the baud you require may be possible with RealTerm.
All the best
Thanks. I appreciate that. Very useful information
ReplyDeleteIf I want to stream, view and log data at higher than 921600 baud, to a PC from a microcontroller. It is a stream of formatted ASCI data at high sample frequency.
ReplyDeleteI am using TeraTerm and the highest it can go is 912600. This is just about enough for now.
This FTDI converter says it operates at up to 3000000 baud, but then nowhere does it say how to capture this data.
Do I have to research these protocol analyser devices you mention at the end of this blog post?
Hi Marshmellow
DeleteThe Windows app, PC Term may be one option to try before purchasing dedicated hardware.
The baud rates shown in PC Term under the 'Connection' menu, 'Quick Baud' menu item are listed to 3,000,000 baud. During testing with a PSoC, the data was robust but not verified with a checksum.
With regards to TeraTerm there is a 'Log' option in the File menu or the manual method of select all, copy and paste from the terminal window.
All the best
Thanks for this info, you save me and many people a lot of time testing each thing....
ReplyDelete