You are here

PICSYS18-UNO5

PIC18F26K22を搭載したArduino UNOに準じた形状のマイコンボード(組み立て済)です。
USBインターフェースが組み込まれており、PCとUSBで接続できます。

PICSYS18-UNO5-R1 (組立済)

PICSYS18-UNO5の特徴を以下に示します。


  • PIC18F26K22(28ピンDIPパッケージ)を使用しており、5Vで稼働します。
  • プログラムFLASHは64Kバイト、RAMは約4Kバイト搭載しており、Arduino UNOなどと比較して2倍のFLASHとRAMを利用できます。
  • クリスタルなしでも、内部の誤差1%の高精度発振器を利用して64MHzで稼働させることができます。
  • 必要に応じてクリスタルを追加することにより、高精度の発振器を利用することができます。
  • USBインターフェースが組み込まれており、PCとUSBで接続できます。
  • マイクロチップ社から無償で提供されている開発環境MPLAB X IDEと、無償版が使えるXC8コンパイラを利用してプログラムを開発することができます。
  • PICSYS18-UNO5には、マイクロチップのアプリケーションノートAN1310で提供されているUSBブートローダを利用するための回路とブートローダーが組み込まれています。
  • このため、AN1310のブートローダーアプリを使用して、USBインターフェースを通じてプログラムを書きこむことや、ボードをリセットすることができます。

ネットショップ:


開発環境

PICSYS18-UNO5のプログラムの開発の統合開発環境としては、マイクロチップ社のMPLAB X IDEを利用します。
また、コンパイラとしては、8ビットのPICチップ用のXC8を利用します。XC8は、最適化機能が強化された有償版のほかに、最適化機能に制限があるものの無償で利用できるFree版があります。Free版は、コンパイルされたプログラムの性能や容量が有償版に比べると劣るものの、ホビー用途ではほとんどの用途に十分活用できます。

この文書の作成時点では、MPLAB® X IDE は v4.15、MPLAB® XC8 Compiler は v1.45 となっています。


ブートローダー

PICSYS18-UNO5は、マイクロチップ社のアプリケーションノートAN1310で紹介されているシリアルブートローダーを使用して、USB接続でプログラムを書きこむことができます。
AN1310に関する資料やソースコード等は、下記のリンクから取得してください。

AN1310に基づき、PICSYS18-UNO5のPIC18F26K22用に作成したブートローダーファームウェアとそのソースコード、サンプルプログラムのパッケージを以下のリンクで提供しています。

上記のパッケージにはPICSYS18-UNO5のPIC18F26K22のブートローダーファームウェアのソースファイルを含むプロジェクトが格納されています。ファームウェアを変更したい場合には、そのプロジェクトを変更して再ビルドすることにより、目的に応じたブートローダーのファームウェアを再構成できます。
また、パッケージにはPIC18F26K22のブートローダーファームウェアのHEXファイルも格納されているので、何らかの理由でファームウエアが壊れた場合には、PicKit3などを利用してPIC18F26K22に書き込んでファームウェアを修復することができます。


プログラム例

ブートローダーでPICSYS18-UNO5に書き込むプログラム例として、D13に繋がれたLEDを点滅させるプログラムを示します。
MPLAB X IDEでXC8のプロジェクトを作成し、ソースファイルとして、下記のサンプルプログラムを入力します。

なお、このサンプルプログラムのプロジェクトは、前述のPICSYS18-UNO5用のファームウェアパッケージに含まれています。

#include <xc.h>

#define _XTAL_FREQ 64000000

#if defined(__18F46K22)
#define D13_MODE TRISDbits.TRISD0
#define D13_IO LATDbits.LATD0
#elif defined(__18F26K22)
#define D13_MODE TRISBbits.TRISB1
#define D13_IO LATBbits.LATB1
#endif

void initMCU(void) ;
void setup(void) ;
void loop(void) ;

void main(void)
{
    initMCU() ;
    setup() ;
    while (1)
        loop() ;
}

void initMCU()
{
    OSCCON |= 0x70 ; // 16MHz
    OSCTUNEbits.PLLEN = 1; // X4 PLL
}

void delay(int ms)
{
    for (int i = 0; i < ms; i++)
        __delay_ms(1) ;
}

void setup()
{
    D13_MODE = 0 ;
}

void loop()
{
    D13_IO = !D13_IO ;
    
    delay(100) ;
}

プログラムをAN1310に示されているブートローダーでPICSYS18-UNO5に書き込めるようにするために、プロジェクトに以下の設定を行います。

Project Properties ダイアログを開いて下記の設定を行います。


  • [Conf:] ページのDEVICEにはPIC18F26K22を設定します。
  • [XC8 global options -> XC8 linker] ページの [Option categories] で [Memory model]を選択し、以下の図のように、[ROM ranges] に[default,-0000-0003,-FCFC-FCFF,-FD00-FFFF]を設定します。

プロジェクトのリンカー設定

プロジェクトプロパティの設定ができたら、ビルドを実行して実行プログラムの生成を行います。

実行プログラムを生成できたら、PICSYS18-UNO5がPCにUSBで接続されていることを確認し、AN1310のソースパッケージに含まれる下記のブートローダーアプリをPC上で起動します。


  • AN1310ui.exe

ブートローダーアプリを起動したら、[Program] メニューから[Settings...] を選択し、下記のダイアログを開きます。

PCのブートローダーアプリの設定画面

ブートローダーアプリの設定


  • [COM Port:] はPICSYS18-UNO5が接続されているUSBポートを選択します。
  • [Bootload Baud Rate] はまずは、115200 bpsを設定してください。この設定でプログラムの書き込みが問題なくできることが確認できたら、例えば 1000000 bps などの高速な設定を試してみるとよいでしょう。
  • [Write Options] は、FLASH Program Memory のみにチェックをしてください。

以下の順でブートローダーアプリのアイコンをクリックし、プログラムをPICSYS18-UNO5に書き込んで実行することができます。


  1. PICSYS18-UNO5 をリセット
  2. PICSYS18-UNO5 をブートローダーモードに
  3. PICSYS18-UNO5 に書き込むプログラムのHEXファイルを選択
  4. PICSYS18-UNO5 にプログラムの書き込み
  5. PICSYS18-UNO5 プログラムの実行

PCのブートローダーアプリ


PICSYS18-UNO5-R1の回路図

PICSYS18-UNO5-R1の回路図を示します。

PICSYS18-UNO5-R1の回路図

開発ソフト: 
チップファミリー: 
プログラムライタ: