XiPU - Design of the IO Board
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.
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.
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.
1.3. Status LEDs
The IO Board has 4 LEDs:
- Green - power - It shows a status of power in
- Blue - run - It shows the status of running the code. It could be steering at the code level.
- Yellow - caps lock - It shows the status of the caps lock button on the keyboard
- Red - error - It shows an error status when it occurs. It could be steering at the code level.
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.
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.
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.
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.
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.
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.
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.
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 |