Top Banner
1 PICBIG-300ユーザーズガイド 型番:PICBIG-300 REV.1.00 USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン開発用統合評価ボード 取扱説明書 お使いになる前にこの説明書をよくお読みの上正しくお使いください。 (C)2007 マイクロテクニカ ボード本体 製品の概要 80ピン大型PICマイコン開発用統合評価ボード[型番:PICBIG-300、 以下PICBIG-300と記載]はオンボードでUSB2.0対応のPICプログラ マーを搭載した、ピン数の多いPIC18F8520やPIC18F8722のプログ ラム開発・実験・試作・学習用とあらゆる用途に使用できる統合開発ボ ードです。 ボード上には80ピンのMCUカードソケットが用意されており、扱いにく い面実装タイプの大型デバイス、PIC18F8520やPIC18F8722を搭 載したMCUカードを装着できます。 本体には、 PORTA・PORTB・PORTC・PORTD・PORTE・PORTF・のIO ピンに接続されたLEDとタクトスイッチが搭載されており、任意のピン のI/O状態を視認でき、また任意のピンをHighレベルやLowレベルに簡 単に設定できます。ポートの状態を一目で把握でき、現在ピンの状態が どのようになっているかを簡単に確認できます。 またLED表示が必要ない場合等には、LEDとPICのI/Oピンをディップ スイッチで物理的に切り離せますので、他の回路へ影響を与えることが なく、全I/Oピンが最大限活用できます。その他、各種周辺回路を搭載。 2系統のUART機能をもつPIC18F8xxxシリーズ用に、レベル変換IC搭 載のRS-232Cポートを2系統搭載しています。マルチメディアカード用 (SDカードと電気的・物理的に互換性があります)のスロット並びに電 源回路を搭載。2系統ADコンバーター評価用ボリューム・2行16文字 のキャラクタ液晶ディスプレイなど、実験や評価・学習に最適な周辺回 路をワンボード上に凝縮して搭載しています。 パッケージの内容 ■同梱物 ・PICBIG-300ボード本体 ・PIC18F8520搭載MCUカード (ボードに装着済み) ・16文字×2行液晶ディスプレイモジュール (ボードに装着済み) ・USBケーブル ・CD-ROM ・マニュアル(本書) パソコンとの接続及びドライバのインストール PICBIG-300本体とパソコンとをUSBケーブルで接続します。 接続後はドライバをインストールします。パソコンにCD-ROMを挿入し ておきます。 1 PICBIG-300のUSBコネクタにUSBケーブルを接続して、パソコン と接続してください。 USBコネクター USB Link LED ※上の写真にはGLCD及びMMCが装着されていますが、実際の商品に は付属しておりません。 ※パソコンのUSBポートに直接接続してください。USBハブ経由の 接続では電力が十分供給されずに動作が不安定になることがあり ます。 ※パソコンのUSBポートがUSB2.0対応の場合には高速書き込み が行えます。USB1.1ポートの場合には通常速度での書き込みとな ります。 →接続するとPOWERの緑LEDが点灯します。 →新しいハードウエアの検出ウィザードが自動的に起動します。
23

USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

Mar 30, 2023

Download

Documents

Khang Minh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

1

PICBIG-300ユーザーズガイド

型番:PICBIG-300 REV.1.00

USB2.0対応 高速PICプログラマ搭載

80ピン大型PICマイコン開発用統合評価ボード

取扱説明書

お使いになる前にこの説明書をよくお読みの上正しくお使いください。

(C)2007 マイクロテクニカ

ボード本体

製品の概要

80ピン大型PICマイコン開発用統合評価ボード[型番:PICBIG-300、

以下PICBIG-300と記載]はオンボードでUSB2.0対応のPICプログラ

マーを搭載した、ピン数の多いPIC18F8520やPIC18F8722のプログ

ラム開発・実験・試作・学習用とあらゆる用途に使用できる統合開発ボ

ードです。

ボード上には80ピンのMCUカードソケットが用意されており、扱いにく

い面実装タイプの大型デバイス、PIC18F8520やPIC18F8722を搭

載したMCUカードを装着できます。

本体には、 PORTA・PORTB・PORTC・PORTD・PORTE・PORTF・のIO

ピンに接続されたLEDとタクトスイッチが搭載されており、任意のピン

のI/O状態を視認でき、また任意のピンをHighレベルやLowレベルに簡

単に設定できます。ポートの状態を一目で把握でき、現在ピンの状態が

どのようになっているかを簡単に確認できます。

またLED表示が必要ない場合等には、LEDとPICのI/Oピンをディップ

スイッチで物理的に切り離せますので、他の回路へ影響を与えることが

なく、全I/Oピンが 大限活用できます。その他、各種周辺回路を搭載。

2系統のUART機能をもつPIC18F8xxxシリーズ用に、レベル変換IC搭

載のRS-232Cポートを2系統搭載しています。マルチメディアカード用

(SDカードと電気的・物理的に互換性があります)のスロット並びに電

源回路を搭載。2系統ADコンバーター評価用ボリューム・2行16文字

のキャラクタ液晶ディスプレイなど、実験や評価・学習に 適な周辺回

路をワンボード上に凝縮して搭載しています。

パッケージの内容

■同梱物

・PICBIG-300ボード本体

・PIC18F8520搭載MCUカード (ボードに装着済み)

・16文字×2行液晶ディスプレイモジュール (ボードに装着済み)

・USBケーブル

・CD-ROM

・マニュアル(本書)

パソコンとの接続及びドライバのインストール

PICBIG-300本体とパソコンとをUSBケーブルで接続します。

接続後はドライバをインストールします。パソコンにCD-ROMを挿入し

ておきます。

1 PICBIG-300のUSBコネクタにUSBケーブルを接続して、パソコン

と接続してください。

USBコネクター

USB Link LED

※上の写真にはGLCD及びMMCが装着されていますが、実際の商品に

は付属しておりません。

※パソコンのUSBポートに直接接続してください。USBハブ経由の

接続では電力が十分供給されずに動作が不安定になることがあり

ます。

※パソコンのUSBポートがUSB2.0対応の場合には高速書き込み

が行えます。USB1.1ポートの場合には通常速度での書き込みとな

ります。

→接続するとPOWERの緑LEDが点灯します。

→新しいハードウエアの検出ウィザードが自動的に起動します。

Page 2: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

2

■Windows2000、 XPをご利用の場合------------------

2 下記のようなダイアログが表示されたら"一覧または特定の場所か

らインストールする(詳細)"にチェックを入れて「次へ」をクリックし

ます。

3 「次の場所を含める」にチェックを入れて、「参照」ボタンをクリック

します。ダイアログが表示されますので、CD-ROM内の"USB Progr

ammer Software"フォルダ内"Driver"フォルダ内にある"WIN2000_

XP_VISTA"フォルダを指定してください。CD-ROMドライブがQド

ライブの場合、ディレクトリは下記のようになります。

Q\USB Programmer Software\Driver\WIN2000_XP

次へを押して続行します。

4 "新しいハードウエアの検索ウィザードの完了"と表示されたら、「完

了」ボタンを押して完了します。

■WindowsVistaをご利用の場合---------------------

2 「新しいハードウエアが見つかりました」ダイアログが表示されます

ので、 "ドライバソフトウエアを検索してインストールします(推奨)"

をクリックします。

3 自動検索が完了すると、下記のようなダイアログが表示されますの

で、「ディスクはありません。他の方法を試みます」をクリックします。

4 「このデバイス用のドライバソフトウエアが見つかりませんでした」

と表示されますので、「コンピューターを参照してドライバソフトウ

エアを検索します(上級)」をクリックします。

5 「次の場所でドライバソフトウエアを検索します」と表示されますの

で、「参照」ボタンを押して、CD-ROM内の"USB Programmer Soft

ware"フォルダ内の"Driver"フォルダ内にある"WIN2000_XP_VIST

A"フォルダを指定してください。

CD-ROMドライブがQドライブの場合、ディレクトリは下記のように

なります。

Q\USB Programmer Software\Driver\WIN2000_XP_VISTA

6 適切なデバイスドライバーが見つかると、下図のようなダイアログ

が表示されますので、「このドライバソフトウエアをインストールしま

す」をクリックします。

7 「このデバイス用のソフトウエアは正常にインストールされました」

と表示されたら、"閉じる"ボタンを押して完了します。

■Windows98(SE)、 MEをご利用の場合----------------

2 自動的にデバイスが検出されます。

、"新しいハードウエアの追加ウィザード"が表示されたら「次へ」を

押して続行します。

3 次のダイアログでは、"使用中のデバイスに 適なドライバを検索す

る"にチェックを入れて、「次へ」をクリックします。

4 "検索場所の指定"にチェックを入れて、「参照」ボタンを押します。

ドライバの場所を指定するダイアログが表示されますのでCD-RO

M内の"USB Programmer Software"フォルダ内の"Driver"フォルダ

にある"WIN98_ME"フォルダを指定してください。CD-ROMドライ

ブがQドライブの場合にはディレクトリは下記の通りとなります。

Q:\USB Programmer Softeare\Driver\WIN98_ME

指定したら「次へ」を押して続行します。

インストールが完了したら、「完了」ボタンを押して終了します。

~ここからは各OS共通の項目です~

PICBIG-300ボード上の"USB Link"の黄LEDが点灯していること

を確認してください。

黄LEDの点灯はPC側にPICBIG-300が正しく認識されていること

を示します。

Page 3: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

3

ソフトウエアのインストール

開発に必要なソフトウエアをインストールします。

CD-ROMをパソコンに挿入して下記の手順でインストールしてくださ

い。なお、ソフトウエアをインストールする際には、必ずUSBポートから

PICBIG-300を外した状態で行ってください。

■MPLABのインストール

MPLABはPICマイコンのプログラム開発用の統合開発環境です。

PICマイコンの開発元マイクロチップ社から提供されています。

MPLABがお手持ちのパソコンにインストールされていない場合には、

インストールしてください。

1 CD-ROM内の"MPLAB"フォルダを開きます。

"SETUP.EXE"をダブルクリックして実行します。

"Next>"をクリックして続行します。

2 "License Agreement"のダイアログが表示されたら内容をよくご確

認の上、同意する場合には"I accept the terms of the licence

agreement"にチェックを入れて、"Next>"クリックして続行します。

なお同意しないとインストールは続行できません。

3 "setup type"の選択ダイアログではすべてのプログラムをインスト

ールしますので"Complete"にチェックを入れて"Next>"をクリックし

ます。

4 MPLABをインストールするディレクトリを指定します。

特に設定する必要がなければデフォルトのままにしておきます。

インストールするディレクトリを変更したい場合には、"Browse"ボタ

ンを押してインストールディレクトリを設定します。

なお変更した場合には、インストールディレクトリをメモするなど忘

れないようにしてください。

"Next>"をクリックして続行します。

5 以降のダイアログでは次のように進めます。

■Application Maestro License

→"I accept the terms of the license agreement"にチェック

をいれて"Next>"をクリック

■Start copying files

→"Next>"を押します。 ・・・インストールが開始されます。

6 パソコンに必要なファイルがインストールされると、"Preinstall

USB Drivers"のダイアログが表示されます。

本PICBIG-300ではこのドライバーは必要ありませんので

"I will preinstall the USB Drivers later"(下側)にチェックを入れ

て"Next>"をクリックします。

7 インストールが完了したら "Finish"ボタンを押して終了します。

その後に"MPLAB IDE Document Viewer"が表示されますが、その

まま閉じて終了します。

※OSのバージョン等によっては再起動が必要な場合があります。

■mikroC Cコンパイラー for PIC12F/16F/18F

mikroElektronika社からリリースされている8ビットPICマイコン用ANSI

規格準拠のCコンパイラーです。

本PICBIG-300には、生成されるHEXファイルのコードが2Kワードまで

に制限されたCコンパイラーが付属しております。もしこの限定版Cコ

ンパイラーをご使用になり、コードサイズの限定がない製品版をご希望

の場合には、弊社より本製品をお買い上げのお客様向けにフル機能版

を特別優待価格にて販売しております。詳しくは別紙のご案内をご覧く

ださい。

なお、Cコンパイラーを使用しない場合には、インストールしなくてもか

まいませんが、インストールしない場合には、次の「PICプログラマー用

ソフトウエア」を必ずインストールしてください。

1 CD-ROM内の"Cコンパイラー"フォルダを開きます。

"SETUP.EXE"をダブルクリックして実行します。

"Next>"をクリックして続行します。

2 "License Agreement"のダイアログが表示されたら内容をよくご確

認の上、同意する場合には"I accept the terms in the License

Agreement"にチェックを入れて、"Next>"クリックして続行します。

なお同意しないとインストールは続行できません。

3 "Choose Components"ダイアログが開きますので、下記の3つにチ

ェックを入れて"Next>"ボタンをクリックします。

□PicFlash2.0

□examples

4 インストールするディレクトリを指定します。特に変更する理由がな

ければ、"Install"ボタンをクリックします。

→インストールが開始されます。

5 "Completing the mikroC Setup Wizard"というダイアログが表示

されたら、"Finish"ボタンを押して終了します。

続いて、下記のようなメッセージが表示された場合には、"はい"をク

リックします。

6 再度、"PICFLASH v7.0x"インストーラーが起動します。画面の指示

に従って、インストールを進めてください。"License Agreement"の

ダイアログが表示されたら内容をよくご確認の上、同意する場合に

は"I accept the terms in the License Agreement"にチェックを

入れて、"Next>"クリックして続行します。

Cコンパイラーのインストールは完了です。

なお、Cコンパイラーをインストールすると自動的に書き込みソフト

ウエアもインストールされます。

Page 4: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

4

■PICプログラマ用のソフトウエア

PICへプログラムを書き込む際に使用するプログラマソフトウエアのイ

ンストールを行います。mikroC Cコンパイラーをインストールしなかっ

た場合のみインストールしてください。mirkoC Cコンパイラーをインス

トールされた方は、この項目は読み飛ばしてください。

1 CD-ROM内の"USB Programmer Software"内にある"SETUP.EX

E"をダブルクリックして実行します。インストーラーが起動しますの

で、画面の指示に従ってインストールしてください。

なお標準設定では下記のディレクトリにインストールされます。

C:\Program Files\Microtechnica

\PICBIG-300 Programmer\7.04

2 "インストールは完了しました"ダイアログが表示されたら、「完了」を

クリックして終了します。

電源の投入方法

PICBIG-300は、USB接続にてUSBバスから電源の供給を受けること

ができます。この場合にはPICBIG-300には別途電源を供給する必要

はありません。

しかしPICBIG-300側で多くの電流(およそ350mA以上)を消費する

予定がある場合には、USBバスパワー給電では電力が不足する場合が

あります。この場合には別途外部からACアダプタにて電源を供給する

必要があります。

給電方法はジャンパーソケットJ14によって設定を行います。

なお工場出荷時の設定はUSBバスパワー給電の設定になっています。

■USBバスパワーから給電する場合

PICBIG-300ボード上の"SUPPLY SELECT"ジャンパーピンを

「USB」間にショートします。

■ACアダプタから給電する場合

PICBIG-300ボード上の"SUPPLY SELECT"ジャンパーピンを

「EXT」間にショートします。

※ACアダプタは、DC9V~12Vで500mA以上のものをご用意くださ

い。径は2.1φです。(弊社にて専用ACアダプタを販売中です)

MCUカードの装着

お買い上げ時は、PIC18F8520を搭載したMCUカードがすでに装着さ

れています。

その他のデバイスを使用する場合には、MCUカードを交換します。交換

は下記の手順で慎重に行ってください。

1 PICBIG-300の電源を切断します。

2 現在装着されているMCUカードをゆっくりと上に引き上げます。

3 MCUカードを装着します。

MCUカードには取り付け方向があります。取り付け方向を間違える

とボードやMCUカードが破損しますので下記のようにボード上のシ

ルク印刷に合わせて装着してください。

この突出している部分の方向を合わせて装着してください

Page 5: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

5

PICBIG-300の各部の説明

⑬ACアダプタ接続用ジャック ⑪2系統RS232Cポート

⑩PS/2実験用コネクタ

⑫2行16文字LCD

⑨ADコンバータ

評価用ボリューム

⑧DS18S20用

①46個のI/Oピン ソケット

状態表示LED群

⑦全I/Oピン

外部接続用

ヘッダピン群

②58個のI/Oピン

接続タクトスイッチ群

⑥リセット

スイッチ

③GLCD拡張用/LCD8ビットモード用 ④MCUカードソケット

コネクタ(CN19) ⑤MMC/SDカードスロット

※GLCDは付属していません ※メモリカードは付属していません

※CD-ROMには全回路図がPDF形式で収録されています。回路図をご覧頂くと内部の結線状態がよく分かりますので併せてご覧ください。

①46個全I/Oピン状態表示LED群

PORTA~PORTF(以下RA~RFと記載)の各ビットに接続されたLE

Dです。該当ピンがHighレベルで点灯します。

LEDのカソード側は、基板上のディップスイッチSW2を通してGNDに

接続されています。SW2の各ポートのスイッチをON側にするとLED

が使用できるようになります。OFFで物理的に切断されます。

マイコンのI/OピンにLEDが物理的に接続されていると、LED側に電

流が流れ電圧降下が発生します。よって、ピンをI/Oピンとして使用

する場合、LEDと接続されていると電圧降下により、Hレベル時にVcc

電圧となりません。H-LにてVp-pをVcc-GND電圧で使用したい場

合にはSW2の該当ポートのスイッチをOFF側に設定して、物理的にL

EDからI/Oピンを切り離してください。

②58個I/Oピン接続タクトスイッチ群

J12のジャンパー設定によって、アクティブHigh又はアクティブLow

が選択可能な58個のタクトスイッチです。

J12をVccと刻印された側に設定すると、アクティブHighに、GNDと

刻印された側に設定すると、アクティブLowになります。

押しボタンスイッチの設定は、J12のアクティブLow/High設定と、

J1~J7のポート毎のプルアップ/プルダウンの設定を適切に組み合

わせる必要があります。J12をアクティブLow設定にした場合には、

該当する押しボタンスイッチの接続されたポートは、プルアップして

おく必要があります。下記に例を示します。

Page 6: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

6

例えばRE0の押しボタンスイッチをアクティブLow論理で使用する場

合、定常時(ボタンが押されていない時)はHighレベルにする必要が

ありますので、PORTEのプルアップ/ダウンを設定するJ5のジャン

パーはプルアップ側にセットしておきます。その上でJ12をアクティ

ブLow設定にします。

※PORTAは、ADコンバーターのアナログ電圧入力ピンがあるため、

J1でPORTA全体のプルアップ/ダウンを設定した後、SW1のディッ

プスイッチで各ビット(RA0~RA5)を個別に設定します。

③グラフィックLCD用ピン、キャラクタLCD8ビットモード用ピン

128×64ドットのドットマトリックスLCDを接続するためのソケット

です。また、キャラクタLCDを8ビットモードで使用する場合にもこの

ピンを使用します。

グラフィックLCDを使用する場合には、J9のジャンパーソケットをGR

APHと印刷された方へセットします。LCDのコントラストは、P3のボ

リュームで調整します。内部結線は下記の通りです。

キャラクタLCDを8ビットモードで使用する場合には、J9のジャンパ

ーソケットをCHAR側にセットして、下図のようにピン位置を合わせ

て装着してください。

4ピン空けて装着する

※GLCDは本セットには付属しておりません。

④80ピンMCUカードコネクタ

80ピンのMCUカードが装着できます。

装着時には、MCUカードの突起部分と、PICBIG-300ボード上のシル

ク印刷の突起部分の方向が一致するように挿入してください。挿入

方向を誤ると、機器を破損しますので十分ご注意ください。

なお、MCUカードの脱着時は必ずPICBIG-300の電源を切断した状

態で行ってください。

⑤MMC/SDカードスロット

MMC又はMMCと電気的な互換性のあるSDカードを、SPIモードで制

御してアクセスの実験ができます。

メモリーカードのCSピン、SDIピン、SCKピン、SDOピンはそれぞれ

10KΩの抵抗でプルアップされ、ディップスイッチSW3を通してマイ

コンのピンに接続されています。

メモリーカード用の電源3.3Vは、PICBIG-300内部で作っています

ので、そのままメモリーカードを挿入すれば使用することができます。

内部結線は下記のようになっています。

SDI信号線→RC4 / SCK信号線→RC3 / SDO信号線→RC5

CS信号線→RJ6

⑥リセットスイッチ

PICマイコンのMCLRピンと接続されており、スイッチを押すとPICマ

イコンにハードウエアリセットがかかります。

定常時は10KΩの抵抗にてプルアップされています。

⑦全I/O外部接続用ヘッダピン群

全I/Oピンをこの部分のヘッダピンから取り出せます。

RA~RGまでポート単位でプルアップ/プルダウンの設定がJ1~J7

のジャンパー設定によって行えます。Upと印刷された方にソケットを

セットするとプルアップに、Downと印刷された方にソケットをセット

するとプルダウンになります。

PORTA(RA)は、A/Dコンバーター用のアナログ電圧入力として使用

されることがあるため、ビット単位でプルアップ/ダウンの抵抗に接

続するかを設定できます。RA全体のプルアップ/ダウンをJ1で設定

した後、個別にディップスイッチSW1にて、J1の設定を無効にする

か、有効にするかを設定できます。

⑧DS18S20ソケット

オプションの半導体温度センサIC、DS18S20を装着するためのソケ

ットです。

J13のジャンパーによって、DS1820のDQピンをRA5に接続できま

す。なおDQピンは、10kΩの抵抗でプルアップされています。使用し

ない場合には、ジャンパーソケットは外しておきます。

Page 7: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

7

⑨A/Dコンバーター評価用ボリューム

A/Dコンバーター評価用のボリュームです。J10ジャンパーでRA2(A

N2)、J11ジャンパーでRA3(AN3)と物理的に配線を接続するかどう

かを設定できます。

ボリュームは10KΩで、J10又はJ11で設定したピンに0V~5Vまで

の電圧を印加することができます。

A/Dコンバーターを使用する場合には、アナログ入力として使用す

るピンのプルアップ/ダウン設定をディップスイッチSW1でOFFに設

定します。例えばP1のボリュームでADコンバーターの実験をする場

合には、J10をジャンパーソケットでショートし、SW1のRA2をOFF側

に設定します。

⑩PS/2ポート

キーボードやマウスなどでよく使用されるPS/2ポートの実験をする

ためのポートです。

PS/2のCLKピンはJ16を通してRC1に、DATAピンはJ15を通して

RC0に接続されています。両ピンは10kΩの抵抗によりプルアップさ

れています。

接続を有効にするには、J16及びJ15のジャンパーをセットします。

使用しない場合には、ソケットをはずしておきます(オープンに設

定)。なお、PS/2デバイスにはPICBIG-300側から電源電圧+5Vが

供給されます。

⑪2系統RS-232Cポート

レベル変換IC搭載のRS232Cポートを2系統搭載しています。

左側のコネクタ(CN11)は、"A系統"です。

右側のコネクタ(CN12)は、"B系統"です。

A系統・B系統それぞれのTXピン、RXピンはディップスイッチSW3に

よって物理的にマイコンのI/Oピンと接続するか、切り離すかを選択

できます。スイッチをON側にセットすると、配線が接続されます。

・A系統 → TXピンはRC6に、RXピンはRC7に接続されます。

・B系統 → TXピンはRG1に、RXピンはRG2に接続されます。

PIC18Fシリーズの中でもハイエンドなデバイスでは、内蔵UARTを2

系統搭載しています。

内部結線は下記のようになっています。

RS232C通信を使用しない場合には、SW3の1~4番のスイッチをO

FF側に設定しておきます。

⑫ACアダプタジャック及び電源セレクトジャンパ

ACアダプタはDC9V出力で2.1φのものが使用できます。センター極

性は問いません。給電方法はJ14によって設定します

⑬2行16桁液晶ディスプレイユニット(4ビットモード)

2行16桁のLCDです。データ線にD7~D4の4ビットを使用する4ビッ

トモードで使用できます。コントラスト調節は、P4ボリュームで行うこ

とができます。

LCDのデータピンD4~D7はそれぞれPICマイコンのRH4~RH7に、

EnableビットはRH3に、RSピンはRH2に接続されています。

Page 8: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

8

書き込みソフトウエアの使用方法

付属のPICプログラマーの使い方を紹介します。

PICプログラマーは、MPLAB等で作成したHEXファイルをPICマイコン

へ書き込む際に使用するソフトウエアです。

■PICプログラマーの起動

PICプログラマーは、Windowsのスタートメニュー又はデスクトップに

作成されたショートカットから起動できます。

スタートメニューから起動する場合には、

"スタート"→"プログラム"→"Microtechnica"→"PICD500EX3プロ

グラマー"の順でクリックして起動します。

■画面の概要

コンフィギュレーションレジスタ設定 コード保護機能設定 デバイス設定プルダウン

操作ボタン

ステータスバー

■操作の順番

次の順番でHEXファイルを書き込みます。

1 デバイス設定プルダウンより、書き込むデバイスを選択します。

2 書き込むHEXファイルを読み込みます。

操作ボタンの"Load HEX"ボタンを押します。ダイアログが表示さ

れますので、ファイルを選択します。

→ファイルが読み込まれるとステータスバーに、ファイル名が表示

されます。

※同じファイルを再度ロードする場合には、いちいち上記のように

ファイルを指定しなくても、"Reload HEX"ボタンを押すことで再読

込ができます。同じファイルを何度もデバッグして書き込む場合な

どに便利です。

3 続いてコンフィギュレーションレジスタの設定を行います。

コンフィギュレーションレジスタは、プログラムを書き込む時にだけ

しか設定できないPICマイコン全体の動作や基本的な設定などを

行う特殊なレジスタです。

コンフィギュレーションレジスタの内容はデバイスに搭載される機

能により変わるため、設定項目もデバイスにより様々です。ここでは

基本的な設定項目についてのみ説明します。

■Oscillator

LP・・・低電力水晶 200KHz以下

XT・・・水晶発振子 4MHz以下

HS・・・高周波水晶、セラミック発振子 4MHz~20MHz

RC・・・RC発振(5KΩと20pFの組み合わせで約1MHz)

EC・・・外部発振子よりTTLレベルのクロック注入

HS-PLL・・・HS+PLL内部PLLにてクロックアップ

INTRC(IN)・・内部発振、外部に発振子を取り付ける必要なし

Page 9: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

9

■Watchdog Timer Enable

ウォッチドッグタイマのOn/Offを設定します。通常はDisabledに設定

します。

■PowerUp Timer

デバイスの電源投入時には、クロックが不安定で動作が不安定にな

ります。この機能を有効にすると、電源投入時一定時間リセットをか

け続けることで、電源が安定した後にクロック動作を開始する機能

です。通常はEnabledに設定します。

■Brown Out Detect

一時的な電圧降下の時にハードウエアをリセットする機能です。

PowerUp Timerが有効の時のみ使用できます。

■Low Voltage Programming

低電圧書き込み機能を使用するかどうかを設定します。使用しない

場合には必ず "Disable" に設定してください。

■Processor Mode

通常はMicrocontrollerの設定を使用します。Microprocessorに設定

するとオンチッププログラムメモリーは使用せずに、全プログラムメ

モリーが外部にマッピングされます。

[注意]MCUカードにはあらかじめ10MHzの水晶発振子が搭載されて

います。よってOscillatorの設定は、10MHzで使用する場合のHS設定

か、内蔵PLLによる周波数逓倍を使用するHS-PLL Enabledになりま

す。なお、HS-PLLを有効にした場合、4倍の周波数を内部で生成する

ため動作クロックは40MHzとなります。

4 必要に応じてコード保護機能も設定します。

コードプロテクションを有効にすると、一度書き込んだHEXデータ

は読み出せなくなります。コードを不正にコピーされることを防止

できます。通常は、"None"及び"Write protection Off"に設定しま

す。

5 設定が完了したら書き込みを行います。

PICBIG-300本体の"USB LINK"の黄LEDが点灯していることを確

認してから操作ボタンの"Write"ボタンをクリックします。

書き込みを開始します。

■その他の機能

・Read機能

→PICマイコンからデータを読み込みます。

読み込んだデータは、"Code"ボタンで閲覧できます。またメニュ

ーバーの"File"→"Save HEX"で保存できます。

・Verify機能

→現在読み込まれているHEXファイルの内容と、PICに書き込まれ

ているプログラムの内容が一致しているか検証します。

・Blankチェック機能

→現在装着されているデバイスのプログラムメモリがブランク

(空)かチェックします。

・Erase機能

→現在装着されているデバイスのプログラムメモリの内容を消去

します。

MicroCode Studio(Plus)から連動させて

PICBIG-300のソフトウエアを動作させる設定方法

弊社販売中のPIC用BASICコンパイラ、PicBasic Pro Compiler(以下P

BPと記載)用の統合開発環境、MicroCode Studio(Plus)から、PICBIG

-300のソフトウエアを連動させて動作させるための設定です。

MicroCode Studio(Plus)(以下、MCSと記載)には、コンパイルとそのコ

ンパイルの結果、できあがったHEXファイルを書き込むためライティン

グソフトウエアを自動的に立ち上げる機能が搭載されています。

ここで設定を行うことで、MCS上で"Compile and Program"ボタン又

は、"ICD Compile and Program"ボタンを押すと、コンパイル後自動的

にPICBIG-300の書き込みソフトウエアが起動します。また、この時コ

ンパイルされたHEXファイルが自動的に読み込まれ、デバイスの型番も

自動的に設定されます。PBPをお使いの方は、ここで設定を行うことに

よってMCS上から連携動作をさせることができるようになります。

1 MCSを起動します。メニューバーの"View"→"Compile and Progra

m Options..."をクリックして開きます。

2 "Programmer"タブへ移動します。

3 "Add New Programmer"をクリックします。

4 "Create a custom programmer entry"にチェックを入れて、"Next"

をクリックします。

5 "Display Name"の欄に "PICBIG-300" と入力して"Next"をクリッ

クします。

6 "Programmer Filename"の欄に "PICFLASH.exe" と入力して"Nex

t"をクリックします。

7 PICBIG-300用の書き込みソフトウエアがインストールされている

ディレクトリを手動で設定します。

"Find Manually"ボタンをクリックします。ダイアログが表示されま

すのでPICBIG-300がインストールされているディレクトリを指定

します。

8 "Parameters"の欄に、下記の文字列を記述します。文字列には大文

字小文字が区別されます。またスペースの位置など間違えないよう

に注意して入力してください。

-pPIC$target-device$ -f"$hex-filename$"↑

半角スペース1つ

-fのハイフンの前には半角スペースを1つ入力します。

-f の後ろの $hex-filenames$ の部分は必ず " ダブルクォーテ

ーションで囲みます。

9 入力が完了したら"Finish"をクリックして終了します。

Page 10: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

10

主な仕様

電源電圧: USBバスパワー給電時 DC5V

ACアダプタ給電時 DC9V

給電方法: USBバスパワー又はACアダプタ

USB規格: Ver、2.0対応

プログラム転送方式: シリアル通信

対応OS: Windows2000/XP/Vista

対応デバイス: PICマイコン 80ピンMCUカード形式

生産国: セルビア/中国

サポート情報

弊社では、PICBIG-300のサポートを行っております。以下のいずれか

の方法でご質問をお寄せください。

■FAX番号 03-3700-3548

■電子メール [email protected]

なお、他社製品に関することや自作回路に関するご質問にはお答え致

しかねますのであらかじめご了承ください。

ソフトウエアはアップグレードされることがあります。アップグレードさ

れると対応デバイスが増えたりバグが修正されたりします。

アップグレードの情報などは弊社のwebページにてお知らせ致しますの

で、弊社webページを定期的にご確認ください。

http://www.microtechnica.net/

PICマイコン用の統合開発環境、MPLABはマイクロチップ社製のソフト

ウエアです。バージョンアップ等の情報についてはマイクロチップ社の

ホームページより告知されますので、下記ページを定期的にご確認くだ

さい。

http://www.microchip.com/ (英語サイト)

マイクロテクニカ

〒158-0094 東京都世田谷区玉川1-3-10

TEL: 03-3700-3535 FAX: 03-3700-3548

(C)2007 Microtechnica All rights reserved

以下はチュートリアルです

Page 11: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

11

PICマイコンの概要

PICマイコンは、数あるマイコンのうちの1つでアメリカのマイクロチッ

プテクノロジー社が開発しました。"Peripheral Interface Controller"

の略で、マイコンの中でも特にワンチップマイコンと呼ばれています。

これはその名の通り、ワンチップ、すなわち1つのIC本体の中にほぼす

べての機能が詰め込まれていることをいいます。これまでの多くのマイ

コンは、プログラムを格納するプログラムメモリや、作業用の一時的な

メモリスペースであるRAMなどが内蔵されていなかったため、外部に

取り付ける必要がありました。しかしPICマイコンはマイコンの動作に

必要な機能をワンチップ内にすべて入れてあり、ユーザーインターフェ

イスであるI/Oポートだけが外部端子に並んでいるので、プログラムが

書き込むとすぐに動作を開始するという特徴があります。

PICマイコンには多くの種類があり今では80種類以上が生産されてい

ます。ピン数も本PICBIG-900で扱う80ピンのものや、8ピン~40ピ

ンといった小タイプのものまで多種多様です。

また 近では、16ビットマイコンとしてPIC24シリーズや、マイクロコン

トローラー機能の他にDSP機能を搭載したdsPIC30FシリーズやdsPI

C33Fシリーズなどがリリースされており、様々なラインナップが揃って

きています。

PIC18Fシリーズは8ビットPICマイコンのシリーズで 上位にあたるM

PUです。命令も16ビット長に拡張されており、PIC16シリーズと比べメ

モリー構造なども大幅に改良されています。特に本PICBIG-300で使

用できる80ピンの大型デバイスでは、プログラムメモリーやRAMが大

幅に拡張され、USARTも2系統搭載するなど高機能です。

PICマイコンの構造

PICマイコンの基本的な構造すなわちアーキテクチャは、他の一般的な

コンピュータのノイマン型アーキテクチャと異なり、"ハーバードアーキ

テクチャ"という構成を採用しています。

ハーバードアーキテクチャの特徴は、プログラムを格納するメモリ(プ

ログラムメモリ)とデータを格納するメモリ(RAM=ファイルレジスタや

データメモリと呼びます)が別々になっており、それぞれのメモリから、

読み出したり書き込んだりするためのデータの通信路であるデータバ

スが別々になっているという点にあります。

このアーキテクチャのメリットとしては、データバスを別々にすることで

プログラムの命令が何ビットの長さになっても、1回でメモリから読み

出すことができるため、簡単な構成でかつ高速に命令を実行できる点

にあります。他のコンピュータ(ノイマン構造)では、データ長が8ビット

ROM

プログラムバス

データバス

CPU

タイマー

RAM

入出力ポート

割込み制御

マイコンの内部

単位であることが一般的なため、命令も8ビットの倍数とせざるを得な

くなり、1つの命令が複数のバイト構成となるために、メモリからの呼び

出し1回だけでは命令全体が読み出すことができなかったり、データと

の切替えが都度必要だったと効率が悪くなります。こうなると当然複雑

な内部構成となってしまい処理も遅くなってしまいます。

PICマイコンでは、ハーバードアーキテクチャの採用により、12ビット、

14ビット・16ビットの3種類のモデルを作り、効率のよい命令実行を行

っています。

プログラム大まかな実行の流れとしては、命令がROM(プログラムメモ

リ)から呼び出され、CPU部分で実行されます。その命令の内容により

データがRAM(データメモリ)から呼び出されCPUで演算されて結果が

またRAMに格納されたり、I/Oポートにデータが出力されたりします。

●プログラムメモリ(ROM)

プログラムそのものの命令を記憶する場所です。プログラムメモリと

呼ばれたり単にROMと呼ばれたりします。ここにプログラムを書き

込むためには専用のPICマイコンライターが必要となります。命令実

行中にはここの値を書き換えることはできません。

●プログラムカウンタ

プログラムの実行順序を制御するカウンタ。このカウンタの内容が

指しているアドレスのプログラムメモリにある命令が次に実行され

る命令となります。

●ファイルレジスタ(データメモリ)

ファイルレジスタはデータメモリと呼ばれたり単にRAMと呼ばれたり

と、名称が混同されていますが、厳密には違いがあります。

ファイルレジスタは2つの領域に別れていて、1つは汎用のデータ格

納メモリエリアでRAMと呼ばれ、プログラム内で使う変数領域として

使用します。もう一つは特別なレジスタ領域で、一般的に"SFR"(Spe

cial Function Register)と呼ばれ、コンピュータ内の動作を決める

色々な条件を設定したり、動作状態を知ることができます。

よって、正確にはファイルレジスタは、RAMとSFRから構成されてい

ると理解しましょう。

●Instruction Decode and Control

プログラムカウンタが指すプログラムメモリ内の命令が読み出さ

れ、ここで命令種類の解読と処理がなされます。その結果、各種の制

御やALU内で演算をしたりすることで命令が実行されます。

●MUX(切り替え部)とALU(算術演算部)

各命令の指示に従って各種レジスタやWレジスタの内容との演算が

なされる場所で、いわゆるコンピュータの中の計算器です。演算結果

は再度Wレジスタやレジスタに格納されたりI/Oポートやタイマ、プ

ログラムカウンタなどに格納されます。

●Wレジスタ(W reg)

演算をするときに一時保管用に使うレジスタで、演算の時の中心と

なって働きます。

●入出力ポート(I/Oポート)

内部のデータを外部に出すためのポートで、これがPICマイコンピン

に直結されています。

そのためVccが5Vの時は、コンピュータがポートに"1"のデータを出

力すると、ICの対応するピンが"High"レベルの状態になり"0"を出力

すると"Low"の状態となります。

Page 12: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

12

PICマイコンの動作概要

プログラムは常に0番地からスタートします。電源投入時やハードウエ

アリセットがかけられた状態がこれに相当します。

プログラムの進行は、プログラムカウンタによって制御されています。

プログラムカウンタの指し示す値が実行される番地を示しています。リ

セット時プログラムカウンタは0になり、0番地の命令より順番に実行

されていきます。1つの命令が読み出されると、演算ユニットALUにて

演算や処理が行われます。必要に応じてデータメモリからデータを読

み出したり、書き込んだりも行います。

演算ユニットはプログラム側から見るとWレジスタの形で存在している

点に注意が必要です。I/Oポートは、データメモリ上に割り当てられて

いてメモリ操作によって、アクセスできます。この構造のことを特に

"メモリマップドIO"と読んでいます。すなわち、メモリに0や1の値を書

き込むことで直接I/OポートがLレベルになったりHレベルになったりし

ます。

PICマイコンはRISC(Reduced Instruction Set Computer)タイプのマ

イコンなので、1命令1クロックで動作します。クロックとは外部から入

力されたある一定の周期の矩形波パルスで、通常は水晶発振子やセラ

ミック発振子といった専用の発振子を用いてクロックを生成します。PI

Cマイコンではデバイスによって20MHz~40MHz程度のクロックを扱

うことができます。

プログラムメモリから命令を取り出すことを"命令をフェッチする"とい

います。PICマイコンでは、1クロック毎に命令はフェッチされています。

フェッチされた命令は、インストラクションデーコーダによって解析され

ます。

PICBIG-300のチュートリアル ~アセンブラ言語編~

アセンブラ言語編では、PICマイコン用開発環境のMPLABを使用しな

がら、アセンブラ言語で簡単なプログラムを作り、PICの開発方法及び

PICBIG-300の使い方を学習しましょう。

本チュートリアルではPICBIG-300に標準で付属しているPIC18F852

0を使用します。

■チュートリアル1 ~LEDを点灯させるプログラム~

PORTB(以下、RBと記載)の8つのLED(RB0~RB7)を交互に点灯させ

るプログラムを作ります

チュートリアルを始める前に、PICBIG-300がUSB経由でパソコンと

接続され、必要なソフトウエア類がすべてインストールされている状態

であることを確認してください。

①MPLABでプログラムを作りましょう

1 MPLABを起動しましょう。

"スタート"ボタン→"プログラム"→"Microchip MPLAB IDE"→"MP

LAB"の順でクリックします。MPLAB上でプログラムの開発やアセ

ンブルを行います。

2 初にプロジェクトを作成しますので、メニューバーの"Project"か

ら"Project Wizard"を選択します。

ダイアログが表示されますので、"次へ"をクリックします。

3 デバイスの種類を指定しますので、Deviceのプルダウンで

"PIC18F8520"を選択してください。

4 次のダイアログでは、"Active Toolsuite"から"Microchip MPASM

Toolsuite"を選択します。

"Toolsuite Contents"の部分は"MPASM Assembler[mpasmwin.ex

e]"を選択しておきます。他の部分はそのままでかまいません。

5 "Project Name"には任意のプロジェクト名が付けられます。ここで

は"LEDTEST01"と付けましょう。

"Project Directory"では任意に指定できますが、チュートリアルで

は、C:\PICPRJ ディレクトリを作成して保存します。

6 次の"Step Four"では何もせず"次へ"を押します。

次のダイアログでは、"完了"をクリックして完了します。

7 完了すると、下記のような画面が表示されていることを確認してく

ださい。

8 ではプログラムを記述しましょう。メニューバーの"File"から"New"

を選択します。新しいウインドウが開きます。このウインドウにプロ

グラムを記述していきます。

9 今回は、PORTBの全ビットを利用して、交互に点灯させるプログラ

ムを作ります。PICBIG-300では、該当ピンがHighレベルでLEDが

点灯します。Highを1、Lowを0と表すと、10101010 と点灯させる

ことになります。次のようにプログラムを入力しましょう。

Page 13: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

13

プログラムは通常大文字で記述するのが一般的です。

タブキーを用いて、見やすいプログラムを記述してください。

タイプミスは後から修正に時間がかかりますので、十分注意しなが

ら入力しましょう。

プログラムの解説は後で行います。ここではとにかく入力して、動作

する様子を確認します。

10 プログラムが書き終わったらメニューバーの"File"から"Save as"

をクリックします。

名前を付けて保存しますので、保存する場所を"C:\PICPRJ"に指定

し、ファイル名を"LEDTEST01.ASM"と入力して"保存"ボタンを押し

ます。

11 プロジェクトファイルに先ほどの"LED01.ASM"を登録します。

"LEDTEST.mcw"と表示されたウインドウ内の"Source Files"を右

クリックしてメニューから"Add Files"をクリックします。

12 ダイアログが開きますので"LEDTEST01.ASM"を選択して"開く"ボ

タンを押します。これでASMファイルが登録されました。

13 メニューバーの"Project"から"Make"をクリックします。

プログラムが短いのですぐにアセンブルは終了します。

MPLABを使用していると、アセンブルに際してMPASMを使用して

いることを意識しませんが、実際にはMPASMというソフトウエアが

アセンブルしています。アセンブルが終了して、"Output"というダイ

アログが表示されましたら、一番下をみてください。

"BUILD SUCCEEDED"と表示されていれば正常に完了です。

この作業が終わると、C:\PICPRJディレクトリには、いくつものファ

イルが作られますが、これらの多くは現時点では使用しません。

PICマイコンに書き込むファイルは、拡張子がHEXの"LEDTEST01.

HEX"です。

アセンブルが終わり、PICマイコンに書き込むHEXファイルが作れた

ので、次は実際にPIC18F8520にファイルを書き込んで動作させて

みましょう。

②PICにプログラムを書き込み動作を確認しましょう

1 PICBIG-300プログラマを起動して書き込みを行います。

デスクトップのショートカット又はスタートメニューからPICBIG-3

00プログラマを起動してください。

2 初にデバイスを設定します。

プルダウンから"PIC18F8520"を選択してください。

3 先ほどアセンブルして作ったファイルを読み込みます。

"Load HEX"ボタンを押します。ダイアログが表示されますので、

"LEDTEST01.HEX"を選択して開きます。

ステータスバーにディレクトリが表示されていることを確認します。

4 コンフィギュレーションレジスタの設定を行います。

コンフィギュレーションレジスタは、HEXファイルを書き込む際にの

み設定ができるPICマイコンの動作を設定する特殊なレジスタで

す。次のように設定してください。

設定内容は下記の通りです。

Oscillatorは10MHzの水晶発振子ですのでHSに設定します。

WatchdogTimerは使用しませんので、Disabledに設定します。

プロセッサモードは、Microcontrollerを選択します。

LowVoltage Programは使用しませんので、Disabledに設定します。

5 書き込みを行う前に、PICBIG-300の設定を確認します。

ディップスイッチの設定を確認します。SW2のPORTBのスイッチが

ON側になっていることを確認してください。

6 実行します。"Write"ボタンを押します。

書き込みが始まりますので、数秒待ちます。書き込みが完了すると、

LED群のRB0~RB7が交互に点灯していることが確認できます。

Page 14: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

14

③プログラムの仕組みを見てみましょう

"List P=18F8520、 R=DEC"

これは使用するデバイスの宣言です。使用するデバイスの種類は "

P=" に続けて記述します。

R=DECは、今後プログラム中で記述する数字は特に指定を記述し

ない限りDecimalすなわち10進数であるということをあらかじめ宣

言しています。

"CLRF PORTB" の CLRF命令は指定したポートやメモリの内容

を0にクリアする命令です。

書式は 「CLRF アドレス」 です。ここではPORTBレジスタを一度

クリアして0に初期化しています。

"CLRF TRISB" では先ほどのCLRF命令でTRISBレジスタの内容

を0に初期化しています。

TRISレジスタはポートの入出力の方向を設定します。すなわちI/O

ポートを入力として使用するのか、出力として使用するのかを設定

するレジスタです。ここに"1"を設定すると対応するビットが入力に

"0"を設定すると対応するビットが出力に設定されます。

ここでは、PORTBすべてを出力にしています。

"MOVLW B'01010101'" は MOVLW命令を使用して作業用の

特殊なレジスタ、Wレジスタに値を書き込んでいます。 PICではある

レジスタに値を書き込む場合、直接書き込まずに一度、Wレジスタ

という特殊なレジスタに値を格納して、ここを経由してレジスタに値

を書き込みます。

B'01010101' の 「B' '」 は2進数表記の際に使います。アセンブ

ラでは数値表現に際して下記のような決まりがあります

MOVLW命令は、Wレジスタに定まった値をセットします。値は必ず8

ビットの範囲内で指定します。

"MOVWF PORTB" はMOVWF命令を用いてWレジスタの値を、

PORTBレジスタに転送しています。

MOVWF命令はWレジスタに現在格納されている値を指定したアド

レスに転送するMOVE命令です。これによって、Wレジスタの値が

PORTBに転送されて、LEDが「01010101」という数値通り点灯し

たというわけです。

LOOP GOTO LOOP "LOOP"はラベルです。任意の文

字列(予約語以外)を付けられます。ここではGOTO命令を使って無

限ループを作りプログラムを停止させています。GOTO命令は指定

したアドレスや指定したラベルにジャンプさせることのできる命令

です。 後にENDをつけて終了します。

PIC16Fシリーズをアセンブラ言語で開発されたことがある方ならバン

クの切り替えがないことに気づくと思います。PIC18Fシリーズでは、バ

ンクという概念がプログラム上からなくなりました。PIC16Fシリーズ

などでは、バンクをSTATUSレジスタによって切り替えながらプログラ

ミングをしていましたが、PIC18Fシリーズではその作業が必要なくなり

ました。

■チュートリアル2 ~スイッチ入力を判定するプログラム~

このチュートリアルではピンの状態を入力として使用する方法を紹

介します。RF0のタクトスイッチが押された時、RB0~RB7のLEDを

全点灯させます。RF1のタクトスイッチが押されると全消灯させま

す。スイッチはアクティブLowとします。

次のように記述しましょう。なお、新しいプログラムですので、プロジ

ェクトを 初から作り直したほうがよいでしょう。先の手順を参考に

して新しいプロジェクトを作ってください。

~PICBIG-300ボード本体の設定~

このプログラムではタクトスイッチを使用します。後ほど解説があり

ますが、ここで使用されているポート状態判定のBTFSC命令は、アク

ティブLow(スイッチを押された時にLレベル、定常状態ではHレベル)

論理です。その設定をディップスイッチとジャンパーで設定します。

まずJ12のジャンパーをGND側にジャンパーしてください。これでボ

タンが押された時、PICマイコンのポートはLowレベルになります。

次にPORTFをプルアップします。J6のジャンパーソケットをPull-Up

側にショートしてください。

次にPORTB以外はLEDを点灯させる必要がありませんので、ディッ

プスイッチSW2のPORTBのスイッチのみをONとして、その他のポー

トすべてOFF側にします。

~プログラムの解説~

MOVLW B'00000011'

MOVWF TRISF

TRISFレジスタの入出力方向を設定しています。RF0とRF1が入力

になりますので、該当ビットを1として入力に設定します。

List P=18F8520, R=DECINCLUDE "P18F8520.INC"

CLRF PORTBCLRF PORTFCLRF TRISBMOVLW B'00000011'MOVWF TRISFCLRF ADCON0MOVLW B'00001111'MOVWF ADCON1

BUT1 BTFSC PORTF,0GOTO BUT1

BLINK MOVLW B'11111111'MOVWF PORTB

BUT2 BTFSC PORTF,1GOTO BUT2

DELLED CLRF PORTB

GOTO BUT1

END

Page 15: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

15

CLRF ADCON0

MOVLW B'00001111'

MOVWF ADCON1

PIC18F8520のADコンバーターは、RF0をAN5、RF1をAN6として

アナログ電圧の入力ピンとして使用します。電源投入時はアナログ

入力モードとなっているため、そのままではデジタルI/Oとして使用

できません。そこで、ADコンバーターのモードを設定するADCON0と

ADCON1に値を設定して、全ピンをデジタルI/Oとして使用できるに

しています。

ADCON1の値を00001111とすると、全ピンがデジタルI/Oとなり

ます。設定についての詳細はデータシートを見ると詳しくかかれてい

ますので、こちらを参照してください。

BTFSC PORTA、5 のBFTSC命令は指定したアドレスの該当ビ

ットの状態を判定し、ビットが"0"ならば次の命令をスキップします。

ビットが"1"ならば次の命令を実行します。

ここでは、タクトスイッチをアクティブLow設定にしていますので、ス

イッチが押されると、次の行のGOTO文が飛ばされ、RBのLEDが全

点灯したり全消灯したりします。

■チュートリアル3 ~ADコンバーターの結果をLEDに表示する~

PICBIG-300に標準で装着されているPIC18F8520には、10ビット

のADコンバーターが搭載されています。ここでは、ADコンバーター

を使用したプログラムを紹介します。

PIC18F8520のADコンバーターは16入力でサンプルホールド機能

を搭載しています。ADコンバーターは逐次比較型で高速変換ができ

ます。サンプリングのクロックは、PICマイコンを動作させているクロ

ックの他にPICに内蔵されている専用の発振回路を選択することも

可能です。通常は、内蔵されている専用の発振回路を選択します。

ADコンバーターで計測対象となる電圧は、Vccを 高電圧とするの

か、Vref端子に印加された電圧を 高電圧とするのかを設定できま

す。Vccをスケールの 大に設定すると、仮にデバイスが5Vで動作し

ていた場合には、0V~5Vが計測対象の範囲となります。この場合10

ビットの変換精度がありますので1ビットあたりは、4.88mVの分解能

となります。

PICBIG-300では、2系統のボリュームがPICマイコンにでき、0V~5

Vの範囲で電圧を可変できます。

ADコンバーターを使用するには、主に4つのレジスタを使用します。

ADCON0、ADCON1、ADRES、ADRESLです。

ADRES及びADRESLにはAD変換の結果が格納されます。PICマイコ

ンのレジスタは8ビット幅ですが、AD変換の結果は10ビットであるた

め1つのレジスタでは、2ビット分足りません。そこで、2つのレジスタ

を使い、ADRESLは下位8ビット、ADRESレジスタは上位2ビットと

なります。

本チュートリアルでは、RA2(AN2)に印加されている電圧値を読み込

み、AD変換してその結果をPORTCとPORTBのLEDを使って表示す

るプログラムを作ります。

次のようにプログラミングしてみましょう。

~PICBIG-300ボード本体の設定~

PICBIG-300本体の設定を下記のようにしてください。

ADコンバーター用可変抵抗器P1の上にあるJ10のジャンパーソケッ

トを、ショートします。RA2(AN2)が有効になります。

ディップスイッチSW1をすべてOFF側にします。

ディップスイッチSW3のPORTBと、PORTCをON側に設定し、それ以

外のポートはすべてOFF側らセットします。

~プログラムの解説~

ADCON1の値をB'00001100'に設定 しています。

ADCON1は、アナログ入力ポートを選択するレジスタです。ここでは、

AN2をアナログ入力ポートとして使用できるよう設定しています。ま

た、基準電圧のVrefをVddに設定しています。

なお、ADコンバーターを使用する場合には、必ずADCON1レジスタか

ら先に設定し、その後にADCON0レジスタを設定します。順番を間違

えると動作しませんので注意してください。

ADCON2の値をB'10000000'に設定 しています。

ADCON2は、10ビットのADコンバーターの結果のうち上位2ビットを

右詰にするか、左詰にするかを設定しています。上記設定では右詰に

設定しました。

ADCON0の値をB'00001001'に設定 しています。

ADCON0はサンプリング用クロックの発振源の選択・アナログチャン

ネルの選択・AD変換の動作状態の通知・AD変換の有効/無効を設定

するレジスタです。ここでは、クロックは内蔵専用発振回路・アナログ

チャンネルはRA2(AN2)に設定しています。

List P=18F8520, R=DECINCLUDE "P18F8520.INC"

MOVLW B'00000100'MOVWF TRISAMOVLW B'00001100'MOVWF ADCON1MOVLW B'10000000'MOVWF ADCON2MOVLW B'00001001'MOVWF ADCON0CLRF TRISBCLRF TRISC

ADMAINBSF ADCON0,1

ADTIMEBTFSC ADCON0,1GOTO ADTIME

MOVF ADRESH,0MOVWF PORTCMOVF ADRESL,0MOVWF PORTB

GOTO ADMAIN

END

Page 16: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

16

BTFSC ADCON0、1 ADCON0レジスタのビット1が1の時、ADコン

バーターは動作を続けます。ADCON0のビット1が0になると、変換完

了を表します。ここでは0になるまで処理を繰り返します。

MOVF ADRESH、0 ADRESHはAD変換の結果のうち上位の2ビッ

トを格納するADRESレジスタの内容をWレジスタに転送しています。

同様にした、ADRESLの値もWレジスタに転送し、それぞれPORTCとP

ORTBに転送することで、結果をLEDに出力しています。

PICBIG-300のチュートリアル ~C言語編~

■C言語とは

C言語は、ANSIという団体によって規格化された高級言語です。高級言

語とはアセンブラ言語のように機械語に近いレベルの開発言語ではな

く、より人間がわかりやすい言語体系の開発言語を指します。C言語を

導入することでより簡単に、合理的にPICマイコンの開発ができるよう

になります。

C言語では様々なデータ型を扱えるほか、データを指し示すポインタや

配列、関数などが使用でき、より高度なプログラムを記述することがで

きます。

本PICBIG-300に付属のmikroCコンパイラーはANSI規格に準拠したP

ICマイコン用のC言語です。本製品に付属のCD-ROMに収録のmikroC

はPIC12Fシリーズ、PIC16Fシリーズ、PIC18Fシリーズに対応していま

す。体験版のため、開発できるプログラムのコードサイズが 大2Kワー

ドに限定されていること以外、すべての機能が使用できます。mikroCが

気に入れば、優待価格にてコード制限のないフル機能版を入手するこ

とができます。詳しくは別紙をご覧ください。

mikroCは、一般的なC言語としての機能の他にPICマイコンの機能をフ

ルに使用できるよう様々な組み込み関数を搭載しています。組み込み

関数を使用することで、LCD制御やADコンバーターの操作、UARTなど

様々な機能を簡単に実現できます。PICマイコンの開発に便利な様々な

組み込み関数が搭載されています。また、ICD機能(インサーキットデバ

ッグ)が搭載されており、実機でプログラムを動作させながらプログラ

ムの挙動を観察したり、1行ずつプログラムを実行させるステップ実行

ができるなど、かなりの高機能を実現しています。

C言語チュートリアル ~はじめに~

では、早速付属のmikroC Cコンパイラーを使ってC言語でプログラムを

作って実際にPICBIG-300のボード上で動作させてみましょう。

本マニュアルではC言語の基本から解説することはできませんので、C

言語の基本については専門書籍をご参照ください。

■開発環境の設定

では 初にmikroC Cコンパイラーの開発環境を設定しましょう。

1 mikroCを起動します。

"スタート"ボタン→"プログラム"→"Mikroelektronika"→"mikroC"→

"mikroC"の順でクリックして起動します。

2 起動すると、開発画面が表示されます。

初期設定では、背景色が黒で見にくいので色設定を変更しましょう。

メニューバーの"Tools"→"Options"をクリックします。

3 Preferencesという画面が表示されます。

左側のツリーメニューから"Colors"をクリックします。

4 画面中央上部にある"scheme"プルダウンから"mikroDream"をクリッ

クします。

開発画面の背景色が白色になります。設定したら"OK"ボタンを押し

て完了します。

Page 17: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

17

■mikroCの開発環境画面

メニューバー コードエクスプローラー ツールバー

コードエディターウインドウ

メッセージウインドウ マルチウインドウタブ

チュートリアル① ~RB0の制御とボタン処理、変数の使い方~

では早速プログラムを作って開発を体験してみましょう。

■プログラムの作成とコンパイル、実行

8ビットの変数を用意して、そこに入れた値を2進数でPORTBに出力す

るプログラムを作ってみましょう。変数を2つ用意して、外部のスイッチ

入力によって、どちらの変数の値をRBに出力するのか指定できるよう

にしてみます。

デバイスは標準で付属しているMCUカードに搭載のPIC18F8520を使

用することにしましょう。

1 新規にプロジェクトを作成します。

メニューバーから"Project"→"New Project"をクリックします。

2 New Projectウインドウが表示されます。ここで使用するデバイス

の型式や動作周波数の設定、コンフィギュレーションビットの設定

など行います。コンフィギュレーションビットは、HEXファイル書き込

み時に指定する設定ですが、ここで設定しておくとHEXファイルにそ

の設定情報が書き込まれるため、書き込みソフトウエアにHEXファ

イルを読み込んだ時自動的にコンフィギュレーションビットが設定

されます。

コンフィギュレーションビットとは、PICマイコンの動作に関する

も基本的な設定をする特殊な設定項目です。例えば、動作用クロッ

クは外部の発振子を使うのか、内部発振子を使用するのか、ウォッ

チドッグタイマーを使用するのか、しないのか・・・などです。

3 ここでは、次のように設定します。

・Project Name: Lesson1

・Project Path: C:\mikroC_pjt\ (※)

・Device P18F8520

・Clock 010.000000

※プロジェクトを保存するディレクトリをProject Pathで指定しま

す。ここでは、例としてCドライブにmikroC_pjtというフォルダを作り

そこに保存しています。分かりやすいディレクトリを作りそこに保存

するといいでしょう。

コンフィギュレーションビットは、とりあえずデフォルトの内容で設

定しておきますので"Default"ボタンを押します。

内容が設定できたら"OK"をクリックします。

4 コードエディターウインドウにプログラムを記述しています。

プログラムを書く前にプログラムの概要を下記にまとめます。

符号なし8ビットの変数aとbの2つを用意します。aとbにはあらかじ

め値を代入しておきます。

RF0とRF1をアクティブローのスイッチ入力として使用し、RF0がL

レベルになると変数aの値を、RF1がLレベルになると変数bの値を

2進数としてPORTB(RB)に出力します。

Page 18: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

18

プログラムを書いてみましょう。

プログラムの解説は後に記載してあります。まずここではプログラ

ムを走らせるまでを体験しましょう。

プログラム内容の一部は大文字・小文字が区別されます。必ず上記

の内容を正しく記載してください。 書き終わったら、コンパイル(ビ

ルド)を行います。

5 ツールバーの"Build Project"ボタンを押します。又はメニューバー

の"Project"→"Build"をクリックします。

Build Projectボタン

6 画面下部のメッセージウインドウにコンパイル結果が表示されま

す。エラーがなければ、Message Textの部分にSuccessと表示さ

れます。エラーが表示された場合には、プログラム内容に間違いが

ないか確認してください。

生成されたHEXファイルは、プロジェクトを保存したフォルダ内に生

成されています。

7 HEXファイルを書き込む前にPICBIG-300ボードの各種設定を行

いましょう。今回はRBはLEDに接続し、RFは定常時プルアップに設

定し、タクトスイッチが押された時にGNDに接続されるようアクティ

ブLow設定にします。次のように設定してください。

・ディップスイッチSW2

→"PORTB"のスイッチのみON側にします。

・ジャンパーJ6(PORTF)

→"Pull-Up"間(上側)をジャンパーソケットでショートします。

・ジャンパーJ12(タクトスイッチ設定)

→"GND"側(下側)をジャンパーソケットでショートします。

void main(){

int a ,b ;

TRISB = 0 ;TRISF = 0x3;ADCON0 = 0 ;ADCON1 = 0x0F;PORTB = 0 ;

a = 150 ;b = 250 ;

while(1){if (PORTF.F0 == 0) PORTB = a ;if (PORTF.F1 == 0) PORTB = b ;

}}

8 ボードの設定が完了したら書き込みを実行しましょう。

書き込みはmikroCのソフトウエア上から連動して行えます。

サイドツールバーの"PICFlash Programmer"ボタンを押します。

又は、キーボードのF9キーでも実行できます。

"PICFlash Programmer"ボタン

書き込みソフトウエアが自動的に起動し、書き込みが実行されま

す。コンフィギュレーションビットの設定はデフォルト設定になって

います。書き込みは自動的に実行されますのでユーザーが特に何

か操作する必要はありません。

書き込みが完了するとプログラムがPICBIG-300ボード上ですぐ

に動きます。

9 動作を確認してみましょう。

PICBIG-300のタクトスイッチ群のなかにあるRF0のスイッチを押

します。RBに接続されたLEDが点灯します。RF0なので変数aの値、

ここでは150が2進数でLEDに現れます。

150は2進数表記では 10010110 となります。

RBのLEDは下記のように点灯しているはずです。

○●●○●○○●RB0 RB7

※○は消灯、●は点灯

同様にして、RE1のスイッチを押すと変数bの値、すなわち250が2

進数としてRBのLEDに表示されます。

mikroCには、10進数-16進数-2進数を相互に変換できる便利な

計算機能が付いています。

メッセージウインドウの"Q Converter"タブをクリックします。

相互に変換できる計算ウインドウが表示されます。

Page 19: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

19

■プログラムの解説

void main(){・・・}

main関数です。C言語では1つのプログラム内に必ず1つのmain関数

が必要です。voidはmain関数の型で戻り値がない関数であることを

宣言しています。{ }で囲まれた範囲がmain関数の範囲となります。

int a , b ;

符号なしのint型変数を宣言しています。C言語では文の 後には必

ず ; (セミコロン)をつけます。

符号なしのint型の場合扱える値は、0~65535までです。

TRISB = 0 ;

TRISF = 0x3;

TRISレジスタは、ピンの入出力方向を設定するレジスタです。

該当のビットが0の場合は出力、1の場合は入力となります。本チュ

ートリアルではRBは全ピン出力、RFはRF0とRF1が入力なので0x3

として設定しています。

C言語では16進数の値を表現する時は数値の前に0xを付けます。

ADCON0 = 0 ;

ADCON1 = 0x0F;

PIC18F8520には、ADコンバーターが搭載されており、RF0はAN5

にRF1はAN6にそれぞれアナログ電圧入力ポートとして割り当てら

れています。PICマイコンを起動した時は、これらのピンはすべてアナ

ログ入力ピンとなっているため、通常のデジタルI/Oとして使用でき

ません。そこでADコンバーター関連のレジスタに値を設定して、デジ

タルI/Oとして使用できるようにします。

ADCON1に00001111(=0x0F)を代入すると、全ピンはデジタルI/

Oピンとなります。

=(イコール1つ)は代入演算子で右辺の値を左辺に代入します。mikr

oCでは「レジスタ名=値」の書式でレジスタに値を代入できます。

PORTB = 0 ;

PORTBに0を代入しています。

a = 150 ;

b = 250 ;

int型変数に値を代入しています。

while(1){・・・}

while文は( )内の値が1又は真であれば{ }内の処理を繰り返す繰

り返し文です。ここでは評価式を1としていますので永久に{ }内が実

行されます。

C言語では処理を永久ループさせたい場合にはよくwhile文を使用し

ます。

if (PORTF.F0 == 0) PORTB = a ;

if文を使用した入力判定部分です。

( )内の評価式が真の時にその後ろに記述された文が実行されま

す。

mikroCでは「レジスタ名.Fビット数」でレジスタの1つのビットを指定

できます。ここではRE0を指しています。

==(イコール2つ)は比較演算子の「等しい時」を表す演算子です。よ

くある間違いとして=を1つしか記述しない場合があります。=が1つ

の場合には代入演算子となってしまい正しく動作しません。文法上は

間違いではないのでエラーがでないため間違いを見逃してしまいプ

ログラムが思うように動かない・・・ということがあります。

PORTB = aで、変数aの値をそのままPORTBレジスタに代入してい

ます。

チュートリアル② ~LCDの使用と、配列・ポインタ~

■プログラムの作成

PICBIG-300に装着されている2行16文字のLCDに文字列を表示し

ます。C言語では、文字列を扱う場合配列を使用します。

本チュートリアルでは固定した文字列をLCDに表示させてみましょう。

プログラムの作り方は、チュートリアル①と全く同じです。新しいプロジ

ェクトを作成するとよいでしょう。コンフィギュレーションビットの設定

は"Default"設定で可能です。

プログラムは次のように記述しましょう。

プログラムを記述した後はチュートリアル①と同様の手順でビルド→

書き込みど実行してみましょう。LCDの1行目に"MICROTECHNICA"と

表示され、2行目に"PICBIG-300"と表示されます。

■プログラムの解説

char txt_a[] = {"MICROTECHNICA"};

char型配列を宣言しています。char型は文字を扱う8ビットの型で

す。C言語では文字はASCIIコードにて扱われます。

通常配列を宣言する際には要素数(インデックス値)を[ ]内に入

力しますが、[ ]内を空欄にすると自動的に要素数が設定されます。

配列や変数を宣言する際に初期値を代入できますが、char型に限り

文字列で初期化できます。"(ダブルクォーテーション)で囲むと文字

列として認識されます。

Lcd_Custom_Config(&PORTH,7,6,5,4,&PORTH,2,4,3);

Lcd_Customは4ビットモードでLCDを使用する際に使用できる組込

関数です。Lcd_Custom_Configで、LCDとPICとの結線内容を定義

します。書式については、mikroCのマニュアルをご参照ください。

※mikroCのマニュアルは、PDF形式又はHelp形式でインストールさ

れています。ヘルプは"Help"→"Help"をクリックします。

Lcd_Custom_Out(1,1,txt_a) ;

Lcd_Custom_Outは4ビットモードでLCDに文字や文字列を表示す

る時に使用します。書式は下記の通りです。

Lcd_Custom_Out(行, 列, char *text);

*textは、char型のポインタという意味です。ここでは、配列名を記述

することで配列の0番目の要素のアドレス値を指定しています。

なお、ポインタを使用して次のページのようにプログラミングしても

同様の動作をします。ポインタについての詳細はC言語の専門書籍

を参照ください。下記に簡単にその概要を紹介します。

void main() {

char txt_a[] = {"MICROTECHNICA"};

char txt_b[] = {"PICBIG-300"};

CMCON = 0x07;

ADCON1 = 0x0F;

Lcd_Custom_Config(&PORTH,7,6,5,4,&PORTH,2,4,3);

Lcd_Custom_Out(1,1, txt_a);

Lcd_Custom_Out(2,1, txt_b);

}

Page 20: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

20

■配列とは?

配列は、連続したメモリー領域にスペースを確保する仕組みです。通

常、変数を宣言するとメモリー上に格納スペースがコンパイラーによ

って割り当てられます。しかしこの作業はコンパイラーが自動的に行

うものであり、開発者はどの変数がメモリー上の何番地に割り当て

られたからは分かりません。

文字列のように関係性が連続的なデータの場合、データは連続する

アドレスに配置される必要があります。そこで変数ではなく配列を宣

言します。配列を宣言するとコンパイラーは、連続したメモリー領域

を確保します。配列は下記の書式により宣言できます。

初期値は省略できます。char型配列の場合のみ文字列で初期化する

ことができます。要素数を省略すると、自動的に要素数が決まりま

す。

配列名を指定すると、その配列の要素数0のアドレス値が参照され

ます。要素数0のアドレスが分かれば、あとのデータは連続するアド

レスに格納されていますので、配列のサイズさえ分かれば、データの

連続性を損なわずにデータを取り出すことができます。

■ポインタとは?

ポインタは、通常の変数と異なり格納されている値を参照するので

はなく、その変数に割り当てられているメモリー領域上のアドレスを

参照する仕組みです。

例えば、 int a = 30; と宣言した場合、int型変数aは、初期値に30

が代入された状態で、メモリー領域上のどこかに配置されます。しか

し通常開発者は、変数aを参照しても30という代入された値は分か

りますが、変数aがメモリー上の何番地に配置されているのかは分か

りません。

ポインタ変数は、ある変数のアドレス値だけを専門に扱う変数です。

C言語では、ポインタ変数を宣言する場合には、変数名の前に*(アス

タリスク)を付けます。また、ある変数のアドレス値を取得したい場合

には、変数の前に&演算子を付けます。下記に例を示します。

①は、変数の宣言です。ポインタ変数pはint型変数のアドレス値を扱

うためのものです。

②で、ポインタ変数pに変数aのアドレス値を代入しています。この時、

ポインタ変数pには*が付かないことに注意します。

③ではポインタ変数pが指し示すアドレスにある変数、つまりは変数a

に100を代入しています。ポインタ変数が指し示す先のアドレスの変

数に値を代入する場合には、ポインタ変数に*を付けます。

さらに、ポインタ変数の指し示す先の変数、すなわち変数aの値に1

を加算していますので、変数bの値は、101ということになります。

なぜこのように複雑な方法を使うのでしょうか。

ポインタ変数は、配列と組み合わせると色々な応用ができます。配列

のように連続したアドレスに値が格納されている場合、ポインタで参

照すれば、ポインタの値を増やしたり減らしたりするだけで、値を取

り出すことができます。例えばシリアル通信で連続したデータを受信

した場合、ポインタで先頭のアドレスを参照してあとはポインタの値

をインクリメントするだけで連続したデータを参照できます。

型 配列名[要素数] = {初期値 0,初期値 1,・・・} ;

int a, b ;int *p ; ①

p = &a ; ②

*p = 100 ;b = *p + 1 ; ③

先ほどのLCDチュートリアルは下記のように、配列ではなくポインタ

を使用していも同様のプログラムを書くことができます。

チュートリアル③ ~非同期式シリアル通信とADコンバーター~

■プログラムの作成

非同期式シリアル通信(UART)を使用して、RS232C通信をするプログ

ラムを作ります。RS232Cは、A系統(RC6、RC7)を使用します。

RS232C経由で文字"A"を受信すると、ADコンバーターのチャンネル2

(AN2 = RA2)の値を8ビットで出力します。その他、RF0、RF1、RF2の

スイッチを押すと(アクティブHigh)、RS232C経由でそれぞれ0、1、2と

いう数値が出力されるプログラムを作ります。

char *txt_a = {"MICROTECHNICA"};

char *txt_b = {"PICBIG-300"};

void main(){

Lcd_Custom_Config( &PORTD,7,6,5,4,&PORTD,2,0,3) ;

Lcd_Custom_Out(1,1,txt_a) ;

Lcd_Custom_Out(2,1,txt_b) ;

}

int adcRes;char rec;

void main() {

ADCON1 = 12;ADCON2 = 128;ADCON0 = 9;TRISF = 7;

Usart_Init(9600);Delay_ms(100);

while(1){if (Usart_Data_Ready()) {

rec = Usart_Read();if (rec == 'A') {

adcRes = Adc_Read(2);Usart_Write(adcRes);Delay_ms(300);

}}

switch (PORTF){case 1: Usart_Write(0x00) ; break;case 2: Usart_Write(0x01) ; break;case 4: Usart_Write(0x02) ; break;}}

}

Page 21: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

21

■PICBIG-300ボードの設定

このプログラムを正しく動作させるため、下記のようにPICBIG-300ボ

ードの各種設定をセットしてください。

・SW1及びSW2はすべてOFF

・SW3は、RS232A系統のRXとTXの2つ(スイッチ番号1と2)をON

・J12は、Vcc側(タクトスイッチを押すとHighレベル)にセット

・J6の"PORTF"のジャンパーをPull-Down側にセット

・J10をジャンパーソケットでショート

■パソコン側の準備

このプログラムでは、RS232C通信を行います。パソコンのRS232Cポ

ートと、PICBIG-300の"RS232A"とかかれたポート(左側のコネクタ)

を全結線ストレートケーブルで接続してください。

RS232CのターミナルソフトはmikroCに付属しています。このターミナ

ルソフトを使用すると大変便利に通信が行えます。

mikroCのサイドツールバーにある"Start Terminal"のアイコンをクリッ

クします。

RS232Cターミナルソフト起動ボタン

ターミナルソフトが起動します。

"Settings"グループにて通信に関する基本的な設定を行います。

今回は、通信速度9600bps、1ストップビット、ノンパリティーの設定に

しますので、上記のように設定してください。

"Com Port"は、PICBIG-300と接続したRS232Cのポート番号を設定

してください。

その他の設定はデフォルト設定にしておきます。

■コンパイルと書き込みの実行

これまでのチュートリアルと同様、コンパイル(ビルド)して、HEXファイ

ルをPICBIG-300のマイコンに書き込んでください。

■動作確認

①文字"A"を受信するとADコンバーターチャンネル1の値を出力する

ターミナルソフトの"Connect"ボタンを押すとRS232C通信が開始

されます。

今回は受信するデータを10進数(DEC)にて表示しますので、"DEC"

にチェックを入れます。

ターミナルソフトの"Communication"のテキストボックスに大文字で

Aと入力して"Send"ボタンをクリックします。

受信ウインドウに Sent:A と表示され次の行に"Received: xxx"と数

値が表示されれば成功です。

PICBIG-300上のP1ボリュームを回転させると、ADコンバーターの

値が変わりますので、戻り値が変わるのが確認できます。

②タクトスイッチRE0~RE2を押す

タクトスイッチのRF0をクリックすると数値"0"が、RF1では"1"が、R

F2では"2"がPICBIG-300から送信されます。

スイッチを押している間数値が出力されるため、一度スイッチを押し

てもたくさんの数字が表示されます。

■プログラムの解説

ADCON1 = 12;

ADCON2 = 128;

ADCON0 = 9;

TRISF = 7;

ADコンバーターの設定とTRISFレジスタの設定を行っています。

ADCON1で、アナログ入力ピンを決定しています。ここではチャンネ

ル2(AN2)がアナログ電圧入力となるように設定し、基準電圧Vrefは

Vddとなるように設定しています。

Usart_Init(9600);

UARTの初期化を行う関数です。()内には通信速度をbps単位で記

述します。ここでは9600bpsに設定しています。

if (Usart_Data_Ready()) {

Usart_Data_Ready()関数はUARTの受信バッファにデータが格納

されると真になります。これをif文で検出することでデータの受信を

監視します。

Page 22: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

22

rec = Usart_Read()

char型の変数recに受信データを取り込みます。1バイトサイズのデ

ータのみ受信できます。連続するデータの場合には、配列とポインタ

を使用します。

adcRes = Adc_Read(2);

Adc_Read()関数は、( )内に指定したチャンネルからAD変換の値を

取得し、変数に代入します。ここでは2を指定してるため、AN2(RA2)

に印加された電圧値の値を取得します。

Usart_Write(adcRes);

Usart_Write()関数は、UART経由で( )内のデータを出力します。

( )内は符号なしのshort型が指定できます。

switch (PORTE){

switch文は、( )内の評価式を評価してcaseで指定された値のルー

チンに処理を分岐します。評価式にPORTFとポート名を記述するこ

とでPORTFの状態によって処理が分岐されます。

caseの後には値を記述し、評価式がその値になると、そこにジャンプ

します。ここでは、PORTEに関して、 001 010 100 の3種類

の値を指定して入力状況を判定しています。

なお、break文を記述すると、switch文から処理が抜け出します。

サンプルプログラムについて

mikroCのサンプルプログラムが、mikroCのインストールされているディ

レクトリ内に収録されています。通常下記のディレクトリに収録されて

います。

C:\Program Files\Mikroelektronika\mikroC\Examples\BigPic4\

P18F8520

Page 23: USB2.0対応 高速PICプログラマ搭載 80ピン大型PICマイコン ...

23

~コラム~

PICマイコンのコンフィギュレーションレジスタについて

PICマイコンには、プログラム(HEXファイル)を書き込む際にしかアクセスできない、コンフィギュレーションレジスタという特殊なレジスタがありま

す。発振子の種類を設定したりコードプロテクションの有無を設定したり、その他様々なリセット処理の設定をしたり、とPICマイコンの動作に関す

る基本的な設定を担当しています。コンフィギュレーションビットの設定が正しくないと、プログラムは正しく作れていても、動作しません。コンフィギ

ュレーションレジスタを正しく設定することは、PICマイコンを動作されるための基本です。

コンフィギュレーションレジスタには様々な項目があり、設定内容もデバイスによって大きく異なります。異なるといっても、項目が追加されている

たげで基本的な設定事項は同様です。ここでは代表的な設定を確認しておきましょう。

■Oscillator

発振子の種類を指定します。次のような種類があります。回路に応じた適切な種類を選択しないと、正しく動作しません。

LP・・・低電力水晶 200KHz以下

XT・・・水晶発振子 4MHz以下

HS・・・水晶発振子 5MHz以上、セラミック発振子 4MHz~20MHz (※レゾネーター使用の場合は常にHSにする必要があります)

RC・・・RC発振 (5KΩと20pFの組み合わせで約1MHzの周波数が得られます)

EC・・・外部発振子よりTTLレベルのクロック注入

H4・・・HS+PLL内部PLLにてクロックアップ(10MHz発振子接続)

INTRC・・・内部発振回路を利用、外部に発振子を取り付ける必要なし ※1

※1:INTRCを選択した場合には、プログラム中で"OSCCALレジスタ"の設定をする必要があります。

■Watchdog Timer

ウォッチドッグタイマー(WDT)とはプログラムの暴走を防止するためのタイマー機能です。プログラムは常に繰り返しCLRWDT命令を実行してWDTをクリアしています。

しかしプログラムが何らかの理由により、動作しなくなった場合(ハングアップした場合)WDTはクリアされなくなり、WDTが機能してPICマイコンに強制的にリセットがか

かります。そのためプログラムが予期しない時にハングアップしても自動的にリセットがかかる機能がWDTです。WDTのタイマーはデフォルトで約18ミリ秒です。

コンフィギュレーションビットにてこの項目を"Enable"にするとWDTが有効になります。"Disable"で機能は無効になります。

■Power-up Timer

電源投入直後は動作が安定しないため、少しの時間プログラムの開始を遅延させる方法をとります。このPower-up Timerを有効(Enable)にすると、電源投入後約75ミ

リ秒程度経過してから発振子の周波数カウントタイマーを開始します。周波数カウントタイマーではクロックを1024カウントしてから、プログラムを開始させます。

そのためプログラムの開始は遅れますが、より安定してプログラムを起動できます。

■Brown-out Reset

電源電圧のふらつきを検出してリセットをかける機能です。Broun-out Resetを有効(Enable)にすると、Vcc=5V時において約4.2Vを下回った際、リセットがかかりま

す。電源投入時や電源電圧のふらつき等による誤作動などを防止できます。なお、Brown-out Resetを使用する場合には、Power-up Timerも有効にする必要がありま

す。

比較的新しいデバイスでは、リセットをかける電圧(しきい値)を設定できます。

■MCLR Pin Function

比較的新しいデバイスに搭載されている機能です。通常PICマイコンではMCLRピンはハードウエアリセット用のピンとして利用しますが、この設定を"Input Pin"に設定

すると入力ピンとして利用できるようになり、外部のリセット回路が必要なくなります。(ハードウエアリセットはできなくなります)"Reset"に設定すれば従来どおり、MCL

RをLowレベルにするとハードウエアリセットがかかります。MCLRピンをリセットピンとして回路を組んでいる場合には"Reset"に設定しておきます。

■Low Voltage Programming

PICマイコンにプログラムを書き込む場合には通常約12V程度の電圧をMCLR(Vpp)ピンに印加する必要がありますが、このLow Voltage Programmingを有効にしてお

くと+5V電圧で書き込みをすることができるようになります。しかし、通常マイコンライターで書き込む場合にはこの機能は必要ありませんので、設定を"Disable"にする

ことをおすすめします。この機能を特に使う仕様で回路を作っていない場合、プログラム実行中に予期しない動作をする場合がありますので、無効に設定してください。

■Code 及び DataEEPROM

Codeはプログラムメモリ、DataEEPROMは内蔵のEEPROMメモリに対しそれぞれ、外部からコードを読み出すことを制限するコードプロテクションをかけるかどうかを

設定します。"Protected"に設定すると、書き込まれたデータの内容はあとから読み出すことができなくなります。第三者にコードを複製されることを防止できます。しか

し、プログラムメモリを"Protected"に設定すると、そのデバイスにはプログラムが書き込めなりなります。よってコードプロテクションをする必要がない場合には、この設

定は"Not Protected"にしておきます。誤って"Protected"にするとそのデバイスには書き込みができなくなります。

■その他の設定

一部の新型マイコンに搭載の「Fail safe clock monitor」機能は、メインクロックが停止した場合に自動的にタイマー1のクロックに切り替わるPIC

マイコンに搭載された機能です。この機能を有効にする場合には、Enableに設定します。

「Internal External Switch over」機能は、デバイスの始動時(電源投入時)にのクロック信号を2つのスピードで動作させることで、スタートアップ

時の遅延を 小にとどめる機能です。具体的には、始動時直後、外部発振子のクロック信号が安定するまでの間内蔵発振器を使用しコード実行時

までの間安定化を行います。新型デバイスではこの機能を有効にするか無効にするかの設定できます。