Monday 12 February 2018

Win 10 Serial Terminal software max baud rate

Summary
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
A Cypress PSoC development kit CY8CKIT-042 was configured with a UART component to repeatedly send the sequence of capitilised letters A to Z. 


PSoC and FDTI Test Setup
PSoC and FDTI Test Setup
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).


FDTI TTL-232R-RPi Adaptor
FDTI TTL-232R-RPi Adaptor
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.


Windows 10 Test System Specifications
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.


Windows Terminal Software Max Data Rate Test Results
Windows Terminal Software Max Data Rate Test Results
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.

Test Notes
During testing TeraTerm performed without any issues receiving data at 921600 baud.


TeraTerm Receiving Data at 921600
TeraTerm Receiving Data at 921600
Similarly with RealTerm the receive window configured to display in ASCII no issues were noted.

RealTerm Receiving Data at 921600 - ASCII Displayed
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
RealTerm Receiving Data at 921600 - HEX Displayed
PCTerm 3.7 performed at 3Mbaud without any issues to display ASCII.


PCTerm Receiving Data at 3Mbaud - ASCII Displayed
PCTerm Receiving Data at 3Mbaud - ASCII Displayed

Test Code
Basic test code with an option to add inter-character delays.

/* ========================================
*
* 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 HFClk Increase to 48MHz
Using the UART SCB component with an external 48MHz clock resulted in the required 3Mbaud data rate.


PSoC Creator Top Design SCB UART with 24MHz External Clock
PSoC Creator Top Design SCB UART with 24MHz External Clock
The properties of the SCB UART displayed the 3Mbaud UART data rate.


PSoC Creator SCB UART at 3Mbaud
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!