Chương 3: TÍNH TOÁN_THIẾT KẾ
3.2. TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG
3.3.2 Tính toán và thiết kế mạch
a. Khối điều khiển, cảm ứng và hiển thị
Khối hiển thị: Yêu cầu là màn hình LCD kích thướt từ 4-5inch để phù hợp với các game mini, hiện đa màu sắc giúp trò chơi thêm bắt mắt.
Khối cảm ứng: Phải là một màn cảm ứng dán chồng lên màn hình LCD để
người chơi có thể tác động trực tiếp lên màn hình khi sử dụng.
Khối điều khiển chức năng chính: xử lý dữ liệu nhận từ tay cầm và cảm ứng đồng thời xuất dữ liệu ra màn hình hiển thị và module giải mã âm thanh.
Để thực hiện những yêu cầu trên thì cần một KIT với vi điều khiển hoạt động tốc độ cao để xử lý hình ảnh với tần số cao được mượt, ít hiện tượng giật. Có các chuẩn giao tiếp truyền thông để giao tiếp với các module ngoại vi, có kết nối sẵn với màn hình TFT-LCD hoặc có ra chân để kết nối với LCD rời. Đáp ứng được như vậy thì có các loại KIT của dòng vi điều khiển STM32, FRKL46Z... qua quá trình tìm hiểu và đã có sử dụng từ trước cũng như sự hướng dẫn của GVHD, tôi quyết định chọn vi điều khiển STM32 mà cụ thể là KIT DISCOVERY STM32F746NGHx với những thông số cơ bản như sau:
Vi điều khiển STM32F746G với 1Mbytes bộ nhớ Flash và 340 Kbytes RAM.
Màn hình TFT LCD kích thướt 4.2” với độ phân giải 480x272 pixel tích hợp cảm ứng điện dung.
Arduino Connectors với ARDUINO UNO R3, các pin ra còn là các pin của các chuẩn giao tiếp cơ bản như SPI, UART, I2C, nguồn.
Hỗ trợ khe cắm thẻ thẻ SD card.
Nguồn vào 5v có thể cấp từ nhiều nơi trên KIT.
Hỗ trợ lập trình bằng phần mềm STM32Cube và gói thư viện của STmicroelectronics.
Hình 3-2. Mặt trên của KIT.
Với Arduino Connectors[5] bao gồm có 4 cụm CN4, CN5, CN6, CN7 với thông tin như sau:
Bảng 3.1: Arduino Connectors.
Kết nối trái Kết nối phải
Cụm Số Tên Chân STM32
Chức năng
Chức năng
Chân
STM32 Tên Số Cụm
CN 6 I2C1_SCL PB8 D15 10 CN7
1 NC - - I2C1_SDA PB9 D14 9
2 IOREF - 3.3V
Ref AVDD - AREF 8
3 RESET NRST RESET Ground - GND 7
4 +3V3 -
3.3V input /output
SPI2_SCK PI1 D13 6
5 +5V - 5V
output SPI2_MISO PB14 D12 5
6 GND - Ground
TIM12_CH2, SPI2_MOSI
PB15 D11 4
7 GND - Ground TIM1_CH1 PA8 D10 3
8 VIN -
Power input
TIM2_CH1 PA15 D9 2
- - PI2 D8 1
-
CN5
- PI3 D7 8
CN4
1 A0 PA0 ADC3_IN0 TIM12_CH1 PH6 D6 7
2 A1 PF10 ADC3_IN8
TIM5_CH4, SPI2_NSS
PI0 D5 6
3 A2 PF9 ADC3_IN7 - PG7 D4 5
4 A3 PF8 ADC3_IN6 TIM3_CH1 PB4 D3 4
5 A4
PF7 or PB9
ADC3_IN5 (PF7)
or I2C1_SDA
(PB9)
- PG6 D2 3
6 A5
PF6 or PB8
ADC3_IN4 (PC0)
or I2C1_SCL
(PB8)
USART6_TX PC6 D1 2
USART6_RX PC7 D0 1
Hình 3-3. Sơ đồ bố trí Arduino Connectors, SD card adapter.
Như vậy, với KIT này ta đã có khối điều khiển, khối hiển thị và khối cảm ứng vừa tinh gọn vừa đáp ứng yếu tố thẩm mỹ, kỹ thuật đối với 1 máy chơi game.
b. Khối tay cầm
Ngoài việc người chơi có thể thao tác trên màn hình cảm ứng thì một số game cần có tay cầm để dễ dàng thao tác khi sử dụng. Qua tìm hiểu thì tay cầm PS2, Xbox... đáp ứng đầy đủ yêu cầu này nhưng Xbox giá khá cao nên tôi quyết định chọn PS2: Giá thành hợp lí, dễ dàng giao tiếp, kết nối, cầm nắm dễ dàng thuận tiện cho người sử dụng.
Hình 3-4. Tay cầm PS2.
Như đã trình bày ở Chương 2 thì tay cầm này giao tiếp theo chuẩn SPI vì vậy ta kết nối tay cầm với KIT thông qua Arduino Connectors.
KIT STM32F746NGHx ra chân với 4 cụm mở rộng bao gồm CN4, CN5, CN6, CN7.
Từ bảng 3.1 ta thấy để kết nối SPI cho PS2 ta sử dụng 3 chân SPI2_MOSI, SPI2_MISO, SP2_SCK với thứ tự tên D11, D12, D13 của cụm CN7. Ngoài ra còn có chân nguồn 3v3 và GND.
Bảng 3.2: Mô tả chân kết nối của PS2 với Arduino Connectors.
Stt PS2 Arduino
Connectors
Tên CỤM
1 3v3 3v3 - CN7
2 GND GND -
3 CLOCK SPI2_SCK D13
4 DATA SPI2_MISO D12
5 COMMAND SPI2_MOSI D11
6 ATTENTION PH6 D6 CN4
c. Khối âm thanh
Âm thanh đối với 1 máy chơi game là không thể thiếu, nó làm trò chơi thêm sinh động, tạo được hiệu ứng cho người sử dụng. Khối này với nhiệm vụ chính là phát âm thanh định dạng MP3 được lưu trong thẻ nhớ ra trong suốt quá trình chơi game. Các Module như MP3-LT108, TF-GM4563 hay VS1003 đều chạy tốt yêu cầu trên, tuy nhiên do có nghiên cứu từ trước nên tôi quyết định chọn module VS1003. Module này với chip VS1003 có thể phát được file nhạc định dạng MP3 như yêu cầu, có jack cắm tay nghe 3.5mm để kết nối với loa ngoài, ngoài ra module này giao tiếp theo chuẩn SPI nên ta có thể sử dụng chung với tay cầm PS2 thông qua các chân CS khác nhau.
Hình 3-5. Sơ đồ khối nối STM32F746 với PS2.
Module bao gồm các chân: 5V, GND, XRST, MISO, MOSI, SCLK, DREQ, XCS, XDCS được kết nối với Arduino Connectors:
Bảng 3.3 :Mô tả chân kết nối của VS1003 với Arduino Connectors.
STT VS1003 Arduino
Connectors
Tên CỤM
1 5v 5v - CN6
2 GND GND -
3 XRST NRST -
4 SCLK SPI2_SCK D13 CN7
5 MISO SPI2_MISO D12
6 MOSI SPI2_MOSI D11
7 DREQ PA15 D9
8 XCS PI2 D8
9 XDCS PI3 D7 CN4
Hình 3-6. Module VS1003.
Do PS2 và VS1003 sử dụng chung các đường SPI2 nên phải thiết kết mạch kết nối giữa PS2, VS1003 với KIT.
Sử dụng với loa ngoài thì cần thêm mạch khuếch đại âm thanh như các module LM386, TDA2030. Ở đây tôi dùng module LM386 điện áp hoạt động 5v với loa 4ohm/3W để âm thanh có thể phát ra ngoài cho nhiều người nghe. Tuy nhiên 3W là công suất tối đa của loa khi sử dụng. Còn ở mạch này, tôi chỉ cho loa hoạt động với 1/3 công suất (1W) để nghe vừa tai.
d. Khối nguồn
Đối với khối nguồn ta phải lựa chọn nguồn phù hợp để cấp và dòng cho hệ thống hoạt động. Đầu tiên đối với KIT STM32F746NGHx sử dụng nguồn vào 5v cấp vào các cổng ST-LINK, USB HS, USB FS.
Nguồn cung cấp cho chip ARM lõi Cotex-M7 TFBGA216 là 3.3v với công suất 690mW[4], từ đó dòng cấp vào:
𝐼𝑎 = P
U=690
3.3 = 210𝑚𝐴 (3.1)
Tay cầm PS2 cũng sử dụng điện áp 3.3v dòng làm việc tối đa là Ip = 300mA.
Module VS1003 đầu vào là 5v nhưng hoạt động của IC là ở 3.3 dòng tối đa lúc hoạt động là Iv = 800mA và dòng của loa là:
Hình 3-7. Sơ đồ kết nối STM32F746 với VS1003.
Iloa = √P
R =√1
4 = 500mA (3.2)
Như vậy dòng tổng cần cấp:
∑I = 𝐼𝑎 + 𝐼𝑝 + 𝐼𝑣 + 𝐼loa = 210 + 300 + 800 + 500 = 1810𝑚𝐴 (3.3) Như vậy ta cần cấp một nguồn áp 5v có dòng từ 1.8A là mạch có thể hoạt động tốt. Ta có thể lựa chọn cấp nguồn từ ghép Pin lipo loại 3.7v lại với nhau sau đó giảm áp để cấp cho mạch hoạt có thể sử dụng các loại Adapter 5v-1.8A để cấp cho mạch.
Hình 3-8. Sơ đồ kết nối nguồn ngoài cho STM32F746.
3.3.3 Sơ đồ nguyên lý toán mạch
Phần này ta kết hợp các sơ đồ kết nối của từng phần cứng lại với nhau thành 1 sơ đồ nguyên lý chung. Do PS2 và VS1003 cùng kết nối với STM32F746 bằng chuẩn SPI thông qua các chân SPI2 trên Arduino Connectors nên sơ đồ nguyên lý chung được vẽ như sau.