PIC18F14K50のBootLoader(2KB版)を作る(実装編)

 18F14K50のマイコンボードをマイコン周りだけ作って(新しい倒立振子ロボの制御ボードになる予定)、前回のBootLoaderのテストをしてみました。いくつか問題がありましたが、何とか完成に漕ぎ着けたようです。18F14K50は、3.3Vで動かしていますが、USBは安定して動いています。

■前回作ったソースからの変更点
 ①ADCON1レジスタの仕様変更
  調べたら既に色々なHPで指摘されていましたが、18f14k50はリセット後のディフォルトで、アナログポート入力に
  なっているため、スイッチ入力のためにデジタルポート設定をする必要があります。しかし、2550では、ADCON1
  で行っていたアナログ、デジタルの切り替えが、ADSEL、ADSELHレジスタに変更になっています。

 ②TRISでポートを入力に設定した直後にIF文でこのポートから読み込みを行うと正しく読めない。
  BootLoaderは、Boot動作か通常動作かの切り替えにリセット直後のスイッチの状態をみて処理を切り替えてい
  るが、TRIS設定直後にこのIF文があるとでは、うまく読めないようです。これは、元々PICがこのような仕様なの
  か、14K50特有のものなのか分かりませんが、TRIS設定後にダミーでLED出力を行ってからIF文を実行すること
  で正常に動くようになりました。これは、半日あまり悩みました。

 ③ダイエット
  Buildしてみたら2KBの容量をオーバして(14Byteオーバでした)エラーになってしまいましたので、いらないLED
  表示などを少し削って2KBに納めました。

 とりあえず、簡単なLED点滅プログラムを作ってBootLoaderで書き込んで動かしてみました。PC側の書き込みプロ
 グラムは、2550の時と同じ環境(Myboot.exe)を使うことができています。
 800番地からプログラムをマップするリンカースクリプト(rm18f14k50.lkr)も作りました。

■Bootloaderプログラム
  BootLoaderのソース(MPLAB用Build環境)とrm18f14k50.lkrをからくり玉手箱のdownloadページに置きました。
  Buildは、C18のstandard版が必要です(私は60日期限付き版を入れました)
  マイコン周りの回路図を最後に載せておきますが、LEDは1個のみ(赤色 boot中:点滅)、スイッチは、bootスイ
  ッチ(白色)とリセットスイッチ(黄色)を載せました。

  http://jr1wfhbbs.s5.pf-x.net/micom/

■マイコン周りだけ作ったテスト用の18F14K50ボード

画像


■テストに使用した18F14K50ボード回路図

画像

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 2

ナイス
かわいい

この記事へのコメント

ほいほい堂本舗
2016年08月15日 17:10
PIC18F14K50のBootLoaderを探していてここに辿り着きました。
ここに記載されているものは正に私が探しているものだと思われますが、リンクが切れておりダウンロードページに行きつけません。
どこか他にアップされていますでしょうか?

この記事へのトラックバック

  • PIC18F14K50のBootLoader(2KB版)を作る(準備編)

    Excerpt:  PIC18F14K50は、USB内蔵で価格が安く(秋月で200円)、高速(48MHz)、おまけに3.3Vで動く等、電池で動かす機器を作るのに良さそうなマイコンです。そこで、倒立振子ロボットで使った1.. Weblog: からくり小箱 racked: 2010-10-22 12:28