STM32におけるST7567 LCDドライバの実装:HALライブラリ連携と低レベルタイミング制御
ST7567コントローラを搭載した128×64ドットマトリックスLCDは、内蔵RAMと昇圧回路を備えていますが、一般的なHD44780のようなキャラクターLCDやSSD1306のようなOLEDとは駆動方式が大きく異なります。特にSTM32 HALライブラリを使用してST7567を制御する場合、その独自の通信タイミングとレジスタマッピングロジックを理解することが不可欠です。HALの抽象化層は便利な反面 ...
10月26日 23:53 投稿
STM32H7マイクロコントローラのGPIO入力管理
導入と事前準備
STM32CubeIDE環境下でのeasy_buttonライブラリを活用したGPIO入力制御を実装します。既存プロジェクトを継続使用します。新規プロジェクトの場合はSTM32H7系マイコン向けGPIO基本設定を事前に実装しておく必要があります。
easy_buttonライブラリの取得
公式リポジトリはGithubに存在します。アクセス問題が懸念される場合は代替ミラーサーバーGiteaを利用 ...
9月10日 04:06 投稿
RT-ThreadでSFUDを使用してQSPIフラッシュをマウントするトレース分析
RT-ThreadでSFUDを使用してQSPIフラッシュをマウントするトレース分析
QSPIバスの登録プロセス
この段階では主にrt_device_register関数を通じてQSPIバスを登録している
重要なのはrt_spi_bus_register関数で、QSPI1バスを登録している
/*ドライバ層でのQSPIバス登録*/
drv_qspi.c :393 | rt_hw_qspi_bus_init
drv_qspi.c :394 | rt ...
8月22日 04:31 投稿
Android HAL層の内部構造と実装解説: Mokoid LEDサービスの事例
Android HAL層の内部構造と実装解説: Mokoid LEDサービスの事例
Androidシステムにおいて、ハードウェアとフレームワーク層の連携を可能にする重要な役割を担うのがハードウェア抽象化レイヤー(HAL)です。本稿では、MokoidプロジェクトのLEDサービスを具体例として取り上げ、HAL層の実装がどのように行われ、JNI(Java Native Interface)を介してJavaフレームワーク層 ...
8月8日 00:12 投稿
STM32CubeMXで始める組み込み開発実践入門
STM32CubeMXの全体像
STM32CubeはSTMicroelectronicsが提供する統合ソフトウェアエコシステムであり、STM32マイコンおよびマイクロプロセッサ向けの開発を支援します。開発者はIARやKeilといった既存のIDEと組み合わせて利用するだけでなく、STM32CubeMX、STM32CubeProgrammer、STM32CubeMonitorなどのツールを自由に取り込むことができます。
代表的なSTM32開発手法を次 ...
7月17日 00:29 投稿
STM32 HALライブラリを使用したMPU6050のI2C通信とDMP motion_driver 5.1.3の移植
開発環境
Ubuntu 20.04 LTS
STM32CubeIDE 1.9.0
MPU6050 DMP ドライバー: motion_driver 5.1.3
マイクロコントローラ: STM32 F103C8T6
motion_driver 5.1.3の移植
以下のファイルをmotion_driver-5.1.3/core/driver/eMPL/ディレクトリからコピーします。
dmpKey.h
inv_mpu.c
inv_mpu_dmp_motion_driver.h
dmpmap.h
inv_mpu_dmp_m ...
7月9日 00:11 投稿
STM32 HALライブラリによるW25Q128フラッシュメモリのSPI通信実装
SPI(Serial Peripheral Interface)はマイコンと周辺デバイス間の高速データ伝送を実現する代表的なシリアル通信プロトコルです。128Mbit(16MB)の容量を持つW25Q128フラッシュメモリは、データ記録やプログラム格納用途に広く利用されています。STM32F407はARM Cortex-M4コアを搭載し、ハードウェアSPIインターフェースをサポートする他、ソフトウェアエミュレーション ...
6月30日 20:43 投稿
STM32 HALで赤外線リモコン信号をキャプチャする実装
1. NECフォーマットの概要
NECプロトコルは 38 kHz キャリアを用いた赤外線通信規格である。受信側で観測すると、以下の時間幅でビットが表現される。
論理 1:560 µs の Low 後 1.68 ms の High(合計 2.24 ms)
論理 0:560 µs の Low 後 560 µs の High(合計 1.12 ms)
1フレームは次で構成される。
リーダーコード:9 ms Low → 4.5 ms High
アドレス(8 bit、LSB ...
6月27日 22:05 投稿
STM32 HALを用いたMG90Sサーボモータ(180度)の制御手法
サーボモータの概要と制御原理
MG90Sのような標準的なサーボモータは、内部でモータ、ギアヘッド、フィードバック用ポテンショメータ、制御回路を統合したアクチュエータです。入力されたPWM信号に基づいて目標角度を維持する閉ループ制御を行います。一般的に、電源(VCC)、グランド(GND)、制御信号(PWM)の3本の配線で構成されます。
角度制御には周期20ms(50Hz)の ...
6月12日 18:24 投稿
OpenHarmonyにおけるファイルサブシステムの移植方法
OpenHarmonyのutilsコンポーネントは、各業務サブシステムおよび上位アプリケーションから利用可能であり、チップ側のファイルシステム実装に依存している。具体的には、チッププラットフォームがファイルのオープン・クローズ、読み書き、サイズ取得などの基本機能を提供する必要がある。
HALインタフェースの要件
OpenHarmonyのファイルシステムを移植するには、以下の ...
5月16日 21:59 投稿