fc2ブログ

2024-03

STM32 Primer2をカラーグラフィックLCDとして使う

 STM32 Primer2は安価で(秋月電子で¥6,200)、128x128ピクセルのカラーTFT液晶とIrDA赤外線通信モジュールを備えています。これを応用して、マイコンの表示装置として利用します。マイコンはPIC18F2550を使います。

1.表示例
IrDA_LCD表示例 

2.ハードウェア

2.1 構成 

IrDA-LCD構成  

 電源(+5V)はPIC18F2550モジュールのUSBコネクタから取っています。緑のLEDは抵抗内蔵です。ブレッドボード用ジャンパーワイヤーのピンをテープでまとめて、直接PICkit2のコネクタに挿しています。

IrDA-LCD写真 

2.2 回路図

 抵抗を外付けするタイプのLEDを使用した場合です。 

 左クリックで拡大表示します。

IrDA-LCD回路図  

 

2.3 部品表

IrDA_LCD_部品表 

3.ソフト
 趣味・商用を問わず利用可能ですが、保証はありません。自己責任でお使いください。ソースファイルの転載は不可です。このページにリンクを張ってください。

3.1 表示コマンドの仕様
PIC18F2550のソースirda_lcd.cの中に記述してあるコマンドのサンプルで説明します。

ClearLCD()
画面をクリアします。

Print(010,110,IrDA-LCD Test)
画面に文字を出します。010,110は、書き始めの文字位置のX座標、Y座標です。必ず3桁にします。IrDA-LCD Testは書き出す文字列です。

Line(030,045,105,045,BLACK)
画面に直線を描きます。030,045は描き始めのX座標、Y座標です。105,045は終点のX座標、Y座標です。BLACKは直線の色です。RED、GREEN、BLUEも使えます。

Pixel(004,000,RED,020,021,020,023,020,025,020,027)
画面に点を打ちます。004は点の数です(001~127)。その次の000は使用しませんが、このように入れておいてください(Reserved)。REDは点の色です。BLACK、GREEN、BLUEも使えます。その後は全てX座標、Y座標の繰り返しです。点の数を4にしていますので、4つの座標を指定しています。

3.2 STM32 Primer2のプログラム
 こちらにソースファイル一式IrDA_LCD_STM32.zipを置きます。解凍してC:\DATA\STM32の下に置いてください。

(1)stm32circle.comのSTM32 Primer2 ProjectのPrimer2Test Ver1.1を参考に、STM32 Primer2用ソフトをインストールした時できる\Examples\ARM \Primer\STM32Primer2\toggle_with_CircleOSを改造しています。2009/9/20現在、Primer2TestはVer1.2に上がっています。

(2)Application.cの中のenum MENU_code Application_Handler ( void )の中で、IrDAの受信データが有るかどうかチェックしています。受信データがあればデリミタ=NULLコード(0x0)が来るまで描画コマンドの受信を続けます。MENU_code Application_Handler はCircleOSから定期的に呼ばれます(数十mS毎?)。

(3)下記は115200とすべきところですが、なぜか115.2Kbps×1.5倍のスピードになってしまいますので、1.5で割った値=76800にしています。
  USART_InitStructure.USART_BaudRate = 76800;

(4)コードサイズの制限が有るようです。この制限に引っかかると、プログラムに問題がなくても、コンパイルがfailとなります。そのため、enum MENU_code Application_Ini ( void )の中の不要部分をコメント化しています。

3.3 PIC18F2550のプログラム
 こちらにソースファイル一式IrDA_LCD_PIC.zipを置きます。解凍してC:\DATA\PIC\C18の下に置いてください。

(1)IrDAの送信波形(LEDの点灯タイミング)を調整する部分は、USB-Blasterもどきの製作の「Ver.0.4での高速化の肝」を参考にさせていただきました。
  // IrDA Ver1.0規格 8.68uS/bit, LED ON=1.6uS
  // 実測 8.67uS/bit, 1.67uS
  #define WriteIrDA_Bit(a)

(2)STM32 Primer2側は、pollingで受信データを取り込みますので、コマンドの最初の1文字を送信した後、STM32 Primer2側で連続受信体制が整うのを約80mS待って2文字目以降を送っています。30mSでは、STM Primer2側がときどき取りこぼします。40mSでは取りこぼしはありません。そこで倍の80mS待つことにしました。
STM32 Primer2側でIrDAの受信割り込みを使う方法は、試しましたがうまく動作していません。
  void PutsIrDA(char *Command)
   ・・・
  Delay10KTCYx(100); // wait 83.3mS

4.使い方
(1)PIC18F2550マイコンにプログラムを書き込みます。リセットを解除すると、IrDA送信を開始します。緑LEDが細かく点滅している状態が正常です。

(2)STM32 Primer2にプログラムを書き込みます。書き込み方法は、このブログの2009/8/26「STM32 Primer2 の開発環境を整える」を参考にしてください。

(3)STM32 Primer2でオレンジのボタンを押して電源を入れます。オレンジのボタンを押してメニューを出し、IrDA-LCDを選びます。画面をタッチしても良いのですが、STM32 Primer2を傾けると選択が移動します。IrDA-LCDの所でオレンジのボタンを押します。IrDA-LCDが表示されていないときは、Applic.を選び、サブメニューからIrDA-LCDを選びます。

(4)PIC18F2550マイコン側のIrDAモジュールと、STM32 Primer2のIrDAモジュールを対向させます。このページトップの「表示例」の画面が現れます。

(5)STM32 Primer2でオレンジのボタンを押して、IrDA-LCDのプログラムから抜けます。この操作を行わず、IrDA-LCDのままでIrDAの通信を遮ると、STM32 Primer2がハングアップすることがあります。このときはSTM32 Primer2の裏蓋を外し、電源供給のショートピンを抜き挿しして、初期状態に戻します。

<広告> 
格安FPGA基板
Xilinx社 Spartan-3A搭載。PicoBlazeサンプル付USBダウンロード基板あり。

CADLUS X入門

無料プリント基板CAD「CADLUS X」の入門書。ダウンロードできるPDF書籍、導入編無料

テーマ:ソフトウェア開発 - ジャンル:コンピュータ

STM32 Primer2 の開発環境を整える

 STM32 Primer2のプログラミング・メモです。

1.CD-ROMイメージのダウンロード
下記ホームページから、最新のCD-ROM Imageをダウンロードします。ページの下の方にCD-ROM imageがあります。

http://www.stm32circle.com/resources/stm32primer2.php
CD-ROM image - Full CD-ROM provided with the STM32-Primer2
(CD_STM32-Primer_BN14.zip)

2.開発環境のインストール
 この時点では、STM Primer2をパソコンに接続しないでください。
<参考> STM32-Primer2 User manual.pdf 「3.3 Install the Ride7 software toolset for ARM」

(1)ダウンロードしたCD-ROM image を解凍し、demo.exeをダブルクリックします。
(2)「Install ARM Toolset」を押します。

Primer2インストール(1)

(3)Install Ride7 or its componentsをクリックします。

Primer2 インストール(2)

 

(4)「Start install」を押します。

Primer2 インストール(3)

 
(5)「Finish」を押します。

Primer2 インストール(4)

 
(6)フォントの関係なのか、「Quit」ボタンが見えません。

Primer2 インストール(1)

 
Ctrl+Alt+Deleteキーを同時に押して、下記のダイアログでdemo.exeを選び、「プロセスの終了」ボタンを押します。

Primer2 インストール(5)

 
「はい」を押します。

Primer2 インストール(6)

 

 

3.USBドライバのインストール

(1)STM32-Primer2のUSBポート(DEBUG)とパソコンをUSBケーブルで接続します。
(2)「いいえ、今回は接続しません」を選んで、「次へ」を押します。

Primer2 USBドライバ(1)

 

(3)「一覧または特定の場所からインストールする」を選んで、「次へ」を押します。

Primer2 USBドライバ(2)

 

(4)「参照」ボタンを押して、C:\Program Files\Raisonance\Ride\Driver \RLinkDrv\Jungo_WinDriver_2000_NT_XPフォルダを選びます。「次へ」を押します。

Primer2 USBドライバ(3)

 

(5)「完了」を押します。


Primer2 USBドライバ(4)


4.コンパイルとダウンロード、Run
(1)スタートメニューからRaisonance tools > Ride7 > Ride7を起動します。

Primer2 実行(1)

 
Ride7を起動したときに下記のエラーが出て、Ride7がうまく動作しないことがあります(OSはWindows XP SP3)。別のPC(こちらもWindows XP SP3)でRide7を起動したところ、エラーは出ませんでした。  

Primer2 実行(2)


(2)メニュー Project > Open Projectで、C:\Program Files\Raisonance\Ride\Exsamples\ARM \Primer\STM32Primer2
\toggle_with_CircleOS\toggle_with_CircleOS.rprjを選択します。

Primer2 実行(3)

 
Application.cをダブルクリックして、開きます。

Primer2 実行(4)

 
(3)メニュー Project > Make Projectでコンパイルします。

Primer2 実行(5)

 
(4)STM32 Primer2の液晶の下の、オレンジのボタンを押して電源を入れます。

Primer2 実行(6)

 
(5)メニュー Debug > Startを選択すると、プログラムのダウンロードが始まります。ダウンロードが終了したら、メニュー Debug > Runでプログラムをスタートさせます。

Primer2 実行(7)

 
(6)CircleOSが起動し、初期画面になります。オレンジのボタンを押すとメニューが表示されます。メニューの中からApplic.を選び、サブメニューからtoggleを選びます。画面が真っ暗になり、赤と緑のLEDが交互に点滅します。次にメニューを開いたときには、toggleはApplic.の上に表示されます。

(7)オレンジのボタンを押し続けて、STM32 Primer2の電源をOFFします。パソコンには下記のメッセージが出ますので、OKをクリックします。  

Primer2 実行(8)


(8)メニュー File > ExitでRide7を終了します。

<広告> 
格安FPGA基板
Xilinx社 Spartan-3A搭載。PicoBlazeサンプル付USBダウンロード基板あり。

CADLUS X入門

無料プリント基板CAD「CADLUS X」の入門書。ダウンロードできるPDF書籍、導入編無料

テーマ:ソフトウェア開発 - ジャンル:コンピュータ

«  | ホーム |  »

プロフィール

すいか村

Author:すいか村

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

未分類 (0)
STM32 Primer2 (2)
プリント基板 (2)
STBee (3)

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

QRコード

QRコード