半田付けしてます

よくわからないまま半田付けしてます

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

AVRでCAN通信 03

はい、ようやく動きましたよwww

CAN通信

いやあ・・・、書籍のコードだからって信用はするなってことですかねぇw

過去の経験からブレッドボードの電気的な弱点とかチコチコいじってたんですが
んなもの関係なかったですw

出版社のサポートサイトなるところからソースファイルをダウンロードしまして
(このサポートサイトは巻末に記述されていて、グーグルで逆リンクを調べますと
どっからもつながってなかったので、リンクはしませんw
書籍をお買い上げになってアクセスしてみてくださいw)

とりあえず、CANコントローラからトランシーバに信号が出ないで
原因が分からず、3日くらい最悪な時間でありましたw
進捗が1mmもないような時間ていうのは本当に嫌ですよねぇ・・。
まるで自分がどうしようもない間抜けなんではとか思えてきて・・w


ポイントだけ。
ハード構成は、上記の写真のように

ブレッドボード + tiny2313(内蔵8Mhz) + MCP2515(20Mhz or 8Mhz) + MCP2551
を2枚。


ドライバのCAN2515.cの中に以下のような関数を作り
送信の時に呼び出すようにしましたら、なんか動き始めました。
正しいんだかなんだかは分かりませんが、とにかくコントローラから信号が出ないことには
話にならなかったんで、とりあえず、似たような方のために。

信号さえ出れば、あとは、適当に組んだ受信サイドも
なんだかギコギコ受信してますね。うん。これこれ。


CAN2515.c側サブルーチン


// --------------------------------------------------------------------
// CAN送信
// --------------------------------------------------------------------
void CANRTS(void) {
BYTE i;
BYTE cmd = SPI_INST_RTS;
cmd |= _BV(0);

CAN_SPI_CS_L;

for(i = 0; i < 8; i++) {
if(cmd & 0x80) {
// 1
CAN_SPI_SO_H;
} else {
// 0
CAN_SPI_SO_L;
}
cmd <<= 1;
CAN_SPI_SCK_H; // SCK パルス出力
CAN_SPI_SCK_L;
}

CAN_SPI_CS_H;
}





main側


// DLC
dlc = 0;
pdlc = (struct tag_TXBnDLC *)&dlc;
pdlc->DLC = 0; // データ長
pdlc->RTR = 0; // データ・フレーム
MsgBuf[5] = dlc;
CANTxB0MsgWrite(&MsgBuf[1]); // SPIコマンド



/* // 送信開始
ctrl = 0;
pctrl = (struct tag_TXBnCTRL *)&ctrl;
pctrl->TXP = 0; // 送信バッファ優先順位
pctrl->TXREQ = 1; // 送信要求
CANWriteReg(TXB0CTRL, ctrl); // SPIコマンド
*/
CANRTS();







ええ、これ、リセットコマンドをコピーして、
バッファの指定を入れただけなんですねw

要は、書籍の方には、SPIコマンドでコントローラのレジスタに
送信内容を書き込んでさえいれば後は勝手に送信するような雰囲気だったんですね。
んで、それを信じてやってたんですが・・。

用意して、そらいけーっていうコマンドがないんですね。書籍コードには。

一体全体なんなんだかわからないんですが・・。
SPIコマンド インストラクションとして先頭にキッチリ書いてあるんですけどねぇ・・。
なんなんでしょうか・・。

あと、PICと共通化してある風なんですが、マクロの嵐になって
とっつきが悪いですよねぇ・・。
まあ、車輪の再発明はわかりますが。

で、ですねぇ、書籍の書きっぷりとしては、シリアル通信を他にも

当然こなして来てんだろうなあ?アン?風なので

こなしてきてない方のための参考事実としては

・ノードは2つ以上ないと正常な反応はできない。
・電気的にノードを外した状態で起動すると、コントローラは信号の送信をしない。


要はテストでも2セットは作っとけよって事ですねw

あたりでしょうか。
つい面倒で、ノードを1個で作ってたんですが、1個ではダメですwww
この事実をデカデカと書いて欲しいですねぇ・・。ループバックモードとかあるしぃ・・w

なんかねぇ、ハードを売らんかな臭がして仕方ないんで結局そこかいってアレなんですが
だったら、ぶっちゃけそう書けって気もするんですねw

どうにも動かないで、ついついハードをポチりそうな
いやらしい流れは好かんです。ええw

ニーズとしては、クルマ関係でっていうのがあるんで、アレなんしょうかねぇ・・。

私なんかはもんのすごいマイナーなニーズなんすかねw
まあ、そうだろうなあ・・。

ああ、すっきりした。

ようし、ちょっと目処ついた。



スポンサーサイト
  1. 2011/11/19(土) 20:21:41|
  2. AVR
  3. | トラックバック:0
  4. | コメント:4
<<AVRでCAN通信 04 | ホーム | AVRでCAN通信 02>>

コメント

へええ~

そこまで追求出来るセンスがすごいです。
  1. 2011/11/22(火) 11:11:19 |
  2. URL |
  3. あつし #2Lhmvk4Y
  4. [ 編集 ]

どもー。いや、基本ネチネチしてるんでw
というか、放り投げるのが悔しいだけなんですねw
だって本に書いてある通りにしてるのに
動かないなんておかしいじゃないですか。

というか、また難関出現で頭ひねってますw

どーしてうごかないんだ・・・
  1. 2011/11/22(火) 21:48:56 |
  2. URL |
  3. 四十朗 #-
  4. [ 編集 ]

詰まっていたのでかなり助かりました
こういう情報は本当にありがたいです
  1. 2013/02/05(火) 17:07:41 |
  2. URL |
  3. ゼロ #-
  4. [ 編集 ]

Re: タイトルなし

> 詰まっていたのでかなり助かりました
> こういう情報は本当にありがたいです

どもー。
お役に立てれば幸いであります・・w
ホビーユースであっても、一人でやってる時ってつらいですよね。
という思いもあり、なるべく書くようにしてます。
  1. 2013/02/06(水) 23:31:51 |
  2. URL |
  3. 半田四十朗 #-
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://handa40rou.blog123.fc2.com/tb.php/235-18286905
この記事にトラックバックする(FC2ブログユーザー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。