USB firmware

My version of Atari 1088XEL has STM32F103C8T6 on board. Source for this chip can be very cheap “STM32blue pill” (STM32duino) module from China. The chip in this module can be fake- the firmware is small and can fit to smaller devices. If there will be plans for more complex firmware (SD card read and write, LCD/OLED info screen), then use the original device.
STM32 blue pill

The firmware is based on STM32CubeMX USB CDC example project, firmware library 1.8.0. Due to some unknown changes in STM32 libraries, firmware is not working with newer versions of libraries.
All libraries used in this project are included in the archive. The generic gcc for ARM devices are used to compile source code. To those who do not want compile files- compiled binaries and hex files are in the archive.

Current version of the Atari 1088XEL USB SIO device:
USB CDC Atari 1088XEL firmware source code and hex file.

Supported hardware handshaking (RI, DSR) (not CTS – it is in the host driver level), also “no handshaking” mode.

If making firmware from source code and it was rebuild with cube, take note that cube breaks one file:
\Middlewares\ST\STM32_USB_Device_Library\Class\CDC\Inc\usbd_cdc.h

It makes:
#define CDC_HS_BINTERVAL 0x10U
#define CDC_FS_BINTERVAL 0x10U
#define CDC_CMD_PACKET_SIZE 8U

It must be:
#define CDC_HS_BINTERVAL 0x1U
#define CDC_FS_BINTERVAL 0x1U
#define CDC_CMD_PACKET_SIZE 10U

It is USB settings for “realtime” hardware hanshaking.

Leave a Reply

Your email address will not be published. Required fields are marked *