半田付けしてます

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

SDカードでまたハマるw

はい、というわけで、久しぶりに大嵌り。
最後の大どんでん返しまで、2週間でありました・・・
どんでん返しは果たしてw
結果だけ知りたいなら、下の方に飛んでくださいw

スクーターのデータを採取したいので、各データをSDカードに記録するというわけですが。

以前、ブレッドボードで組んでうまくいってたんで
そこから、あれこれ捻っての実装。

ハードを組んで、ソフトを組んで、いざ実行。

データロガー01

が、カードを認識しない模様。まあね、多少はね。と始めは余裕w

うまく行った時と違う点

・システムクロック1MHz→20MHz
・他割り込みも発生
・ドライバーは同じ
・SPIの回路は適当
・オール3.3V→システム5V、カード3.3V


信号波形の問題か?


まあ、20倍も速くなってるんで、多少はねというわけで
SDカードのインターフェースの波形を見てみます。
3Vへの降圧ははじめ分圧で10k+15kでやってました。

で、オシロでCLKを見ましたらなんか、見事に波形が弁当のバランのような形になっておりw

00092196-01.jpg

プローブのインダクタンスもあるでしょけど、これじゃあ・・・。

SDカード接続で、電圧シフトで、抵抗分圧でっていうパターンてどうなんでしょう。
まあ、10k+15kだと、電流が足りてないっぽいので、1/10の1k+1.5kにしてみました。

波形は、いい感じになりしましたが、相変わらずノーリアクション・・・。
プログラム的には、

・マウント
・書き込みor新規ファイル作成でファイルオープン


で、ファイルオープンのとこで

Disk Not Ready

というリターンコード。
クロックが速すぎるのかなあ・・・。



クロックを1MHzに


SDカードの起動シーケンスは

・電源ON 1m待つ
・ダミーの74クロックで初期化スタンバイ
・CSをLow
・なんらかしらのコマンド この時、クロック100kH~400kH

ということらしいので、というか、成功した時のパターンに近づけます。
外付け水晶クロックから、内臓RCクロック8MHz+CKDIV8の1MHzに切り替え。
安定度からいうと、マジメに水晶使うのがいいんですが、とりあえず。

しかし、状況変わらず。



抵抗分圧は止め。ちゃんとレベルシフト


手持ちにトレラント用の反転バッファ、6回路入りのCD74HC4049Eがありましたので
これを使ってみます。本当はただのバッファの方がいいですよ。3.3V電源のところへ、5Vの信号を入れます。

オシロで波形を見ますと、さすが、専用チップの威力。
バッチリ気持ちいい垂直の波形です。

これなら文句ないだろ、どうだコラ。



しかし、ノーリアクション。



なんだこいつぅぅぅぅぅ。



ソフトを疑う


ここら辺から、ドライバーのコードにデバッグ用ルーチンを入れて
どこでコケてるのかを見始める。

人様のコードを読むのが苦手ですw

ていうか、なぜif文の後にカッコがないのか、あと#ifとかなんですかとかw

でも、要は初期化シーケンスで撥ねられてることしかわかりません・・・。

ここら辺で、既に休日3日分くらいですw 期間でいうと、一週間くらいたってます。
いい加減ジれてきてますw



うまくいったハードを組み立ててテスト


ここらまで来ると、心が折れかかりますw

こういう時は実働の自作のセットを一個作っておけば良かったと痛感しますねー。

前は、うまく行ったブレッドボードのセットにアドオンで温度計とかくっつけて
ははーんと納得して、あとはバラバラにしてしまったので、現物がないんですよね。
なんでもいいから、完成品つくらないとダメですね。

というわけで、急きょ、ブレッドボードにmega328と3.3V電源とSDカードソケットとプラグラム6Pinポートを組み立てます。
ものの15分ですか。クロックは水晶8MHzCKDIV8で1MHz。

データロガー02

SDカードソケットは、うまく行った時の残骸です。
47kのプルアップ抵抗付で、いわゆるSDカードボードとかシールドとか?

で、うまく行った時のもっとも原始的なプログラムをロードしてみます。
コードで、適当な文字列を大量に書き込む奴です。
AVRStudioからロード。1MHzの1/4以下のクロックで書き込むので遅いです。
ジコジコー・・・。


なんと、一発で成功w



SDカードをセットから外して、パソコンで見ます。
ファイルができており、中身もちゃんと入ってますw

ナンダトォォォォォ?


ついに問題発見


ソフトは問題ない。
ハード? いやいや、ちゃんとレベルシフトもして、クロックも十分遅い。
なにも問題ないはず。

じゃあ、どこだ・・・SDカードの接点とか?

データロガー03

でも、こいつは、ヒロセの新品190円国産だぞー?
いや、でも見てみるか・・。

テスターに0.2mmウレタン線を付けて、カードをセットした状態で
導通状態を見てみます。

DO、VSS1、VCC、CLK、VSS2、DI、とオッケー。残るはCS・・。

ん?




CSが導通不良?????






カードを抜き差しして、ピンの動きを見ます。
あ・・・、なんかCSが動いて「ない」!!!
気持ち浮いてる?????

ピンの接点がカードの接点から浮いてる模様。

カードを抜いて、上からピンをギューっと押さえて、下に曲げてみます。
そして、カードを装着。電源ON。


NO ERROR

ファイルができて、中身も入ってます。


こいつだったのかーーーーーーーーーーーー!!

発見、午前1時30分。近年まれにみるカタルシスw



原因は半田付けによるピン取り付け変形か


多分、カードソケット自体は問題なかったんだと思います。
では、なぜ、ピンが浮いたかというと
半田付けしすぎで、ピンが嵌ってるプラが変形したと思われます。

あと、思い当たるフシとしては、もともと表面実装をユニバーサル基板にのっけるために
ソケットの足が出るところに穴を掘ったりしましたが、この工作がテキトーだったため
取り付けが歪んでたりしてるかもしれないです。

どうもこのカードソケットって嫌いです。
ちゃんと接触してるんだかなんだかよくわからないので・・。

これ、ソケットがリバースタイプの端子の窓が開いてるタイプなのでアクセスできましたが
端子が基板の方に向いてるタイプだと、カードになんらかの工作しないと、確認できないですよね。

しかし、急がば回れですねぇ・・。
物理的な接続のチェックは初めにしっかりやらないとダメですね。
いい勉強になりました。










スポンサーサイト
  1. 2016/02/17(水) 14:08:04|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

RS485 と 複数UART とAVR

はい、というわけで、苦手な通信関係ですw

ボート制御で船外機用マイコンと、姿勢制御マイコンを通信させないといけないんですが
はじめは、CAN通信させようと思ったんですが、やろうと思った事に対してオーバースペックかなと思い
もう少しお手軽なRS485を使ってみようということで。

UARTが足りない!!


で、姿勢制御マイコンの方なんですが、GPSとRS485とAVRをUARTで結ばないといけないんですね。
で、使おうとしてるのはmega328で、ハードUARTが1本しかないです。

えー? UARTって複数と通信できたっけ? あ、できないっすかw

で、同様なニーズがよくあるようで、ソフトでGPIOからシリアル通信するライブラリを皆さん書いてるようです。
元々が、シフトレジスタみたいなもんですから、ハードでやらなくても良いわけです。
割り込みは使えないのでポーリングしないといけないわけですが。

で、そんなライブラリはまた例によってChaNさんのとこにありました。

ソフトUARTライブラリ


CHANさんのライブラリはなかなか優秀で
・2線のフツーのUART
・送信受信を1本で済ます1線式
・アセンブラで記述の極小コード 元々がデバッグ用で作ったぽいです

●使い方
・使うポートを設定
・ボーレートを設定
・反転入力、反転出力らしいので、反転バッファを噛ます
これで大体動きました。

・使うポートを設定
ソースコードsuart.Sに

#define OUT_1 cbi _SFR_IO_ADDR(PORTB), 0 /* Output 1 送信ポートを0*/
#define OUT_0 sbi _SFR_IO_ADDR(PORTB), 0 /* Output 0 */
#define SKIP_IN_1 sbic _SFR_IO_ADDR(PINB), 1 /* Skip if 1 受信ピンを1*/
#define SKIP_IN_0 sbis _SFR_IO_ADDR(PINB), 1 /* Skip if 0 */

とありますので、ここらへんを適当にいじります。
オリジナルはプログラムIOを利用して省ピンを狙ってたりします。

・ボーレートを設定
通信速度を設定します。上記のソースコード冒頭にシステムクロックと通信速度の対応表があるので
この表の値を入れます。

#define BPS 138 /* Bit delay. (see above table) */

AVRのストックのクロック1MHzだと、2.4kbpsくらいにしとくと成功しやすいっぽいです。
システムクロックに対してなるべく遅くしておくと良いです。

・反転入力、反転出力らしいので、反転バッファを噛ます
直にマイコンポートにつなげるのも少ないのでこういう仕様かもしれません。
トランジスタなり、汎用ロジックの540かなんかを入れましょう。

実際のコード



mega328にLCDを付けて、tiny2313から適当な文字列を送って表示させます。

●送信側のキモの部分

ほとんどサンプル通りです。1秒おきに送りたいのでディレイ入れてます。

for (;;) {

_delay_ms(1000);//一秒待つ

/* Send message */
s = mess1;
for (;;) {
c = pgm_read_byte(s++);
if (!c) break;
xmit(c);
}
}


●受信側のキモの部分

ソフト受信関数rcvr()は中で無限ループしタイムアウト管理はしてないです。
何らかのアクシデントで、通信中に相手がハングした場合は、WDTでリセットですかねぇ。
なので、通信開始まで受信ルーチンの中で待っててもいいんですが、もったいないので
通信開始までは他の事をやります。

UARTのプロトコルで、通信開始はスタートビットが立ちます。
これが落ちないうちに、受信ルーチンをコールすればよいです。
下のコードでは、PINBの1ピンがONになるかを見に行って
ONになったら、rcvr()をコールして、受信終わるまで無限ループです。

このコードの例は、GPSのNMEAのGPGGAのセンテンスから必要なものをLCDに送ってます。
NMEAは固定長なので、文字数カウントでベタなコードとなってます。
ここらへんもNMEAのライブラリが出回ってますので、そちらを使うとと幸せかもしれません。


for(;;) {

if(PINB & _BV(1)){
for(;;) {
c2 = rcvr();

if( c2 =='$' ){
lcd_gotoxy(0,0);
wc=0;
}
//北緯コンマ以下
if(wc==20){
lcd_putc('N');
}
if(wc>21 && wc<28){
lcd_putc(c2);
}
//東経コンマ以下
if(wc==33){
lcd_putc('E');
}
if(wc>34 && wc<41){
lcd_putc(c2);
}
//位置品質
if(wc==43){
lcd_putc('Q');
lcd_putc(c2);
lcd_putc(',');
}
//捕獲衛星数
if(wc==44){
lcd_putc('*');
}
if(wc>44 && wc<47){
lcd_putc(c2);
}
++wc;
if(wc>77){break;}
}
}
}

というわけで、めでたくGPSから現在地を受け取って、船外機にコマンドを送れることがわかりました。

RS485


これについては、特に難しいことはなく、TxとRxと、送受信切り替え端子をパタパタやると
ノイズに強い差動で遠隔と話しができます。
RS485自体は電気的な規格だけなので、あとは自由です。
プロトコルはUARTまんまです。
チップは秋月のSN75176BPで@\80が安くていいです。
LTCの\150もありますが、違いがわかりませんw

ケーブルはツイストペアケーブルであればよく、LANケーブルとかUSBとか利用できるみたいです。
実験では、ヨレヨレになった1mの平行ビニル線でつなぎましたが、問題ないです。
マジメにLANケーブル使えばまず問題ないでしょう。

今回は、デキの悪い交流発電機と、エンジンのCDIノイズの中での通信となりますので
ノイズ対策という意味であります。

さあ、あれこれ確認できましたから、いよいよ、基板レイアウト入れます。
やあ、長いなあ・・・w







  1. 2015/09/30(水) 10:11:05|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

GPSモジュール GT-720F ATmega328P

はい、GPSとお話しです。ボートホバリング制御用です。

大分昔に買ったGT-720FからNMEAを拾ってLCDに表示して、値のドリフトなんかを観察します。

ポイント

・GT-720のI/Fは3.3V固定(本体5Vでもw) 5Vシステムではレベルシフトが必要
・以前、ボーレートを11万くらいにしてて、9600あたりで接続しようとして全然つながらなかった
・GPSモジュールの設定にはSkytraqというソフトで行う。
 その際に、USB仮想ポートモジュール(FT232RL USBシリアル変換モジュール)でPCと接続した。
・NMEAセンテンスは$GPGGAだけ出力するように設定。北緯東経だけわかればいいので・・・。
・精度を高めるD-GPSモードは、内地では電波がない。洋上に出るとある。
・捕獲する衛星は9個くらい。これで最小桁まで動かなくなる。(本機静置観察した場合)

ということで、海に出たらD-GPSも加わり実用的な固定位置検出が可能と。

gps1.jpg
レベルシフトにはバッファを使用

gps2.jpg
表に持って出るので、モバイルバッテリーの5Vで駆動。タッパーに入れてレジ袋にいれます。

gps3.jpg
夜なのでこんな感じ。怪しくレジ袋が光りますwww

USARTのライブラリ使ったんですが、なんかあんまり有難味がないようなw
自前でリングバッファ実装しないので、まあ便利かなあ。
基本、1秒ごとののんびり処理なので、余裕ですね。









  1. 2015/09/14(月) 10:08:03|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

AVRStudio4 ライブラリのインクルード方法w

はい、オッサン、AVRで何本エントリ書いてんだよと・・wwwwwwwwwww

今までですね、ライブラリファイルをあんまり使わなかったりする原因がここにあったんですね。

なんかよさげなデバイスがあって、当然先人が物凄い勢いでライブラリにしてくれたりして
これ使うと何も考えないで結果だけゲットできるんだよなーとか思うわけですし
実際みなさんそんな感じでひょいひょいやってるわけです。

で、そんな先人のソースを見ますと
ライブラリのヘッダファイルだけインクルードしてるんですよね。

え、ライブラリのソースファイルはどっからリンクすんの?

ずっと疑問だったんです。

え、そんなんでどうやってライブラリを使ってんだよって罵声が聞こえそうですw

#include"hoge.c"

とかやってましたw(アホですwヘッダファイルなしw)

で、ですね、ボートのホバリング制御で方位を知りたくて
安く出回ってる電子コンパスセンサーあるじゃないですか、HMC5883Lとかいうの。
スマホ様様ですよね、アマゾンだと300円くらいですw

これのライブラリを使いたくて、よくよく調べてみましたら。
え?コレでよかったのというのが本日判明。

インクルードファイル

このSourceFilesにAddすれば良かったんですね!!www

いや、ながらく、ヘッダーファイルがリンクしてくれるもんだとずっと思ってたんで
山のようなエラーを見ながら変だなー変だなーと思ってたんです。

ただ、やってることが、あんまり大物扱わなかったんでそんな感じで済んでたんですけど
やっぱいろいろデバイスをぶら下げないといけないと、ここはクリアしないとマズいわけで・・・。

というか、凄いですよ、ライブラリをちゃんと使えるようになるとw
数時間でデジタル方位をLCDに表示できましたw
I2Cインタフェースなんですが、何も触らずに一発通過です・・。

コンパイルエラーも全然なし・・・。
いや、これが世間並みということなんですね・・・。
いやー、I2Cのとこで、またぞろ数日難航するかと思ってたんですが・・・凄い・・・。

電子コンパス

ちゃんと、磁北指しますよブレッドボードがw
ネオジム近づけるとちゃんと狂うしw

これをもっとイージーにするとアルドィーノとかラズベリーパイの世界になるわけですよねぇ・・。
てか、これできなきゃ、流行るわけないわけです・・。

今まで一体自分は何をやってたのかとw
でもかなりうれしいです・・・w





  1. 2015/09/10(木) 01:24:15|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

ああ、2313が230円に!

はい、秋月見てて今日気付きましたw いつからこんなに値上げしてたんでしょうか・・・w

100円マイコンということで、買い込んでなかなか消費できないんですが
お値段2.3倍とかになってると、なぜかポイポイ使おうって気がなくなるのはなんなんでしょうw

こんなんだと、megaのローエンドの方が、実装上の都合がなければいいですよねぇ。

で、代わりに861A-PUが200円ですねぇ・・・。プログラム8KのADC付きだから文句あるめぇってことですかねw

ドラゴン使って相変わらずシコシコ作ってますが
PICが光ってるなあ・・w

ていうか、作るもの作ってからにしろよってとこですがw




  1. 2015/08/31(月) 02:10:38|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

TIMER1とアナログコンパレーターで捕獲割り込みでハマる

キッチンタイマー液晶

はい、というわけで、GWにもかかわらず、地震が危ないというわけで
インナードアでありますw

で、またしても100均アイテムでありますが、キッチンタイマーの液晶でありますw
相変わらず、小さい液晶がなんだかほしい事があるので20pinマイコンと組み合わせて
ごそごそしておりますw

で、当初の目的は置いといて

AVRのハマったポイントなどを。(忘れないうちに記録!!w)

タイトルの件ですがあ。

まあ、大体なにをしているかというと、AC(アナログコンパレーター)でADCをする
アレですね、アレですW

ブレッドボードで適当に組んでいるときはうまく動いてたんですが
上記写真のようなパッケージにしましたら動かなくなりw

症状としては、

・タイマーを仕込む
・ACを仕込む
よーいドン!

無限ループで待ちます。
で、ACがひっくり返って、捕獲割り込みがかかりまして値が入ったら
これを適当に処理して、100円液晶に表示という塩梅であったんですがあ。

待てど暮らせど割り込みがかかりませんw

ハードが悪いのかとか
プログラムが悪いのかとか
ググったりなんだりして
1日くらいいじくってましたがw

結論はですね、
捕獲割り込みは結果の入るレジスタに一回アクセスしないと
次の割り込み準備ができないって事みたいですw


ICR1((Timer/Counter1 Input Capture Regist)

こいつですね、こいつ・・・。
あ、ちなみにターゲットデバイスは2313であります。
変な仕様ですが、データシートになんか書いてあるかもしれませんw

なので、初期化ルーチンの中で
とにかく無意味に一回読み出したら
アラ不思議バッチリ動いてしまいました・・。


なんかどっかのレジスタをパタパタすると動くようになるのかもしれませんが
面倒なのでこれが簡単そうです。

AVRの捕獲割り込みが反応しない時はここらを疑るのもいいかもしれませんって
前どっかに書いてあったかなあぁうぅ一日返せw

で、これを使って何をするかというと
また後日w

追記 2015.8.20

同様なもので、バイクの電圧警告計とか作ろうと思い
あれこれやってましたら、上記の症状はでなかったので、訂正。

充電コンデンサーが前書いたように10nFでやってたんですが
容量が足らず、数uSecで立ち上がってしまって、8MHzクロックで測れなかったというのがあり
以前のセットで本当にできてたのが怪しいですw
今回は、0.1uFでやりましたら、ちゃんとカウントできました。

あと、前はセラミックコンデンサーに充電してたんですが、これを
フィルムコンデンサに交換しましたら、充電電圧の直線性がよくなりました。
これなら、単純に時間と勾配の掛け算で電圧が出そうなのでいいですね。

電圧を知りたいだけなら秋月のこれ使えばいいんですが
どっちかというと、電圧もわかりつつ、警告も出して欲しいので自作というわけ。
昼間の屋外でちゃんと見えないと意味ないので、LEDが使いずらいです。
で、輝度上げると今度は夜眩しいということで、暗くなったらPWMということで・・・。




テーマ:電子工作(`・ω・´) - ジャンル:趣味・実用

  1. 2014/05/05(月) 19:07:46|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

ATmega64Aの足のパターン

はい、というわけで、いよいよホバンリング制御装置を作ろうと
足がいっぱいついてるのを買ってみました。

んで、変換基板でもいいんですが
基板を起してやろうというわけで。

しかし、14mmに16本もピンが並んでますので
ちょっと慎重にいきます。
で、PCBEでパーツを作って、紙にプリントアウトしてみました。

mega64_1.jpg
現物あわせします。
手で直接触るのが躊躇われますのでピンセットでつまんだり。

mega64_2.jpg
拡大

mega64_3.jpg
合体w
むむー? なんかピンのピッチが合ってないですねぇ・・・
データシート読み間違えましたかね。
こういうのがあるんで、ぶっつけ本番はできませんw
ちょっとズラせば乗らないわけじゃないですが
気持ち悪いので直します。




テーマ:電子工作(`・ω・´) - ジャンル:趣味・実用

  1. 2013/10/24(木) 14:39:13|
  2. AVR
  3. | トラックバック:0
  4. | コメント:2

Tiny2313のアナログコンパレータでA/D変換

はい、今更な感でありますが、むかーしの電動ドライバの電池の充電器を作りたく
100円マイコンのtiny2313で電圧を測りたいということであります。

でも、Tiny2313をわざわざ使う必要って今はもうないですよねぇ。

秋月価格ではありますが、
8ピンのtiny13がADCを積んで50円で
mega88vもADCを積んで150円です。


間の100円が2313でありますが、実際所在なさげでありますw

あと、PICの扱いが物凄くなってますw
アーキテクチャはちょっとつかいづらいんですが、選ぶのに困るくらい品種が多く安いです。
Cで組むなら大して変わらんて話もあるんでちょっとグラグラきてますw

なので、この記事を書いても今後ニーズはないだろなというわけで。
ま、ただ、在庫があるんで、使い切りたいというわけで。

プログラムポイント

基本は、いろんなところでやられている通り
AIN0につないだ10nFくらいのコンデンサを
よーいドンで充電して
ターゲット電圧につないだAIN1と比較させて
コンパレータがひっくりかえった時の
タイマー1のカウントを読み取る。

ということです。

ただ、ACOとタイマー1の捕獲割り込みのコンビネーションがちょっとわかりずらいので注意であります。

プログラムのポイントとしては、ACOと割り込みを組み合わせると
比較条件が整ったら延々割り込みかけつづけるんですねw(バカっぽいことにw)
なので、捕獲割り込みの処理内でまずやるべきことは

充電停止でありますw

割り込みを停止させるのもいいんですが
今回の捕獲割り込みの場合、cli()してもコンパレータとタイマーの接続を切らないと
キャプチャーしつづけるっぽいですw
なので、キャプチャレジスタがなんだか空だったりしたらここらを疑うべきかもしれませんw

以下は、ChaNさんが紹介してた、AIN0のポートのプルアップ抵抗を通して充電するやり方です。
コンデンサをつなぐだけなので、簡単です。
2V以下でリニアリティがあるとか書かれてましたがAT90S1200での結果なんですかねぇ
Tiny2313では、けっこうなカーブになってしまい、簡単な計算では正味な電圧は出そうもありません。


cのみ

コード c

コピペするならインクルードファイル名は半角の大なり小なり記号
くくりなおしてください。



/**************************************************

アナログコンパレータをADCとして使うテスト 2013.09.08(Sun)

PB0をオシロスコープで監視
プルアップ抵抗で充電
ACでタイマ捕獲割り込み

***************************************************/

#define F_CPU 8000000UL

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>



volatile uint8_t T1CNT = 0;


/* T1捕獲割り込み処理 */
ISR(TIMER1_CAPT_vect) {

PORTB &= ~_BV(0);//プルアップOFF
DDRB |= _BV(0);//出力に設定して電荷を抜く


}



/*     メイン     */
int main (void) {

/***************************

アナログコンパレータ設定

***************************/


// ACSR |= _BV(ACD);//1:Analog Comparator Disable
// ACSR |= _BV(ACBG);//1:Analog Comparator Bandgap Select 内部基準電圧
// ACSR |= _BV(ACO);//Analog Comparator Output
// ACSR |= _BV(ACI);//Analog Comparator Interrupt Flag
// ACSR |= _BV(ACIE);//1:Analog Comparator Interrupt Enable 割り込みON
ACSR |= _BV(ACIC);//1:(Analog Comparator Input Capture Enable
ACSR |= _BV(ACIS1);//Analog Comparator Interrupt Mode Select
ACSR |= _BV(ACIS0);//Analog Comparator Interrupt Mode Select 立ち上がりで割り込み

// _delay_ms(10);//基準電圧が立ち上がるまでちょっと待つ(Max70uS)


/***************************

タイマー1

***************************/

// TCCR1A |= _BV(COM1A0);
// TCCR1A |= _BV(COM1A1);
// TCCR1A |= _BV(COM1B0);
// TCCR1A |= _BV(COM1B1);
// TCCR1A |= _BV(WGM10);
// TCCR1A |= _BV(WGM11);

// TCCR1B |= _BV(ICNC1);
// TCCR1B |= _BV(WGM12);
// TCCR1B |= _BV(WGM13);
// TCCR1B |= _BV(CS10);
TCCR1B |= _BV(CS11);//プリスケ1/8
// TCCR1B |= _BV(CS12);

TIMSK |= _BV(ICIE1);//捕獲割り込み許可


DDRB = 0;//Bピン入力設定




sei();



/***************************

メイン

***************************/


for(;;){

T1CNT = 0;
DDRB &= ~_BV(0);//入力設定
PORTB |= _BV(0);//プルアップON

_delay_ms(1000);//1秒待ち



}




}





ただ、目的の電圧が固定で決まってて、そこでイベントを起こしたいなら
これでも問題ないわけです。
ただ、目的の電圧が可変の場合は使えないんですよねぇ。
で、簡単に充電電圧と充電時間が正比例するよう方法はないのかなと思ってましたら
なんのことはない、ATMELのアプリケーションノートに上記とは別の方法がちゃんと載ってましたw

PNPのトランジスタと100kΩ~1MΩくらいの高抵抗で定電流充電ができるようです。
ChaNさんのページにもあったCRDで0.1mAを流す方法なんですがCRDが高い・・・
1本50円ですw

いや、50円が高いというのではなく
50円でちゃんとしたADCを持ったマイコンがあるのに

ということですwww

そうです、なんでしょうこのTiny2313縛りw
いっそのこと2313を全部捨てたくなりますwwww


てわけで、回り道してますが
こんな回路で3Vくらいまでなら、いい感じの直線ぽい充電ができるようになります。

cとトランジスタ

PNPはおなじみ2SA1015であります。
これなら、10円くらいです。SMDならもっと安いです。
ふう、今日はここらで勘弁してやるって感じですwww

ま、ただ、定電流を流す回路とか調べていろいろ面白かったですよ。ええ。



テーマ:電子工作(`・ω・´) - ジャンル:趣味・実用

  1. 2013/09/12(木) 14:43:34|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

出力しようと間違えてPINに書くとどうなるか

はい、お暑うございます。

船外機用のエンジンタイマーを作ってまして
Tiny2313に、スイッチを4個とLEDを9個とPWM出力であります。

で、首記の点でハマりましたのでメモ。

LEDの電流を吸い込みとして流したいので
DDRDの0を出力に設定して
PORTDの0を操作するところを

PIND の0を操作すると何が起きるでしょうか?w


答えは

PIND0を0→1にするたんびに
PORTD0が交互出力しますwww


プログラム自体は、スイッチを押すたびに
LEDがついたりきえたりします。

なのですが、スイッチを二回押すと、つき、更にもう二回押すと消えますw

単純なロジックだったので
何が穴なのかわからず、いままでのプログラムの作法を疑ったりしてましたが。

原因は

ポートの設定をヘッダファイルでマクロ定義なんてしゃれた事しまして
そこでシクりましたw


/*運転ランプLED ポート*/

#define DRIVEPORT PIND
#define DRIVEPORT_DR DDRD
#define DRIVEPIN _BV(0)


ってワケですw
マクロでポートの設定とか書いておくと
あとで移植の時楽かなとか胡坐かくとこうなんですよねぇ・・w
ヘッダファイルとか、自分みたないズボラな性格の人間は注意しないといけませんねw

でも、今回、スイッチの処理をマジメに取り組んだりしてたんで
こういう罠があると逆にわからなかったりしました。






テーマ:電子工作(`・ω・´) - ジャンル:趣味・実用

  1. 2012/07/31(火) 14:25:49|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

AVRのADコンバーターの使い方

はい、というわけで、何かロギングする時は、これは必ず使うのでどう使うかのメモ。
ATmega328Pで試しました。

とりあえず動かす為に理解すべき事w


・ADCまわりでつなげる端子は、
 ・コンバーター用電源の端子に5Vとかの電源
 ・測定したい電圧をADCのチャンネルのどれかにつなげる
 ・基準電圧を外部から供給したいなら、AREFに3.3Vとかつなげる。
 ・GND
 あ、もちろん、マイコン自体の電源も必要なのでそっちもつなげますよ?w
 これでプログラムを書けば測定できます。

測定電圧範囲は、基準電圧~0Vの間になります。
 基準電圧は、AVCC、内蔵1.1V、外部基準電圧から選べます。

・この基準電圧~0Vを1023ステップに等分した電圧が分解能になります。
 たとえば、内蔵1.1Vを基準にした場合、1.07mVが1カウントなります。
 対象電圧を計測して500カウントだった場合

 1.07mV * 500 = 500.35mV

 大体、0.5Vという訳です。

 内蔵1.1Vだと1カウント1mVって丸めると
 計算が楽なんでいいんですが、1.1Vまでしか測れませんね。
 ダイレクトに電圧を測る場合はそうですが、対象電圧をそのまま入れないんでしょうね。
 分圧とか、オペアンプとか使って、読める電圧にして計測するのが実際だと思います。

・また、一つしか電圧を測れないのも不経済wなので、プログラムから
 切り替えて計測できるようになってます。
 これがチャンネルっていうものらしいです。

で、あとは、データシートを読んでもらえれば
細かい事がいろいろ分かるはずです。

このとっかかりが、web漁ってもわかりずらいんですよねぇ・・。

ミニマムなCのコード




/*---------------------------------------------------------*/
/* AD変換の割り込みルーチン */
/*---------------------------------------------------------*/
ISR( ADC_vect ) {

uint8_t dataH,dataL;
dataL=ADCL; //Lを先に読むこと
dataH=ADCH;
ADC_data = (uint16_t)dataH*256+(uint16_t)dataL;

}



ADMUX = 0b00000001; // 外部基準電圧選択、ch1選択
ADCSRA = _BV(ADEN)|_BV(ADIE)|0b110;
/*
ADEN : A/D許可 (ADC Enable
ADSC : A/D変換開始
ADATE : A/D変換自動起動許可
ADIE : A/D変換完了割り込み許可
ADPS2~0 : A/D変換クロック選択
*/

ADMUX = 0b00000001; // 外部基準電圧選択、ch1選択
ADCSRA |= _BV(ADSC);//ADC変換開始





以上のコードは、プログラム中から変換開始をかけ
割り込みで結果を取り込んでいます。




というわけで、測定結果が実数の領域になってきました。
マイコンは小数点が嫌いですが、なんとかやらせましょうw



テーマ:電子工作(`・ω・´) - ジャンル:趣味・実用

  1. 2012/03/07(水) 10:08:03|
  2. AVR
  3. | トラックバック:1
  4. | コメント:0

SDカードをmega328Pで使う

はい、というわけで、うまいこと動きました。

AVR試用記の方では、かなり苦労されてたので、しばらくかかるかなあと思ってたんですが
あっさり2日でイケました。

でも、ハマったポイントはいくつかあったので記録しておきます。

●まず、最初にを読めを読めw


ChaNさんのFatFs 汎用FATファイルシステム・モジュール
ええ、これ読んでたらもうすこし速かったかもしれませんがw
ページの下の方にリンクがあったので、そこまで見てませんでした。
とにかく、これを読んでからですね。


●基本的には4線でイケます


mmc.cの方で、あともう一個、オリジナルだとPORTBの0で
カードの有無を判定してるので、
これをグランドに落としてやると動きます。

SDカード説明
黄色をAVRとつなげばいいわけです。

●要求プログラム領域


AVRのgccの環境で12kは食います。これはコレを読めに
各環境でしっかり調べ上げた素晴らしい表が出てます。
なので、必然的に、対象CPUは16k以上のメモリを積んだものになります。
ただ、ディレクトリー操作とか、運用によっては、不必要なコマンドもあるので
これを削除するともっと小さくなると思います。


●クロックの設定


今回328Pのデフォルト1MHz駆動でやったので
初期化のところで、タイマーカウンターの値を調整してやります。


●AVR5V化


SDカードは3.3Vで動くので、これに合わせて、
システム全体はを3.3Vで動かしてもいいんですが
構成上AVRを5Vで動かしたい場合は
信号のレベルコンバートをしなくてはいけません。

で、以下のごとく

・5V→3.3V

今回の回路ではAVRから指図する線になりますので
SCK→CLK
MOSI→DI
SS→CS
がこれにあたります。

・3.3V→5V

MISO←DO

これはノーケアでいいみたいです。
判定スレッョルドよりも上なので、3.3VはONの模様です。
一回線だけなので、トランジスタの反転回路×2でよさげですが、ちょっと面倒ですねぇ。

カード挿入、および、ロック判定



カード挿入判定のスイッチはチャタリングが多めの模様です。
なので、チャタリング対策は、時間を多めに取るとか
CR回路を入れるとかで対処すると良いです。
これで、しばらくハマりましたw

詳しくは調べなかったんですが、オリジナルの回路だとPINBの0とAVRは直結だったんですが
これをCRで遅延を入れると、カード挿入と同時に何かをする場合にはうまく動く可能性が
高まります。

ドライバーの完成度は、絶賛されておりますねぇ。
実際、ブレッドボードのもやし配線でmega328で一発で動きましたから。
すばらしいです。

さあ、これを使って何をするかですが、簡単なデータロガーを一発。

クルマのバッテリー電圧監視なんかやってみたかったんですよねぇ。
週末しか乗らないんで、冬場なんかはちょっと苦しいんですね。

で、太陽電池パネルを積んでるんですが、増設しようかどうしようかと
その判断材料で、見てみたいんですね。

次はADコンバータですね。


テーマ:電子工作(`・ω・´) - ジャンル:趣味・実用

  1. 2012/03/06(火) 14:50:30|
  2. AVR
  3. | トラックバック:2
  4. | コメント:0

AVRstudio 4.18 もういっぱいエラーw / AVRでSDカードドライブ

はい、というわけで、データロガーなんかを作りたく
ごそごそやっておりますがあ。

とりあえず、記録媒体にSDカードにして、そこへFAT16フォーマットの
ファイルかなんかを書ければいいわけなんですが。

んで、ChaNさんのライブラリを使わせていただき
ファイルを新規オープンしまして、ライトしてクローズするだけのmainを書きまして
ビルドして塩梅を見ましたら

c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.exe:
sdcard_test.elf section .text will not fit in region text

c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.exe:
region text overflowed by 4042 bytes

text will not fit in region text

ってなんじゃらほい?
ググってみましたら、

指定のAVRだとはいんねーよ?

ということらしいです。
SDカードにテキストファイルを書くだけで、11kバイトくらいになってしまいますw
でもこのライブラリはコンパクトらしいです。
mega88でやろうとしてたんですが、全然入りません。

あー・・・んじゃあ328かあ。

やっぱ、パソコン環境に近づくと急にリッチになっちゃいますねぇ。

例のボートのホバンリング装置は64くらいないと厳しいかなあ。
やる内容にもよるわけですが、インテリジェンスな処理が絡むようなのは
やっはでかいマイコンの方がよさそうですねぇ。

DSCF0316.jpg


テーマ:電子工作(`・ω・´) - ジャンル:趣味・実用

  1. 2012/02/04(土) 17:14:39|
  2. AVR
  3. | トラックバック:1
  4. | コメント:0

アワーメーターの自作

はい、というわけで、100円電卓液晶ドライバが、なし崩しにアワーメーターになりつつありますがw

アワーメーターというのは、エンジンなどの稼働時間を積算表示する時計です。
で、その時間で何を知りたいかというと、オイル交換のタイミングです。
クルマとかバイクなら、走行距離がこれにあたりますが
船外機とか、発電機だと、どれだけ稼動したかっていう目安がありません。
なので、何時間くらい動いたよというのが判るとある程度の目安になるわけです。

で、100円電卓液晶ドライバに時計機能と、点火ノイズピックアップを取り付けると
だいたい市販品と同じになるわけです。

材料費としては

100円電卓    100円
tiny2313    100円
D-FF 3個    60円
低電圧駆動オペアンプ 30円
シュミットトリガインバータ 10円
ジャンクからチップ抵抗とチップコンデンサ 0円?
基板


(単品では売ってないものがあり 大体秋月お宝印)

というわけで、買うと3000円くらいのものが
材料費だと500円くらいでできますが
自分の人件費とか光熱費とか考えますと
とってもじゃないけど合いませんw

まさしくオッサンの自己満足の極みであります キリッ



で、大体アウトラインはできたので、クルマの点火ノイズを拾ってみました。




大体良さそうですw
最後、表示が消えたのは、接触不良かノイズでリセットが
かかったような感じですねぇ。

点火ノイズピックアップ部

参考にしましたのはこちらです。ありがとうございます。
今回、小さくしたいのでオールSMDであります。
チップ抵抗とコンデンサはジャンクからのリサイクルです。
いやあ・・毎度毎度TSSOPパッケージは痺れますねw
オペアンプとインバータは両面テープと紙で基板に張り付けてあります。
配線は例によって0.13mのUEWです。


修正です。回路図間違ってました。オペアンプの+-が逆でしたw
これでなんでうごいたんかなあ・・配線でまた間違えてうまくうごいたのかなw
アワーメータ誤り

こちらが正解。
アワーメータ正しい


オペアンプは2個使い、点火ノイズを増幅(1000倍)します。
システム電圧は2Vまで低下して動かしますので、低電圧のものを使います。
ダイオードクリップして、振幅制限して、カップリングコンデンサで
次段に伝えてます。

オーディオじゃないんで、パーツ定数はアバウトでもオッケーなようです。
抵抗が10kΩ、100kΩ、1MΩ、コンデンサが1nF、100nF(ナノ表示が好きな最近でありますw)

で、増幅した信号を受けてデジタルにするのは、オリジナルだとコンパレータを使ってましたが
手抜きでここはヒステリシスなシュミットトリガーインバータですw

回転数なんかも計測したい場合、ここらをきちんとしないとマトモな数字がでてこないんですが
今回は「動いてる」ことが認識できればいいだけなんでこれで良しとしますw

で、これを液晶ドライバのINT0に接続します。
スリープからの起動を考え、パルスを反転して
電圧がLowになった時が信号あり、にします。


が、信号が入りませんw

単品で、ピックアップの出力を見てますと、
蛍光灯のON/OFFとか、アンテナ線を手に持ったりとかすると
なんか出てくるんですが
つなげると、ONになりっぱなしになりますw

なんじゃこりゃ・・。

最近、この手のユニットとユニットをつなげる時に何か起きますねぇ・・・。

CANとAVRをつなげた時のアレだと、プルアップかプルダウンでしたっけ。
つーと、プルアップでしょうか。
試しにピックアップの出力を10kで吊って、Tiny2313のINT0に入れて見ます。

おお、うまくいきましたw

でも、なんだか2発目が来ないですねぇ・・・。
蛍光灯のパルスは数が少ないのと、弱いのでこんなもんでしょうか。


アワーメータの制御シーケンス

大体、こんな感じでしょうか。

1.電源ON
2.EEPROMに前回の数値が入ってたら、そこから開始
3.エンジンパルス入ってきた
4.液晶駆動開始
5.カウント表示
6.エンジンパルスが入ってこない
7.EEPROMにカウント値を保存
8.パワーダウンスリープに入る
9.パルスが入ってくると起きてカウントする
10.起動中、PIND2が長くLow(リセットボタン長押し)になったら、EEPROMとカウント値をリセットする


電源としては、ボタン電池か単4ですかね。

EEPROMの書き換え限界というのが10万回らしいので
たとえば、一日に20回エンジンを止めたり起動したりしても
5000日は大丈夫ということですかね。

市販品もここら辺の制限があるようで、モノによっては
使い捨てっぽい仕様になってるようです。


AVRの電池アプリケーションのいろいろ

・電源電圧低下による誤作動防止のために
電圧監視は必須。特にEEPROM書き込みの場合1.9V以上でないと
正常に書き込めないらしいので、tiny2313Vの1.8VBODリセットはアテにならない。
ということなので、AIN1を空けないとダメなんですが、
今回は全ピン使い切ってるので無理w
なので、今回のセーブポイントはエンジン停止してから一定時間後ということに。

・パワーダウンスリープの時にはSRAMは保持され、実行は
割り込み処理を入れてる場合は、割り込み処理をしてから、実行したsleep命令の後から再開される。
→SRAMが保持されるから、頻繁にEEPROMに書かなくてよい。

・起動に外部割込みを使ったが、ウォッチドッグタイマも使える。
しかし、なぜかリセットがかかってしまいよろしくない。なんか設定があるのか?

で、現状、適当に作ったケースに入れましてこんな感じです。

アワーメーター完成

気のせいか液晶が変わってますが、その通りですw
ヒートシールコネクターの接着にちょっと失敗しまして、別の電卓液晶を使ってます。
液晶の表示パターンなんてどれも同じかと思ったら、意外や結構バラバラです。
まあ、7セグの表示パターンを変えればいいんで大した手間じゃないんですが
ちょっとアレなポイントであります。

船外機とか表で使うんで、気密なケースがいいんですが
まあ、とりあえず、ビニル袋にでもいれときますか。





テーマ:電子工作(`・ω・´) - ジャンル:趣味・実用

  1. 2012/01/17(火) 14:19:33|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

AVRでCAN通信 05


はい、というわけで、受信側もなんだかよくわからないまま動きましたw

can05.jpg

これが原因だっていうのが分からなくてすっきりしないんですが・・。

いろいろやったこと

・トランシーバーのMCP2551のスロープコントロールの抵抗をマジメに設定した。(送信側にしか設定してなかった)
・コントローラとAVRのSPIのプルアップ抵抗をプルダウン抵抗に変更した。
・クリスタルの取り付け位置をコントローラの直近からブレッドボードの端まで離した。


こんくらいですかねぇ・・・。

ただですね、これらのものを元に戻しても、動いちゃうんですねwwww

となってくるとですね、ブレッドボードのいつもの悪いクセ。
接触不良の箇所がどこかにあるってことですかね・・。

いやな予感は、これなんです。

このブレッドボード捨てるかなw
やっぱ、捨てユニバーサル基板にペタペタ乗っけたほうが確実ですかねぇ・・。

というか、このユニバーサル基板もCDIの試作とかいろいろやってきてますから
どっか焼けてるような気もしますw

ブレッドボードの嫌な所って、内部がどうなってるのかかが全然わからないところですかね。
短絡させて、焼けてるところとかもわからないです。
透明のブレッドボードとかあるといいかもしれないですねぇ。

新しいブレッドボード買っておくかなあ。

これから、実機基板設計して落とし込みしちゃいますが、まあ行けるんじゃないでしょうか。

というわけで、とりあえず、書籍情報は基本問題ないんですが
送信側のコマンドの発行の例の箇所だけですかね、どうやっても動かない部分は。

デジタルのこの手の工作はいきなり、リファレンス通りにハンダ付けした方が
早いような気がしてる今日この頃であります。
書籍のモジュール化してるのっていうのは、多分、ここらがあるような気もします。




テーマ:電子工作(`・ω・´) - ジャンル:趣味・実用

  1. 2011/11/28(月) 14:24:27|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

AVRでCAN通信 04

はい、というわけで、今度は受信ができませんw

受信用ノードでメッセージを読めませんw

状態
・受信バッファチェックフラグが上がらない
・そのくせエラーステータス(EFLG)を見るとワーニングとか全部点灯してますねぇ・・w

SPIのアクセスはうまくいってますねぇ。
SPIの罠はクリアされてるようですw

じゃあなんですかねぇ・・・。

トランシーバから、コントローラのRXDには信号はきてますが
ちゃんと読めてないようです・・・。
波形もフルイスングしてますから、特に問題はないっぽいです。

信号が来てるのに、読めないというのは・・・。
クロック?

コントローラのクロック出力ピンをオシロで観察してみますと・・・
なんか片方にトリガーをあてると
もう片方が流れますねぇ・・。ズズーっと。

でも、このCAN通信の場合、微妙なズレは吸収するようになってるハズですが・・。
クルマに実装される時なんかは、車外環境でマイナス20度から
社内の26度で、その差50度くらいになりますからねぇ。

あ、初期化のところで、補正幅を指定するパラメータあったかな。

あ、あるある。PJWとかいうものがソレっぽいですね。

これが、書籍コードだと0だと、ズレ幅補正しないっぽいですねwww
データシートだと、1で大体オケって書いてありましたね・・。

またグチっぽくなりますが、あの評価基板を使うと
周波数安定性も揃うんですかねぇ・・・。
それを見込んで、この設定なのかなwww

ブレッドボードでも簡単に組めますよみたいな事書いててコレだもんなあ・・。
水晶発振まわりは、ブレッドボードだと安定しないんですよね。
負荷容量のセラミックコンデンサも実はノードごとにちょっと違うんです。

書籍の原稿って、失敗例とか上げないですよねw

失敗をどう克服したかってのが結構重要だと思うんですが
そういうのを書かないですよねぇ・・、なんでかなあ。

いい加減、書籍コードに疑念沸きまして、他に使えそうなライブラリないかなあと
アトメルとかマイクロチップあたり見て回ってたんですが

よくよく考えると、アトメルとマイクロチップの組み合わせのライブラリって
微妙じゃね?と気がつきw 同業って奴ですよねw
うーんwww

ということで、また、ちょっと実験してみますw
ああ、もっとサクっと動けよこのやろう!!


  1. 2011/11/24(木) 14:28:24|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

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通信 02

はい、というわけで、未だ動かずw

やったことは以下のとおり。

・SPIの原理の確認 いまさら
 SCKの下がりで同期、上がりでデータ取り
・コントローラーの交換、2313の交換w
・2313のクロック変更
・プログラムをあちこちイジって変化を見る

多分、実績のあるコードなんで、ハードの方に原因あるんじゃないかと思ってたんですが
全然動きませんねぇw

動いてるかどうかをどこで見てるかというと
MPC2515のTXCANとかですかね。

あと、ノードが1個だけだとコントローラーは信号を出そうとするんですかねぇ・・・
お試しなんで、ハードをもう一個作るのが面倒くさいんで
作ってないんですが、バスモニターとして、一個作りますかあ・・・。

LCDと、USBインタフェースつける位しないと作る意味ないんですがw

ここらへんのハードになると、腰すえて作らないと何が悪いんだか
わからないのがいやですねぇ・・w

うーむ・・・w

テーマ:電子工作(`・ω・´) - ジャンル:趣味・実用

  1. 2011/11/18(金) 14:09:39|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

AVRでCAN通信 01

はい、というわけで、魚釣りのほうで、あれこれしてますが
電気関係を進めます。

全長3mしかないゴムボートなんですが、マイコンの5Vまんまじゃヤバいでしょうということで
CANインターフェースを導入してみましょうということで。

CAN通信

脆弱ドラゴンのパーツをデジキーで寄せる時についでに
10セットほど、MCP2551とMCP2515を買っておいたものを引っ張り出しまして
とりあえず、1ノードだけのものをtiny2313とブレッドボードに組んでみます。

ドライバは、こちらのものを使い、ろくにデータシートも読まないで
サンプルコードを適当に削りましてやってみますw

で、動かないんだなwww

はじめ、コントローラにクリスタル付けないでやってましてうごかねぇ・・・。
とかやってたんですが、どうもちゃんと付けないと動かないようですw
というか、参考書が玄人向けなんですかねぇ・・・w
AVRみたいに内部に発振子持ってるわけじゃないんですね。
で、クリスタルなんかだと、経験的にブレッドボードと相性が悪いわけで
いやな予感がします・・w

で、手持ちの8MHzクリスタル、負荷容量C付きのを付けましたら
なんか動いて、初期化はするようになりました。

独り言をぶつぶつつぶやかせようと・・

CANてよくわからないんですが、1ノードだけでも信号だしてくれるんですかねぇ・・。
初期化はとおったんですが、その後、1秒おきにパケットをただ流すだけのものを
やってるんですが、コントローラから何も出てきません・・。

初期化の時にもSPIはやってるんで
コネクションはできてるとは思うんですが・・・。

さあ、一体何があるんでしょうか。
標準モードだと、バスの状態を見て、明らかに変なときは何もしなくなっちゃうようだと
つらいんですがw
ループバックモードでやってみましょうかね。
通信初心者はここらへん全然わかりません・・・。




  1. 2011/11/17(木) 14:22:18|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

熱電対とAVRとSPI その2

はい、一応、なんか動き始めましたがw
ただ、値が変なので、SPIのデータフォーマッが
違うようなので、その部分を見てみます。

SPIアクセスのサンプルなんですけど
まあ、こんな書き方があるんだなあという部分。
MAX6675から、16bitの信号を読み出すんですが
二回、読みにいくわけですね。
んで、読んだデータをリターンする部分です。


unsigned short read_adc(void)
{
// select ADC wait 100 microseconds then read two bytes
SELECT_ADC;
_delay_us(100);
unsigned char one = send_spi(0xFF);
_delay_us(100);
unsigned char two = send_spi(0xFF);
DESELECT_ADC;
// 12 bits of ADC value is bottom 5 bits of first
// byte and top 7 bits of second, move into 16 bit int
return ((0x1F & one) << 7) | (two >> 1);
}



  return ((0x1F & one) << 7) | (two >> 1);


これ、Cだとフツーなんですかねぇ。
はじめなんなんだかさっぱりわかんなかったんですが
分解すると

0x1F & one

で、マスクをかけてますねぇ。
oneは8bitですが

(0x1F & one) << 7

で、左シフト7回で、oneを上位ビットに送ってここで16bitになるんですかね。
え?シフトってそういう仕様でしたっけ?

| (two >> 1)

で、下位ビットを右シフトしつつ入れてるわけですね

書いた人のドヤ顔が浮かぶような感じがしてアレですがぁw
自分は、わかりやすいコーディングの方が好きなので
変数を明示確保して入れるとかの方がいいですねぇ。

でかい処理系なんかだったらいいんですけど
なんか、この手のマイコンだと、大丈夫なのかと不安になりますw

人のコーディング追うのって色々ですねぇ。
トリッキーなコードも、ヒマな時はいいんですが
仕事じゃあヤですよねw



テーマ:電子工作(`・ω・´) - ジャンル:趣味・実用

  1. 2010/12/15(水) 14:57:52|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

熱電対とAVRとSPI

はい、というわけで、200度くらいまで上がるエンジン表面温度を監視するために
熱電対ということなんですねw

で、普通、マイコンで温度だと、半導体センサーとかになるんですが
今回の高温では使えません。

なので、熱電対アンプの出力をADして監視と。
でも、高い。入手しずらい。

今回の目的は、だいたいの温度がわかればいいんで
高温の精密な温度は必要ないんですねぇ。

なのでタスキに長し・・。

なんかいいもんないかなあと、千石見てましたら。あら。

MAX6675とかいう、デジタル出力のいい感じのが出てましたw
しかも\980!!

速攻で2個ゲットw まともな熱電対アンプよりまだ安いw

んで、デジタルで出力って何かしらと見てましたら
SPIとありますねぇ。ああ、シリアルで出してくれるのね。ほうほう。

んじゃ、適当なライブラリ噛まして読めばいいのね。
のね。の・・・。

んあ。
適当なライブラリがないw

なんでないのかとつらつらwebを散策。
なんか、SPIってあんまし人気ないみたいです・・・w
ド古い2006年のライブラリとか出てきましたが
sbiとかシンタックスが古過ぎで、通りませんwww
直してもいいんですが、なんかなあ・・・。

国内はPICの方に作例がありましたが
AVRはダメですね。

仕方がないので海外みましたら
一発で出てきましたw

しかも、ライブラリも絶賛公開中でした。

でも、なんか、中見ると簡単なんですよねぇ・・。
頑張って作ればよかったかなw

=========つづき===========

で、ライブラリを引っ張ってきたはいいんですが

何をしたらいいのか良くわかりませんwww

ライブラリの作者であるところのアンドリューさんの
ライブラリのサンプルは、アルドゥイーノのもので
ドットシンタックスとか今時なのねー
へー・・・・

とかそんなのはどうでも良くw

んで、PICの和文のサンプルの解説を読むと
CSで、おい、鬼太郎とチップをど突くと
今、摂氏18度ディースとマスターが生成するクロックに乗せて16ビットの信号で返してくるって仕掛けのようですw

こういうイメージでだいたい合ってますかね?w

このMAX6675は温度の情報を返してくるだけですが
メモリーモジュールとか、複雑な動作をするもの向けに
何かコマンドを伝えるものがあるはずですよね。
どうやるんだろう・・・。

うーむ。やっぱ、ここらのちゃんとした本買ったほうがいいですかねw
webで解説してくれるところもあるんですが。



テーマ:電子工作(`・ω・´) - ジャンル:趣味・実用

  1. 2010/12/12(日) 23:16:58|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

SC1602BSLBとmega88Pで温度計02

はい、というわけで、なにやら、ADコンバータで何か変換できましたw
で、なんとなくわかったことなどw

mega88PのADコンバータ

ADコンバータっていうのは
アナログ量である電圧を他の基準電圧と比較して
比率としてデジタル量に変換するものらしいです。

つまり、既知の基準電圧があれば、対象電圧がわかるってことなんですねぇ。

で、AVRでは、測定対象電圧と、基準電圧をいろいろ選べるようなってます。

基準電圧

まず、基準電圧はADMUXレジスタで切り替えます。
で、データシートがまたわかりにくいんですがw
内部基準電圧を基準電圧に設定するとか書くから分かり難いんですかねw
一体どいつが基準電圧なのかとw
簡単に書くとこういうことらしいです。

===REFS1,0====
0、0はAREFの電圧
0、1はAVCCの電圧
1、0は予約
1、1は内部1.1V電圧

を基準電圧とするらしいです。

観測電圧

これは簡単ですね。
MUX3~0のビットの組み合わせで

ADC0~7の8chの電圧(mega88PなどのDIP品は6ch)
AVRの中の温度計の電圧
内部1.1V電圧
0V電圧

が選べるようです。
この選択はマルチプレクサで行い、マルチプレクサが落ち着くのに時間がかかるようです。

つづく





テーマ:電子工作(`・ω・´) - ジャンル:趣味・実用

  1. 2010/11/02(火) 15:06:47|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

SC1602BSLBとmega88Pで温度計01

はい、というわけで、LCDが2個目ど定番SC1602BSLBと
ようやくン年目にして、2313からステップアップでございますw
まあ、自分用のメモです。ネットにはいっぱい情報あります。
で、とりあえず、ブレッドボードで。

液晶

以前、1行表示のLCDでやったことを全部忘れてるんですがw
で、前のブログを見てると、ポイントとか書いてないんですねぇ。

書いとけよ!!

と、自分に怒ったりしましたが。
なので、ちと、ポイントを。

SC1602BSLBの接続ポイント

・データバスは4bitモードでやるなら、液晶側のデータピンの下位上位ビット4ピン(DB4~7)を使う。
・液晶濃度調整のボリウムは10kが適当
・ピン配置が変態的w インラインに並んでないんですよね。こーゆうのがフツーなんですかね。

mega88側のポイント

・ライブラリは前回と同じhttp://homepage.hispeed.ch/peterfleury/avr-software.htmlのを使いました。
http://homepage.hispeed.ch/peterfleury/lcdlibrary.zipです。
・ライブラリのヘッダーファイルをmege88用に書き換えました
 ポート変更
 表示桁、一行表示数

で、だいたい液晶になんか出てくるはずです。

で、液晶表示関数で
lcd_puts( "CurOn");
とかあるんですが、
lcd_puts( "ハンダシジュウロウ");
とかやっても、フツーに半角で出てきますねぇ。
んで、カーソルの■って0xFFなんですが、これどうやってだすんだろうと
ちょっとハマってましたが、一回、配列に放り込んで
lcd_puts(arry);
てやると、出てきました。

で、次は、ADコンバータですが、これまたよくわかりませんw
あれこれ読んでますが、ま、なんとかなるでしょう。





テーマ:電子工作(`・ω・´) - ジャンル:趣味・実用

  1. 2010/11/01(月) 16:19:32|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

Hero's DownLoad 改め、えーヴぃあーるどっとじぇいぴーw

はい、ということで、祝、復活でございますw

いやあ、よかったんでないんでしょうか。

協賛として、ユニ電子と秋月が名を連ねてますねぇw
どんな経緯があったのかちょっと知りたいですがw

まあ、途方にくれる電気少年に道しるべが与えられるのは喜ばしいとだと思います。

でも、英文データシートに当たるのは日常茶飯事なので
オリジナルも合わせて読むのも良いことだと思います。

よかったよかった。




テーマ:電子工作(`・ω・´) - ジャンル:趣味・実用

  1. 2010/09/06(月) 15:17:54|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

WinAVR ウォッチドッグタイマ

はい、というわけで、あんまりウォッチドッグタイマ使った記述がないので
とりあえず、書いてみます。

ウォッチドッグタイマというのは、メインとは別に独立して動くタイマで
これを動かしていると、メインが死んだ時に、一定時間たった後
メインのCPUを再起動してくれるんですね。

止まると困るような時は、使うといいかもです。
ただ、回路的に問題がある場合など、再起動を繰り返すことになり
被害を拡大することも考えられます。

まあ、使い方次第ですかねぇ。

デフォルトでは、停止してます。
なので、動かしたい場合は、フューズビットを操作して動くようにします。

DC-CDIで、ハイテンションコードのトラブルがあったときなんかは
自動復帰できるんで、便利ですねぇ。

ただ、ウォッチドッグタイマのユニット自体も逝くような外乱が加わると
やっぱりダメですねw

で、AvrStudioとwinAVRでウォッチドッグタイマを動かす手順です。

・フューズビットのWDTONをチェック入れます。

・#include <avr/wdt.h>します。

・wdt_enable(WDTO_xx);で、メインループに入る前にウォッチドッグタイマを起動します。
 xxの部分は、再起動がかかるまでの時間を設定します。
 wdt.hの中に設定文字が書いてあります。お好きなものを入れます。
 あまり短いと、自作のウェイトループなんかに入ってる間に再起動がかかったりして
 わけわからないことも起きるかもですw

・で、メインループの通り道にwdt_reset();を入れて、一定時間ごとにウォッチドッグタイマをリセット
 してやって、再起動がかからないようにします。

こんな感じですかね。

他にもいろいろ使い道があるみたいです。





テーマ:電子工作(`・ω・´) - ジャンル:趣味・実用

  1. 2010/06/02(水) 15:20:10|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

tiny2313 PWM 相補パルス生成

はい、というわけで、また高速PWMで嵌っておりww

石は相変わらず庶民の味方のtiny2313ですが。

今度やりたいことというのは、タイマー0一個で、二つのFETのゲートを
CPUの関与なしに制御したいんですね。


で、現在、TOP値をOCR0Aで決めて、分解能がセットできますよね。
んで、OCR0Bで、BOTTOMからTOPまでの間でOC0B(PD5)をパタパタする値を決めます。

で、どのようにパタパタするかを決めるのはTCCR0AのCOM0B1,COM0B0なわけですね。

まあ、とりあえず、はじめはOFFで、比較一致でONになって、TOPでOFFになるようにするなら

COM0B1,COM0Bは1,1で、そんなことになるようなんですが。

ここまでは、現在使っている機能です。

で、これで、OC0A(PB2)になんか出力させたいなと思ったわけですね。

データシートを見るとCOM0A1,COM0A0に何かするとそんな感じになりそうなんですね。

で、やってみたんですが。

何か、OC0A(PB2)はずーっとONのままなんですwwwwww

なんですかこれw

高速PWMモード(8ビット高速モードではなく)ってやっぱ
OC0A(PB2)に何かさせるってできないんですかねぇ・・・・。

ああ、勿論、DDRBとかDDRDは出力にしてありますよ。


うーん・・・。OCR0Aは何かあるんですかねぇ。


位相基準PWMの方も試さないといかんですね。
こっちの方が、よさげですなあ。

BOTTOMで割り込みがかかるんで、Lowの状態で切り替えできますねぇ。

切り替えは、以下のような回路で。

100601_1450~01

今度は、あんまりスピードは要求されないんでこれでいいかなと。
ロジック回路でできそうですが、実装面積で不利ですね。
あと、相変わらず、ロジック回路がよくわかりませんw

ああ、ドライバどうしよ。

TLP250で行くか、汎用ロジックで行くか。
どのみち、手持ちでないので秋葉にいかないといけないなあ。

デジキーで頼むのもアリですね。
7500円の壁がなかなか越えられないというか、IDとか忘れてログインできないんですがw
脆弱ドラゴンも復活させないと・・・。


=====追記======

位相基準PWMの方で、所望の動作できましたw
DDR0Aの設定間違ってました。
割り込みでパタパタも試したんですが
激しく遅れます。PWMに通常プログラムからのアクセスは
あんまりクリティカルなタイミングコントロールは
できないですねぇ。

んで、振り分けの回路ですが、上記の画像のではダメでした。
各トランジスタのベースに10kくらい抵抗噛ませるとそれっぽいのができました。
かませないと、OFFの時に、上のPNPがONになって、下のNPNのベースに電流が流れ込んで
ONになって不思議なことになりますw



テーマ:電子工作(`・ω・´) - ジャンル:趣味・実用

  1. 2010/06/01(火) 15:02:36|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

タイミングライトの製作

はい、というわけで、船外機のCDIが動きそうなので
ちゃんと正しい進角になっているかを確認するために、タイミングライトを作ります。

と言っても、白色LEDをマイコンとトランジスタでドライブするだけですw

点火信号は、CDIの中から直接5Vを取りますw

なので、お気楽極楽ですね。
後で、ハイテンションコードのパルスを拾って
パルスにする回路をつけてもいいかもです。

というわけで、とりあえず、LEDを点灯してみます。

s_DSCN0782.jpg

秋月で買った
超高輝度LED白色3mm OSWT3166B 1500~2180mcd
だそうです。
部屋の中だと、まぶしいです。
見てるとしばらく何か残像が残りますw
もっとハイパワーなのものあるんですが
光が回り込んで、ピックアップのフォトインタラプタが誤動作しても困るので
こんなもんで。


なんかいっぱい買ってあるんでなかなか減りませんw
定番で、前のクルマのイルミに使ったりしました。
電流計算まちがったらしく、しばらくしたら切れたりしてましたねw

ドライブするトランジスタは1815です。
絶対最大規格が150mAですから、半分だとしても、まあ、余裕ですね。
これで、ミリ秒単位で発光させます。

AVRの方は、トリガは外部割込みとタイマカウンタですかね。
クロックは内蔵8Mで。
半分壊れてるTiny2313があるんで、これを利用w

電源は、乾電池でもいいんですが、今回は12Vがあるんで
レギュレータで落として5Vです。
オートOFFとかにしてもいいですかねぇ。

ま、あんまり余計なことはしません。


テーマ:電子工作(`・ω・´) - ジャンル:趣味・実用

  1. 2010/05/26(水) 14:52:25|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

USB・シリアル変換ケーブル Prolific PL2303 ドライバ更新 STK500関連

はい、というわけで、ボート釣りの方のページばかり更新しておりますが
今日はアレで、アレなんでってナニヨw

しばらくAVRDragonばかり使ってたんですが、潰れましてw
しょうがないので、STK500とか使ってるんですが
こいつが、接続してるパソコンをスリープしたり
STK500をONOFFしたりすると、なにやら、AVRStudioを巻き込んで
タスクマネージャーでも落ちなくなったりするんですねw

んで、つないでるパソコンが、今時なクアッドコアの
シリアルポート?バカなのアホなのという高飛車な奴なので
Prolific社 PL2303変換チップを使ったUSB変換ケーブルでつないでおります。

s_DSCN0781.jpg
おしゃれなスケルトンの秋月アイテムでございますw

んで、windowsを長く使ってますと、ここらへんのレガシーなデバイスって
嫌なんですよねぇ、ワケ分からないのが多かったのでw
トラウマですよね。はい。

で、ISPするたんびに、メインマシン再起動して使ってたんですが
いい加減いやになりましたw

あれですよね、これって
原付の整備するのにパーツショップにダンプで買い物行ってくるって
そんな感じでしょうかw

どうみても不経済です。

んで、あれやこれやとやってみましたら、この変換ケーブル、ドライバーがありまして
まあ、古より伝わる不具合の対策の基本、

ドライバー更新かあ?

というわけで、古いドライバーの日付が2005年とかなってます。
古いなあw
ただ、枯れたデバイスだと、そんなのもありますよね。

んで、メーカーのサイトに行きましてドライバを見ますと、あらま。
なんか、ずいぶん新しくなっているようです。

んじゃあ、入れてみますかということで、入れてみました。

デバイスマネージャ
デバイスマネージャでは、COMポートとして認識しておりますねぇ。

Prolific_Driver.gif
んで、新しくなりました。でも、2009年ですね。

基本はやはり、偉大ですね。

一発で、不具合解消でございます。

スリープしようが、STK500落とそうが、固まりません。

ただ、このProlific PL2303のドライバインストーラ、
一度、windowsのテンポラリーフォルダーにドライバファイルをコピーして
再起動の時に、システムに組み込むようなので

窓の手とかで、マシン再起動の時に、テンポラリーフォルダーを抹消するような
仕掛けしてる人だと、うまくインストールできなかったりします。

はい。ワタシですw




  1. 2010/05/23(日) 18:39:18|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

LilyPad

スイッチサイエンスとか見てましたら、なんか、変な形のArduinoがあり。

なんで、これはこんな形なのかなーと不思議に思ってましたら
導通する糸を使って、縫い付けて手芸感覚でArduinoするものらしいんですねw

なので、ボードが花みたいな形になってるんですね。

んで、LilyPadで動画とかググると、ギークな女子がバッグとかに実際に縫い付けて
ピカピカさせておりますなw

へーw

でも・・・。

流行んないだろこれwwww

テクノ手芸とかあるんですが
ここらでバリバリ使ってんのかなあと思って久しぶりに中を見てたんですが
特になんもしてないですねw

やっぱ、相性悪いだろうなあ・・。

洗濯とかできないんじゃないのかなあ。

この手の素材としては、硬いし制約多すぎると思うんですねぇ。

アプローチはいいんですが、ユザワヤの店頭とかには並ばないんではw
並んでるのかなw

ファッションアイテムとして致命的なのは、ベーク基板w
これ縫い付けたパーカーとか着たままベッドとかにワーって倒れこんだ日には
ザクっと変なところに刺さってしまう気もしますw
フィルム基板もありますが、ハードルは高いですよねぇ。

もっと技術が進化して、電気を通すと変色とか発光する糸とか
2、3本配線すると、画像が出てくる布とか
あと、コインランドリーに電池つきで放り込んで
乾燥までしても壊れないとかじゃないと・・・w

かつ、ユニットの値段が500円くらいにならないと女子は買わないでしょうwww

まあ、ボタン押すと違うガラになる
ストッキングなんかはまだまだ当分先なんでしょうねぇ。

でも、できたらいいなあ。
うん。




テーマ:電子工作(`・ω・´) - ジャンル:趣味・実用

  1. 2010/05/11(火) 15:17:25|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

AVR Dragon 使用上の注意

はい、なんかやっちまう方が多そうなので蛇足ながらポイントなんぞを。

1.ターゲットボードの電源供給はAVRDragonからはしてはいけない。

2.ターゲットボードからAVRDragonに異常電流が流れ込まないようにする。



1.に関しましては、USBの供給電力が低い場合、ターゲットボードの負荷が増加し
脆弱ドラゴン内部のレギュレーターがオーバーロードになって
レギュレーターが発煙して壊れるということです。

2.に関しましては、ワタシが実際にやったパターンで
ターゲットボードから、12Vが回り込んでデバッグワイヤーを制御する
アナログスイッチとかレベル変換するトランジスタを焼いて壊れるというものです。
アナログスイッチは7Vまでは耐えますがそれ以上はヤバいようです。

いずれにしても、開発中にやりがちなミス、
プローブのあて違い、配線間違い、等々で簡単に起きるものです。

一応、これさえ守ればなんとか脆弱ドラゴンは末永く使えそうではありますがw

2.に関しては、汎用バッファ使ってI/Fを2段にすれば、
最悪、自作のインターフェースを焼くだけで済みドラゴンは無事ということらしいです。
これはドラゴンの修理が済んだら作ってみたいと思ってます。

まあ、この道に踏み込んだら注意して当然とは思いますが
素人からするとちと厳しいなあとは思いますw

ちょちょっと試作するんで、電源もドラゴンについてるから
いいやとかやるとヤバいって事らしいんですねぇ。
5Vの電源なんて、適当なACアダプタとシリーズレギュレータで作れるんで
手間を惜しまずちゃんとやりましょう・・・。



テーマ:電子工作(`・ω・´) - ジャンル:趣味・実用

  1. 2010/04/12(月) 10:19:15|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0

HERO'S Download について

はい、ということで非常に残念でございます・・・。

4/1でということなんで、エイプリルフールネタかと疑いましたが。

さんざん分かりにくいとか書いてきましたがいざなくなるといかに有用であったかと思い知らされるわけでございます。
というか、完全に有志だったんですねぇ・・・。
利用するばかりで何も手を延べることができないのがなんとも。

なんと申しますか、寂しい限りでございます。




テーマ:電子工作(`・ω・´) - ジャンル:趣味・実用

  1. 2010/04/03(土) 00:16:02|
  2. AVR
  3. | トラックバック:0
  4. | コメント:0
次のページ