• 検索結果がありません。

最近の更新履歴 kaimunantai

N/A
N/A
Protected

Academic year: 2018

シェア "最近の更新履歴 kaimunantai"

Copied!
8
0
0

読み込み中.... (全文を見る)

全文

(1)

2016/05/04 皆無軟体

PIC

マイコンにプログラムを書き込む方法

1

書き込み用ハードウェアの用意

(1) Microchip製 PICkit3 

 PICマイコンを製造しているMicrochip社純正のPICライタである。  USBケーブルでパソコン( 対応OS : OS X , Linux , Windows ) と 接続し、後で説明する統合開発環境を使ってマイコンにプログラムを書き 込むことができる。

(2)  ICテストクリップ

 マイコンにはさむだけでPICライタとマイコンを接続できる。書き込 むマイコンのピン数に応じて選ぶ。PIC12F1822の場合は、8ピンのク リップを使用する。

 右の写真は、PIC12F1822にクリップを挟んだ様子である。

(3)  ジャンパーコード(5本) 、ブレッドボード、電池ボックス(単3電池×3本)

(2)

2

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

 マイコンのプログラム開発に必要なソフトウェアは、プログラムのソースコードを入力したり、

管理したりする「統合開発環境

(IDE)

とソースコードをマイコンの機械語に変換するコンパイラや リンカなどのツール群である。

(1)  MPLAB XIDE

PIC

マイコンのプログラムを開発する 統合開発環境のソフトウェアを以下の

URL

からダウン ロードしてインストールする。

http://www.microchip.com/mplab/mplab-x-ide

 ”

MPLAB XIDE”

のアイコンからダウンロードしたファイルを展開してから実行し、指示に従っ

てインストールする。

(2)  XC8 Compiler

 

C

言語のソースコードを機械語に変換する

C

コンパイラをダウンロードしてインストールする。

http://www.microchip.com/mplab/compilers

  

MPLAB XC8 Compiler

のアイコンからダウンロードしたファイルを展開してから実行し、指示

(3)

3

PICkit3

とマイコンを接続

(1)  ICテストクリップを使う場合

 右の写真は、PIC12F1822にクリップを挟んだ様子である。 

なお、PICkit3の接続端子とPICマイコンの機能ピンとの対応は、

下図のとおり。

(2)  ジャンパーコードを使う場合

 

IC

テストクリップの代わりに、ブレッドボードに

マイコンを挿入し、ジャンパコードでマイコンと

PIC

ライタを接続することもできる。

右の写真は、接続した様子である。

下図は

PIC12F1822

の機能ピンと接続の関係を表し

たものである。

PICマイコンの電源端子VDDには、電源(単3電池

3本)のプラス端子をつなぎ、VSSにはマイナス端子をつなぐ。 

MCLR/VPP

PICkit3

VSS GroundVDD ICSPDAT ICSPCLK

PICkit3

PIC

12F1822 VSS Ground

VDD MCLR/VPP

ICSPDAT

(4)

4

ファームウェア(実行可能プログラム)の作成とマイコンへの書き込み

(1)  MPLAB XIDEを起動

   (右のアイコンはMPLAB XIDE ver. 3.26のもの)

(2)  プロジェクト(Project)の作成

(a)メニューから[File]-[New Project...]をクリック

(b) [Choose Project]ダイアログボックス [Next>]をクリック。

(c) [Select Device]ダイアログボックス

[Family]は[Mid-range 8-bit MCUs (PIC12/10/16/MCP)]を 選択

[Device]は[PIC12F1822]を選択。 (マイコンによって変更)

[Next>]をクリック

(d) [Select Header]ダイアログボックス [Next>]をクリック

(e) [Select Tool]ダイアログボックス [PICkit3]を選択

[Next>]をクリック

(f) [Select Compiler]ダイアログボックス

[XC8]の中にある[XC8 (v*.**)]を選択(v*.**)はバージョンに よって異なる。

(5)

(g) [Select Project Name and Folder]ダイアログボックス [Project Name]にプロジェクト名

(ここでは[led-12f1822])を入力。

[Encoding]に[UTF-8]を選択(日本語のコメントが入力可能)

[Finish]をクリック

(3)  ソースファイルの追加

(a) XIDEの窓の左側

[Projects]タブ内の[led-12f1822]の下位にある[Source Files]をクリックして選 択。

(b) メニューから[File]-[New File...]をクリック

(c) [Choose File Type]ダイアログボックス

 [Microchip Embedded]を開き、[XC8 Compiler]を選択、更に[main.c]を選択。  [Next>]をクリック

(d) [Name and Location]ダイアログボックス

(6)

(4) ソースファイルの入力

 X IDE右側のソースファイルのタブに、ソースコードを入力していく。

(a)(例1) LEDを点滅させるコード。いわゆるLチカの最低限のコード

#include <xc.h> #include <stdint.h>

#pragma config FOSC = INTOSC #pragma config WDTE = OFF #pragma config PWRTE = ON #pragma config MCLRE = OFF #pragma config CP = OFF #pragma config CPD = OFF #pragma config BOREN = ON #pragma config CLKOUTEN = OFF #pragma config IESO = OFF #pragma config FCMEN = OFF

#pragma config WRT = OFF #pragma config PLLEN = OFF #pragma config STVREN = ON #pragma config BORV = HI #pragma config LVP = OFF

void main(void) {

volatile uint32_t i;

OSCCON = 0b01110010 ; OPTION_REG = 0b00010000 ; ANSELA = 0b00010000 ; TRISA = 0b00011000 ; WPUA = 0b00001000 ; PORTA = 0b00000000 ;

while (1) { RA0 ^= 1;

for(i = 0; i < 10000; i++); }

(7)

(b)(例2) 前の例に注釈を入れ、再利用可能なようにマクロや関数を作成したもの

/*

* File: led-12f1822.c * Author: kaimu

*

* Created on May 4, 2016, 5:23 PM *

* LED1 : PIN 7 (RA0) : 1-ON, 0-off * Optical Sensor : PIN 3 (AN3/RA4)

* */

#include <xc.h>

#include <stdint.h> // ビットを意識した int 型を使うためのヘッダファイル

// LEDを光らせるマクロを定義 #define ledOn() (RA0 = 1) #define ledOff() (RA0 = 0)

#define led() (RA0 ^= 1) // LEDを点滅する

// PIC12F1822のコンフィグレーション (Configuration) #1 #pragma config FOSC = INTOSC // Internal Clock #pragma config WDTE = OFF // NO Watchdog timer

#pragma config PWRTE = ON // Program start at Power on after 64ms #pragma config MCLRE = OFF // No Ext Reset, Enable RA3 input pin #pragma config CP = OFF // No Code protect

#pragma config CPD = OFF // No Data Protect #pragma config BOREN = ON // Brown out enable #pragma config CLKOUTEN = OFF // CLKOUT as RA4

#pragma config IESO = OFF // No Internal External clock #pragma config FCMEN = OFF // No FCM

// PIC12F1822のコンフィグレーション (Configuration) #2 #pragma config WRT = OFF // No Write Protect #pragma config PLLEN = OFF // No PLL

#pragma config STVREN = ON // Reset on Stack over / under flow #pragma config BORV = HI // Watch Voltage drop (2.5V = HI) #pragma config LVP = OFF // No Low Voltage Programming

void wait(volatile uint32_t i)// 処理をちょっと待つ関数 {

while (i-- > 0); }

void initIO(void) // I/Oポートの初期化 {

OSCCON = 0b01110010 ; // Internal clock 8MHz

OPTION_REG = 0b00010000 ; // Weak Pull up Resistor RA4-OFF, others ON ANSELA = 0b00010000 ; // Analog PORT AN3(RA4)

TRISA = 0b00011000 ; // Input : RA34, Output: others WPUA = 0b00001000 ; // Weak pullup : RA3

PORTA = 0b00000000 ; // Initialize PORTA }

void main(void) {

initIO(); // I/O ポートの初期化

while (1) { // 無限ループ

led(); // LED が点灯していれば消灯し、消灯していれば点灯する wait(10000); // ちょっと待つ

(8)

(5)  ビルドと書き込み

[Make and Program Device Main Project]のアイコンをクリック

[CAUTION]警告のダイアログボックスが表示されたら、

電源が正しく接続されていることを確認して、[OK]をクリック。

※書き込みの段階で、赤い字でエラーメッセージが出る場合、電源が接続されていなかったり、 クリップやジャンパーコードの接続に不具合があったりすることが多い。

参照

関連したドキュメント

本研究は,地震時の構造物被害と良い対応のある震害指標を,構造物の疲労破壊の

 基本波を用いる近似はピクセル単位の時間放射能曲線に対しては用いることができる

スライダは、Microchip アプリケーション ライブラリ で入手できる mTouch のフレームワークとライブラリ を使って実装できます。 また

現時点で最新の USB 3.0/USB 3.1 Gen 1 仕様では、Super-Speed、Hi-Speed、および Full-Speed の 3 つの速度モードが定義されてい ます。新しい SuperSpeed

●お使いのパソコンに「Windows XP Service Pack 2」をインストールされているお客様へ‥‥. 「Windows XP Service

本資料は Linux サーバー OS 向けプログラム「 ESET Server Security for Linux V8.1 」の機能を紹介した資料です。.. ・ESET File Security

本装置は OS のブート方法として、Secure Boot をサポートしています。 Secure Boot とは、UEFI Boot

編﹁新しき命﹂の最後の一節である︒この作品は弥生子が次男︵茂吉