電子こうさくの家

電子こうさくの家

PR

×

Keyword Search

▼キーワード検索

Calendar

Archives

2026.05
2026.04
2026.03
2026.02
2026.01

Favorite Blog

6RA8PPアンプ(12) … 真空管の達人さん

管球アンプよ永遠なれ 管球アンプ大好きさん
ハナミズキ いくら3805さん
時代遅れのアナログ… さくら もものこさん
難病エンジニアのこ… マリオ・シャラポワさん

Comments

PIC9801 @ Re:低音ブースト回路(01/22) nippon2027 さん 書き込みありがとうござ…
nippon2027 @ Re:低音ブースト回路(01/22) 素晴らしい回路ですね~!利用させて頂き…
PIC9801 @ Re[1]:ICE(05/16) Fujio さんへ まさかICEの開発者からコメ…
Fujio @ Re:ICE(05/16) CRC-80開発者です 綺麗な状態で保管されて…
PIC9801 @ Re[1]:TERA TERMでグラフィックス(03/28) JOY2005さんへ お久しぶりです。返信が遅…
2014.10.18
XML
USB機能付きのPIC18F14K50などのPICマイコンはブートローダが使えるので、いちいちプログラマーを接続する必要がなく、これは便利だなぁ~ と思っていました。(^^)

ブートローダで遊んでいるうちに、USB機能が無いマイコンでもブートローダが使えるのではないか? と考え、ウエブサイトを探してみましたらシリアル通信で行う方法も見つかりました。こちらの方式ですと、さらに安価なPICでボートローダを実現できそうです。

いろいろと調べて分かったのですが全てのPICがブートローダに対応している訳でなく、FLASH WRITE(FLASH / EEPROMの項目をチェック)と書かれているものが対応しているようです。比較的新しいデバイスが対応しています。

手元にFLASH WRITE対応のPIC12F1822がありましたので試してみました。

12f1822.jpg

12F1822回路.jpg

パソコン側のソフトですが、 Tiny bootloader というのを使いました。

sirial bootloader.jpg

また、 pic serial bootloaderを試す というサイトに12F1822のファームウエア側のブートローダプログラムが紹介( ダウンロード )されています。



ここでは、C言語(XC8)で作成したプログラムをブートローダで転送できるようにする手順を示します。

ブートローダプログラムはプログラムメモリの後ろ760番地(16進)あたりから最後まで配置されています。

そのまま、C言語(XC8)でコンパイルするとリンカーはプログラムメモリの後ろから優先して配置してしまいプログラムが重複してしまいます。

これを回避するためには、XC8のプロパティで

ROMレンジ設定.jpg

赤丸のようにロードするアドレスの範囲を設定してからビルドします.

追伸:プログラムにより、上記の設定だけではうまくいかない場合がありました。XC8の場合はスタートアドレス(関数は先に配置される)もコンパイラにより、どのように配置されるか定かではないようです。とりあえずXC8 linker →additional options →CODEOFFSET を0x10位に設定して、暫定的に対策しました。

C言語側のプログラムです。

プログラム.jpg





お気に入りの記事を「いいね!」で応援しよう

Last updated  2014.10.19 15:50:19
コメント(2) | コメントを書く
[電子工作、オーディオ自作] カテゴリの最新記事


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Design a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: