motoh's blog

主に趣味の電子工作やプログラミングについて書いていきます

STM32マイコンで簡易オシロスコープを自作 (2) タッチパネル編

1. はじめに

「STM32マイコンで簡易オシロスコープを自作」の続編です。TFT液晶モジュール (MSP2807) のタッチパネルを利用してオシロスコープのいろいろな設定を変更できるようにしました。ソースコード(STM32CubeIDEプロジェクト)は前回のGithubリポジトリにコミットしています。 mzmlab.hatenablog.com

youtu.be

2. Githubリポジトリ

ronron-gh/NUCLEO_F401RE_SIMPLE_OSCILLOSCOPE

3. マイコンのピンアサイ

Nucleo Board STM32F401のピンアサインは以下の通りです。
青文字がタッチパネル用に追加した接続です。

■ Nucleo CN5 (digital)

Pin MCU pin Function 用途
D15 PB8 - MSP2807 T_DO
D14 PB9 - MSP2807 T_IRQ
GND - Ground MSP2807 GND
D13 PA5 SPI1_SCK MSP2807 SCK
D12 PA6 SPI1_MISO MSP2807 SDO(MISO)
D11 PA7 SPI1_MOSI MSP2807 SDI(MOSI)
D10 PB6 - MSP2807 CS
D9 PC7 - MSP2807 DC/RS
D8 PA9 - MSP2807 RESET

■ Nucleo CN6 (power)

Pin MCU pin Function 用途
+3V3 - 3.3V output MSP2807 LED (バックライト)
+5V - 5V output MSP2807 VCC

■ Nucleo CN8 (analog)

Pin MCU pin Function 用途
A0 PA0 ADC1_0 入力チャンネル

■ Nucleo CN9

Pin MCU pin Function 用途
D7 PA8 - MSP2807 T_CLK
D6 PB10 TIM2_CH3 テスト用信号(10kHz矩形波)
D5 PB4 TIM3_CH1 -
D4 PB5 - MSP2807 T_CS
D3 PB3 TIM2_CH2 -
D2 PA10 - MSP2807 T_DIN

4. おわりに

GUI系のプログラムはボタン等が増えていくとどんどんコード量が膨れ上がっていくので、C言語ですがオブジェクト指向的に実装して整理しやすいように工夫しました。液晶表示やタッチパネルのプログラミングは実は初めてでしたが、Githubのプログラムは興味がある方はご自由にご利用ください。