XiPU - Design of the IO Board

28.09.2023

Description of the IO Board modules. Explanation of what every module does and how it is built. It also contains a list of parts needed to build the IO Board.

1. Modules

The IO Board is made using a 4-layer PCB. The two internal layers are used for VCC and GND purposes. On one longer edge are all the connectors and a power switch.

It contains a connector group for connecting a XiPU board, a speaker, an LCD screen and a keyboard. The IO Board main purpose of existence is to offer the IO BUS an interface to communicate with all devices connected to the board. It is like a very primitive south bridge on a motherboard for classic x86 PCs.

PCB

1.1. Power supply

The IO Board is designed for 7.5V input. Two stabilizers create 3.3V and 5V. The 3.3V is used by the IO Board, but it could be used for some purposes by the XiPU. The 5V is used strictly by the XiPU.

Power supply

1.2. Microcontroller

The selected microcontroller for use is the STM32F072RBT6. The uC is cheap, small, has enough internal RAM, and has a USB host interface to be useful in this project. The clock speed is 72 MHz, and the programming and debugging methods use the SWD interface via a Mini DIN-4 connector.

Microcontroller

1.3. Status LEDs

The IO Board has 4 LEDs:

Status LEDs

1.4. Flash memory

The used flash memory chip is the AT45DB161E. It has 16 MB flash memory and an SPI interface.

The memory is formatted to FAT12 for storing application and data files. Access to this memory is possible by using a USB connection and using it like a small pendrive connected to the PC.

Flash memory

1.5. IO BUS

The IO BUS is the only way to communicate with the XiPU. It is designed to be connected to the IO Board and use all peripherals via a simple protocol.

It offers an 8-bit input and an 8-bit output data BUS. The default communication voltage of the BUS is selected by the XiPU by setting it on the "BUS_VCC" pin.

IO BUS

1.6. Keyboard interface

The keyboard interface uses 5 lines to select the current scanning row and 15 lines to read the status for each key of the selected row.

Keyboard interface

1.7. RS232 port

The RS232 interface has its speed set to 1200 bauds, 8 data bits, 1 stop bit and non-parity. Its speed is enough to send or receive simple data and not too fast to overload the XiPC.

RS232 port

1.8. USB port

The USB port uses only the USB mass storage device class. It can be connected to the PC, and it will be visible as a small pendrive with application and data files.

USB port

1.9. Speaker interface

The speaker interface is designed to convert a square wave generated by the uC to an analog signal using the LM4861M audio amplifier.

It is connected to a VS-K40-SQ-8 speaker with 0.5 W and 8 Ohm. The sound level is controlled by the PR167-10K-A analog 10 kOhm potentiometer.

Speaker interface

1.10. Video interface

The video interface uses a charset based rendering. It means only a predefined number of 256 characters could be shown on the screen. It is not possible to draw a single pixel.

The used LCD screen is LCD-AG-TFT640480C256 5i6. It supports a 640x480 screen size with a 256-color palette.

The real rendered screen size is 320x240. It means every 4 real pixels are set as one. The screen can contain 30 lines of text, with 40 characters in one line. It is possible to set one of 16 predefined colors separately for foreground and background for each character. A single character has an 8x8 pixel size.

Video interface

2. List of parts

# Name Quantity Description
1. IO Board PCB 1
2. 22 Ohm 1206 4 Resistor
3. 100 Ohm 1206 3 Resistor
4. 200 Ohm 1206 2 Resistor
5. 270 Ohm 1206 1 Resistor
6. 360 Ohm 1206 1 Resistor
7. 10k Ohm 1206 2 Resistor
8. 20k Ohm 1206 2 Resistor
9. 6.8 pF 1206 2 Capacitor
10. 22 pF 1206 2 Capacitor
11. 100 nF 1206 26 Capacitor
12. 330 nF 1206 1 Capacitor
13. 1 uF 50V 4x5.4mm 2 Capacitor
14. 10 uF 35V 5x5.4mm 4 Capacitor
15. 100 uF 16V 6.3x5.4mm 2 Capacitor
16. 100 uH 40mA 10 Ohm 1210 1 Ferrite inductor
17. SS24T3G 40V 2A SMB 1 Schottky diode
18. 32.768 kHz 6pF SMD 8x3.8x2.5mm 1 Ceramic resonator
19. 8 MHz 20pF SMD HC49SM 1 Quartz
20. STM32F072RBT6 1 STM32F0 ARM microcontroller
21. LF33CDT-TR 1 3.3V LDO voltage regulator
22. LF50CDT-TR 1 5V LDO voltage regulator
23. AT45DB161E-SSHDT 1 16Mb SPI FLASH
24. MAX3232CSE 1 RS232 transceiver
25. LM4861M 1 1.1W audio amplifier
26. 74LVC4245AD 2 Logic level voltage translator
27. 74HC4067D 1 16 to 1 demultiplexer
28. 74HC238D 1 3 to 8 line decoder
29. IRLML2502 3 N-MOSFET
30. LL-S150SC-2S 1 1206 SMD red LED
31. LL-S150YC-2Y 1 1206 SMD yellow LED
32. LL-S150UGC-2B 1 1206 SMD green LED
33. LL-S150BC-B4-1B 1 1206 SMD blue LED
34. 2411 03 1 USB B socket THT
35. PC-GK2.1 1 DC supply 5.5/2.1mm THT
36. DHP8-09F 1 D-Sub 9 pin female
37. MDIN04K 1 DIN mini 4 pin socket
38. BAT-HLD-001-THM 1 CR2032 battery holder
39. SKS06LP 1 ON-ON switch
40. Male 1x2 pin header 2.54mm 1
41. Male 1x3 pin header 2.54mm 1
42. Male 1x20 pin header 2.54mm 1
43. Female 1x20 pin header 2.54mm 1
44. Female 2x3 pin header 2.54mm 1
45. Female 2x4 pin header 2.54mm 2

3. List of external parts

# Name Quantity Description
1. LCD-AG-TFT640480C256 5i6 1 640x480 LCD with a 256-color palette
2. VS-K40-SQ-8 1 0.5 W 8 Ohm speaker
3. PR167 10K A 20P1 1 10k Ohm 100mW single turn potentiometer
4. RN-110FH-R6.1 1 Potentiometer cap
XiRX.net 2021-2024 © All rights reserved