<自作DSPIC33FJ256GP710実験ボード>

 

外観

周辺機器の接続例

 

 

実験ボードの製作例は下記リンクをクリック

>>>この下をクリック<<<

 >>>>>>  <DSPIC33FJ256GP710実験ボードの製作>  <<<<<<<

 

 

 

<DSPIC33FJ256GP710実験ボードテスト>

 

キャラクタLCDやカラーグラフィックLCDやSDカードなど他いくつかの 実験ボードのテスト

 

実験1 LEDを光らせて作成した実験ボードの接続を確認

プログラム

 

付属のLED基板で各ポートの状態をみるLEDが数秒ごとに点滅をする ただし、Aポートは無接続ピンもあるので注意

他、Fポートにはグランドが2つあり、Gポート1は電源の位置がLED基板と異なるので、LEDの電源ピンは使用しないで(グランドが

Gポート端子と直結するのはまづい)かならづ、LEDと抵抗があるピンで接続。グランドは実験基板のグランドからとりLED基板のグランドと接触させて、初めて光を確認できる。

 

 

 

実験2 キャラクタLCDに文字を表示する

 

LCDモジュール基板と実験基板のEポート(E7 - E0)をケーブルで接続

プログラムの書き込みにLCDが邪魔なので少し長めのケーブルで接続

 

接続関係

ピンの対応

 

 

プログラム

キャラクタLCD用の関数プログラムライブラリLCD_Lib3.cとヘッダファイルLCD_Lib3.hをMPLABプロジェクトに

加えて、メインプログラムにインクルードして関数を利用 このライブラリは 後閑哲也のPIC本にあるものを使用

また、LCD_Lib3.cとLCD_Lib3.hは ピンのアサインに対応して一部変更をした。

変更内容は以降、実験結果写真より下に載せる

また、ライブラリの関数の中身は著作権当考えて、載せていません。ここでは関数の利用までを載せます。

自分でプログラムが面倒な場合は本を買って利用してください。

本のタイトルは ”c言語ではじめるPIC24F活用ガイドブック”技術評論者 後閑哲也著

 

メインプログラム

 

実験結果

 

プログラムのchar MsgStart[] = "DSPIC33FJ256 START!";を表示

しばらくして、ASCIコードの順番に文字列が出てくる

 

LCDの場合、電源が5Vで、基板のレギュレータ3.3Vからケーブルをつたいマイコンに電圧を供給

アダプタは5V4Aの秋月で激安で購入したもの。

 

後閑哲也のpic本のLCDライブラリで ピンアサインにあたり補正した部分

@ヘッダファイルLCD_Lib3.hでピンのアサインはEポート割り当てで下記内容のようになる

AライブラリプログラムLCD_Lib3.cで lcd_out()という関数の定義でLCD_DATA へのデータ取り出し文が1行ありますが、

    ここは、ポートのどのピンをデータ端子に割り当てたかで LCD_DATAに入れるデータの取り出し方が異なる。

 後閑哲也のPIC本でも本により、テスト基板が異なり、LCDのデータ端子の割り当てが異なり、ここが違う。

    今回の実験基板にあわせると

   LCD_DATA = (unsigned int)(code & 0xF0);  

となり、この1行を上のように訂正するだけで、後はそのままで、使用できる。

 

実験3 キャラクタLCDにPA13ピン計測電位を表示する

 

実験基板にはボード電源を分圧する可変抵抗がつけてある。さらにピンショートでAポートのPA13ピンに接続する。

PA13ピンはAD変換器の機能を有しているのでこの機能を使い可変抵抗の変化による入力電位変化をLCDに表示する。

 

PAのピン位置関係(A0−A15)A8とA11はチップ段階で存在していない。

 

 

プログラム

実験2のLCDライブラリをそのまま使用してメインプログラムを書き換える

なお、ここに文字列変換の関数ftostring()関数が定義して使用されていますが

関数の内容は省いて関数の利用まで記述しました。ftostring()関数は本のままで補正はありません。

他、AD変換など、レジスタの設定等は”浅草技研のHP”など参考にしましたし、このHPに結構

プログラムの解説など載っているので、ネットで検索して参考にしてください。

 

メインプログラム

 

実験結果

はじめ0.742Vの電位を計測していて、可変抵抗をまわすと2.407Vに変化した。

 

 

実験4 キャラクタLCDにPC1ピン計測パルス数を表示する

CポートのC1−C4ピンには カウンタの機能がついている。

ここでは、C1ピン タイマ2カウンタ機能を使って、発振器の周波数をカウントしてLCDに表示する。

(カウント時間はタイマ0を使用して割り込みを発生->計測->タイマ0時間を考慮してタイマ2カウント数を計算処理表示)

 

付属低周波発振回路の電源端子+−をCポートの+−に接続 PulsOUT端子を

C1ピン(TCK2を利用)に刺し接続

コードの先にはオスピンがついていてメスピンに刺せる。

プログラム

実験結果

 

はじめ発信機をつないで電源を入れた段階で73.23KHzの周波数を計測

発信機の可変抵抗を回して発振周波数を変化

計測周波数が18.97Hzに変化した

 

 

実験5 DSPIC33FJ256GP710とパソコンのシリアル通信UART(USB)

 

FTD のUSB シリアル IC の基板(秋月で購入) の出力端子をTX RX + − を取り出した基板

(SH2の書き込み器と同じもの SH2のページに基板等のせる)をマイコンに接続 

マイコン側とは TX RX の関係が逆 USB ICの TX と マイコンのRXを

また、USBICの RXとマイコンのTXを接続 電源は同じ+と+ −とーを接続

USB ICからマイコンに電源を供給するピンと 供給電圧3.3Vの選択ピンをUSBIC基板でピン選択して接続

USB IC からマイコンへ電圧を供給。

 

接続方法

上写真のFポートではF4ピンがRX F5ピンがTXの機能ピンになっている

シリアル通信用の接続コネクタは下図(作成した基板の上から見た図 実際には配線が見えない)にあり

 

上基板は下の基板焼付け画像の一部でおまけとしてついている

(ただし下は作成基板の裏側の絵なので上の絵とは表裏が逆に注意)

 

プログラム

 

実験結果

マイコンから文字列データをパソコンに送信し、パソコンではハイパーターミナルで受信した。

マイコンの駆動電源はUSB ICから供給した。

 

 

実験6 カラーグラフィックLCD表示テスト

 

カラーグラフィックLCDモジュール基板(4ビットx3色)16ピン接続タイプと実験基板全Bポートを接続

 

ピンの対応

RGBそれぞれの0番1番ピンはLOWに固定接続されている R2 R3 R4 R5など4ピンのみ可変

 

 

 

ピンの対応関係

 

 

プログラム

画像データはLCDの画素 横400x縦96 約40k個の点で1点にRGB 4ビットx3色=12ビットだと

約40k個x12ビット→480kビット=60Kバイト でデータが大きすぎる。

グラフ使用なので、線とバックグラウンドは2色ですむので 白黒のデータで 約40k個の点

に 1点1ビット(2色を表現)ですむ→ 40kビット=5kバイト

この画像データを1バイト単位の配列要素のデータとして画像ラインデータとした。(60Kバイト→5kバイト

後は着色には LCDとの接続 4ビットx3色 12ビット 2の12乗個の色から

2色を選択して使用できる。バックグラウンドをマゼンダ 線を黒にしてプログラムした。

 

実験結果

 

 

実験7 カラーグラフィックLCDにPA13ピン計測電位を表示

 

実験基板にはボード電源を分圧する可変抵抗がつけてある。さらにピンショートでAポートのPA13ピンに接続する。

PA13ピンはAD変換器の機能を有しているのでこの機能を使い可変抵抗の変化による入力電位変化をカラーLCDに表示する。

 

 

 

プログラム

上のグラフ画像表示プログラムにAD変換プログラムを書き加えた

実験結果

 

はじめ、可変抵抗をつなぐと、下写真のように一定の計測電位が赤線でグラフに表示された。

可変抵抗をまわして大きさを変化

グラフの計測電位の変化を 赤線の移動で確認

 

実験8 SDカードにデータを書込み、その内容を読込んでポートBのLEDに表示

 

SDカードの接続端子

上左写真の基板上から見た配置(上左写真と同じ方向から見た)

マイコン側の接続端子 Gポート(SDカードDIとマイコンSDO SDカードDOとマイコンSDIが接続)

 

 

プログラムの前に

SDカード操作関数のライブラリSD_SPI.c SD_SPI.hとSDカードへ書き込むフォーマットを作成する関数

ライプラリFSIO.c FSIO.h 他ヘッダ FSconfig.h FSDefs.h GenericTypeDefs.hのファイルをプロジェクトに

追加して SDカードへの書き込みを簡単に扱う関数を利用する。

これらの利用では、メイン関数のかかれたファイルの先頭あたりで FSIO.h をインクルードするだけでよい。

(下記絵図参照)

又、このライブラリを利用するにあたり、ピンのアサインが必要になり、アサインはSD_SPI.hのファイルの

1部定義を変更して行う。

本プログラムの後に訂正箇所の内容をしるす。

これらのライブラリは”c言語ではじめるPIC24F活用ガイドブック”技術評論者 後閑哲也著を使用

下記プログラムでは上の関数をメインプログラムで使用した例であり、関数の中身自体は書いていないので

自分でプログラムが面倒な人は本を買って利用してください。

なお、上のこの本も、例題では 書き込み(FileOpenW(void)関数を使用)の例が(他機能と合わせて複雑)ありますが、

読み込み例は載っていないので、このライブラリを参考に読み込み(FileOpenR(void)関数)をできるように私が作りました。

メインプログラムも 本の例題よりもっと簡単にして 

@BufferA[]配列に データを書き込み

ABufferA[]配列の内容をSDカードに移して 

BBufferB[]配列にSDカードの中身を読み込み、

CBufferB[]配列の中身からデータを取り出しBポート(LED)に出力するプログラムになっている。 

 

プログラム

 

ライブラリピンアサイン訂正箇所

SD_SPI.hで

@SPICLOCK  と SPIIN と SPIOUTに SCK SDI SDO ピンを指定(GポートのピンでTRISで指定)

(下記のSD_SPI.hの一部抜粋で 一番下の方で補正してある)

AWP(WE) SDカードのライトプロテクトピンの参照を1に固定 SD_WE ->1

(実際の環境(SDカードモジュール)とこの本のプログラムでの端子の扱いが異なるので 

実際の端子にプログラムをあわせて、補正すればよいが、面倒なので、今回はSD_SPI.hのはじめの定義の所で、

1に固定してしまう。

どちらの方法にせよ、ここの補正をしないと、プログラムがライトプロテクトなどで停止してしまうので注意)

BCD カードディテクトピンの参照を0に固定 SD_CD -> 0

 

以上の内容をSD_SPI.hの一部抜粋で下記のように訂正をした

 

 

実験結果

 

SDカードにBポートの偶数番号 奇数番号の番号列(奇数番号 偶数番号がそれぞれ1の数字列)

を書き込み、それらの番号データをLEDに交互に表示して、

LEDが互い違いに ON OFFするプログラム

互い違いのポート出力データは はじめSDカードに書き込み、これを読み出してBポートのLEDに出力

以下 テスト模様の写真

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

inserted by FC2 system