« 2006年7月 | トップページ | 2006年9月 »

2006年8月30日 (水)

AVRのためのPIC再入門

PICでAVRライタを作る10

先日作ったPIC16F648A-AVRライタで、RS232Cコネクタを外して
いた場合、Rxdピン(PICから見た)が浮くと senshu さんより指摘を
頂いた。確かにコネクタを外した状態の事まで気が及ばなかった。
なるほど、言われて見れば至極ごもっとも。

いやー、勉強になります。師匠と呼ばせて貰ってもいいですか?

AVRISPの場合、決まった形式のチェックサム付のパケットを
送受信するので、不定のデータを受信しても、デコードの前に
チェックサムエラーではじかれるし、そもそもパケットの形式が
正しくなければバッファリングを開始しないと思うので、SPI周りの
誤動作は防げるとは思うが、指摘をうけてから回路図を見直して
みると、なにやら気持ち悪い回路に見えるから不思議。

そんな訳で、回路図を修正してみた。
これでいいでしょうか?> senshu さん

あと、16F648Aのデータシートの電源電圧と動作周波数の
グラフを読むと、20MHz動作させる場合、電源に4.5V以上が
必要な様なので、このライタではブラウンアウトリセットをオンに
している。そのため、3.3V系の電源では動作しない。
試しにこのコンフィグレーションビットをオフにして、3.3V電源で
動作させて見たところ、なんか動いちゃったのでそのまま、
HEXファイルを差し替えて見た。

やっぱりBORオンにしました。ソースは公開してありますので、
(いらっしゃらないと思いますが)試して見たい奇特な方は、
ソースコードを弄って下さい。

| | コメント (7) | トラックバック (0)

2006年8月11日 (金)

AVRのためのPIC再入門

PICでAVRライタを作る9

お盆休みに入る前に、ある程度仕事を片付けなければいけない
ので、ちょっとだけ今週は忙しかった。

前回作ったPIC12F683で動くAVRISP互換ライタで、90S1200Aに
書き込む事が出来なかった事が少し悔しかったので、
PIC16F648Aを使ってまたAVRライタを作ってみた。
16F648Aを使ったのは、たまたま余り物があった事と、12F683の
コードを移植すれば簡単に作れるだろうと思ったからだ。

16F648AはSRAMを256バイト積んでいるので、AVRStudioから
128バイト+のメッセージを送られて来ても、受け取る事が出来る
プログラムが書ける。

が、やはりPICなのでSRAMは複数のバンクに分かれているし、
アクセスするためのポインタ周りもかなり貧弱。
それと、12F683は8MHzで駆動する内部クロックを持っていたの
だが、16F648Aの内部クロックは4MHz。処理能力が足りない。
やっぱり簡単にはいかない。

Picavr05  

 

 

 

 

 

発振源は20MHzのセラロックを付けた。あと、I/Oピンが増えた
ので、SPIアクセス表示用にLEDを付けて見た。これで手持ちの
Tiny26, Mega48/88/168, 90S1200 のすべてに書き込む事が
出来る。

ソースとHEXファイル ダウンロード

| | コメント (31) | トラックバック (2)

2006年8月 3日 (木)

AVR入門

AT90S1200A

秋月電子で買い物。
と行っても通販だが、神奈川県南西部のはずれに住む私には、
秋葉原までの交通費や、時間、手間を考えると通販で部品を
送って貰えるのは、大変ありがたい。

が、本当は数百円の部品が欲しかっただけなのに、送料/代引き
手数料が800円掛かるのがもったいなくて、せっかくならと
つい余分な部品を注文しがちになる。

今回は RTC \500 が欲しかったのだが、500円に送料/手数料
800円を払うのはいやなので、多分いつか使う日も来るだろうと、
2SC1815やコネクタの類や、その他の物と、AT90S1200Aも
買ってしまった。

20060803_1  

 

 

 

 

 

 

AT90S1200Aを買ったのは、先日作った PIC-AVRライタで
書き込めるかどうかのテストをして見たかったという事もある。

AVRStudioからAVRISPにどの様なコマンドが送られるかは、
各デバイスのXMLファイルに書かれていて、AT90S1200の場合
フラッシュメモリ書き込みは、

"ワード書き込み・1回のデータ転送量128バイト"

と言うことが読み取れる。なので、PIC-AVRライタの80バイトの
メッセージバッファでは、書き込みデータを受け取る事が出来ない
と言うことが解る。

実際にやって見ると、実際に書き込めない。
バッファオーバーでエラーが出る。自分で作っていて解っているが、
実際に起きると悲しい。メモリの大きいデバイスで大半のAVRを
書き込めるライタを作りたい衝動に駆られるが、その前に RTC を
ちょっといじってみたい。

ちなみに、PIC-AVRライタでAT90S1200AのEEPROMには書き込み
が出来た。ちょっとうれしい。

| | コメント (0) | トラックバック (0)

« 2006年7月 | トップページ | 2006年9月 »