アマチュア無線や電子工作,バイクの話などを徒然なるままに書き散らすメモ程度のblogです.


by jq1ocr

カテゴリ:マイコン・電子工作( 265 )

骨折り損な TWI

tiny85 の件です.結局ピンアサインが気に入らず,USI は使わずに従来通りソフトウェア TWI を使うことにしたのですが,どうも BME280 が動いていないように見えます.最初は TWI の実装が不完全なのでは?と気になってしまい,散々タイミングなどを見直したのですが,不審な点が見当たらず.....

つつくところが違ってる感が漂ってきたので,他の I2C デバイスもつけて確認しようと,同じくしまいこんでいた LPS331AP を引っ張り出してきました.

すると,なんとこっちはあっけなく通信できました.というわけで,TWI の問題ではなくて,BME280 が壊れているという可能性が否定できなくなってきました.
d0106518_1241956.jpg

表示の 255 は BME280 から読み取った ID ですが,ack がないので通信できてはいません.数値はプルアップしているからそうなっているのであって,結局動かせていないことを示しています.次の 187 は 0xBB になりますが,LPS331AP からの正しい応答です.

ただ LPS331AP も気圧や気温のデータは出てくるのですが,なにかおかしいです.データ長が長いため,プログラム側でも一工夫するわけですが,そこでつまづいているのかそれにしても変なので,もしかして,こっちもおかしかったりして,なんて思ったりもしています.苦笑

余談ですが,ソフトウェア TWI だけで結構な容量を食ってしまうわけですが,tiny85 はメモリが大きいので,その上 float とかを使ってプログラムが大きくなっても書き込めてしまいます.この気楽さ,もう tiny13A には戻れないかも.笑
[PR]
by jq1ocr | 2016-12-12 21:30 | マイコン・電子工作 | Comments(0)

大食漢な LCD

こんな豪勢な LCD で試作をしておりました.
d0106518_2137042.jpg

20字4行,フルスペックですね.これが煌々とバックライトがつくのです.なんとなく熱くなってる気がしたのですが,気のせいじゃなくて結構な大食いでした.

うちでは試作用の電源で 5V のものはエネループを使っています.こういうケースに...
d0106518_21384722.jpg

こんなクリップ
d0106518_2139944.jpg

をリードにつけておけば,ほぼ 5V でて便利なわけです.

試作して虫取りして...といっても,そんなにずっと使うわけではないので,滅多に充電してませんでした.ところが前述の液晶を使ったもので作業していたら,コントラストが落ちてきて,あれれ?と思って電圧をみたらかなり落ちてました.充電中は乾電池をつけて作業したのですが,それもしばらくしたらなくなってきました.どうやらこの LCD (というか,バックライトの LED)がバカ食いしてるみたいなのです.

虫取り中はいろんなデータが表示できた方が便利なのですが,終わったら表示も最小にして LCD も小さいのに変えた方がいいのかもしれません.ただこれは極性が他と逆だったりするんだよなぁ.

というか,バックライトの制御が簡単にできたらいいのですよね.もちろん LED に外から電源を与えるようにすれば実現はできるのですが配線が多くなってしまいますしね.I2C の LCD もバックライトコマンドがあったらいいのに.
[PR]
by jq1ocr | 2016-12-11 06:30 | マイコン・電子工作 | Comments(0)

ATtiny85 を使ってみている

ピンアサインを見て tiny85 に TWI があるじゃん,と思ったのは誤解でした.マニュアルをよくみると,USI (Universal Serial Interface) を使ってソフト的に実現するようです.結局 ISP とかぶるピンにデバイスをぶら下げると書き込めないので,ピンを戻してとりあえずは LCD を動かせるようにしました.

LCD は書くだけなので,何か読ませようと部品箱をあさると I2C の温湿度・気圧センサーモジュール BME280 がでてきました.
d0106518_19581612.jpg
あら,こんな高級品を持っていたとは.

早速 TWI バスにつないで試したのですが,応答がありません.ブレッドボードだからなのか,ソフトが不完全でタイミングが詰め切ってないのかわかりませんが,いきなり壁に当たりました.ロジアナから一歩づついくしかなさそうです.

ここでなんとなく思い出しました.前は tiny13A で動かそうとしていたのですが,TWI を実装するだけでメモリがかさみ,そのときやろうとしていたことまで行き着かないまま放置してたような気がします.85 という新兵器があるので,もうちょっとがんばってみよう.
[PR]
by jq1ocr | 2016-12-10 20:15 | マイコン・電子工作 | Comments(0)

ATtiny85 を使ってみる

うちでは 328P を標準として,プチガジェット用には 13A を使ってきました.しかし,しばしばプログラムが肥大化して,1バイトの攻防を繰り広げることがよくありました.笑 だからといって大きいのにするとピンも増えてしまうのでパッケージが大きくなってしまうわけです.

そこで目をつけたのが昨年から扱いの始まった ATtiny85 です.値段こそ 160 円と 13A の3倍以上ですが,プログラムメモリが 8kB もあります(13A は 1kB).SRAM も 13A の 64B から 512B と大きくなって,ちょっとしたデータも扱えるようになりました.数使う用途でなければ,必要のない苦労をしなくて良い 85 の方が私のような素人には適しています.
d0106518_2341493.jpg
ATtiny85

もちろん買ってはいましたが,タンスの肥やしになっていたので,別件ついでに試してみることにしました.ペリフェラルを TWI (I2C) のにすればピンもいらないしいいなと.

最初は 13A と同様ソフトウェアTWIでやろうと思って,ISP とぶつからない PB3,4 に配線しておいたのですが,85 の説明書をみると,なんと SDA を PB0 に,SCL を PB2 につけろと書いてあります.

ところが配線を直して試し書きしてみたらこんなエラーが....

avrdude: stk500v2_program_enable(): bad AVRISPmkII connection status: MOSI fail

ダメじゃん.PB0 につないだ SDA が重いのか,ISP しようとしても MOSI が振れないとクレームが来てしまったようです.苦笑 だからあっちにしてくれればよかったのに...と思ったけど,あっちは XTAL をつける場合に必要なのでダメってことなのですね.うーん,いっそ LPC810 みたいにプログラマブルにしてくれたらいいのになぁ.

それなら LPC でいいじゃん,って声が聞こえそうですね.笑
[PR]
by jq1ocr | 2016-12-09 23:48 | マイコン・電子工作 | Comments(0)

GPS データをチラ見する

野暮用があってこんなのを買ってきました.
d0106518_1713635.jpg

GPS レシーバです.5V 入れれば動くのですが,データがどんな感じで出てくるのか,のぞいてみました.笑

使っているのはこちらのロジアナ.
d0106518_17144099.jpg

Saelae の Logic 16(original)です.

もっと安いのがあるのになぜ?かというと,これは Mac でもソフトがあるのです.作りも格好いいし,すばらしい!ちなみに Mac 上ではこんな感じに見えます.
d0106518_1716376.jpg

縮小しすぎてわかりにくいですね.データ部分を拡大するとこんなです.
d0106518_1716202.jpg

これは Async Serial ですが,他に TWI やらなんやらといくつものプロトコルに対応しており,当然デコードもしてくれます.

実際に使う時にはこれをマイコンに送って,データ処理するわけですが,実は今まで AVR でシリアルは使ったことがないので,どうなるかちょっと心配.
[PR]
by jq1ocr | 2016-12-06 22:00 | マイコン・電子工作 | Comments(0)
なんとこちらのトランジスタが発売開始ですよ.
d0106518_10121766.jpg

って,TO-92 見せられたって,なんのこっちゃ?ですけど,これ 2SC945 です.

2SC945 といえば,今でいう 2SC1815 と同じ立ち位置に昔いたトランジスタですね.ほぼ同程度のスペックなので,昔の回路図で 945 だったところを直すのに 1815 にしたって人は多いと思います.945 がディスコンになり,1815 が一般的になり,そして現在は 1815 もディスコンで流通在庫のみとなっています.

しかしなぜいまさら?と思ったらセカンドソースなのですね.オリジナルの 945 は日電だったと思いますが,今回発売のこちらは Unisonic という台湾のメーカーです.そういえば,1815 のセカンドソースもこのメーカーだったような.1815 でみると,秋月には東芝純正と台湾セカンドソースの両方がありますね.価格は東芝が一個十円,台湾のが五円相当です.東芝のストックがあるので台湾のは買ったことがなく比べたこともないですが,どんな感じでしょう?
[PR]
by jq1ocr | 2016-12-06 21:10 | マイコン・電子工作 | Comments(0)

Et tu, Terraemotus ?

d0106518_16313461.jpg

というわけでこれを買ってみたわけですね.実はハーフピッチなので,そのままだと普通の基板には載せられません.いっその事ハーフピッチ基板というのも手ですが,目がきついです.苦笑

そこで変換することに.しかし,そのものズバリがないですねえ.センサは10ピンなのでちょっと余りますが,こんなのはどうかと思いました.
d0106518_1632870.jpg

SOP 16pin DIP 変換基板です.ところがセンサーの方が 10mm でわずかに届かないようです.ペースト使えばいけるかもしれないけど....

だからといって 28pin ではもろもろ余りすぎ.
d0106518_16322299.jpg

で,こんなのを見つけました.
d0106518_16323337.jpg

10ピン2.54ピッチ(2x5)←→1.27ピッチ(1x10)変換基板というものです.

これを両側につけるので多少余りますが,ぴったりのはないですし,他の変換より良さそうです.4割落とすって作戦もできますしね.作例ができたらまたエントリします.
[PR]
by jq1ocr | 2016-12-04 21:30 | マイコン・電子工作 | Comments(0)

Arduino UNO

自分は普段のマイコン工作に AVR を使っているので,Arduino を使う意味はほとんどないのですが,仕事関係で使うことになりました.
d0106518_12341732.jpg

素人向けにした所為か分かりませんが,結構融通が利かず面倒くさいですね.

とりあえず使ってみて「あれ?」と思ったのは,プルアップ,プルダウンです.プルアップはピン設定時(pinMode)に設定できるのですが,プルダウンはないのです.なんででしょうね?digitalWrite で high にしても,プルアップになるようですが,ここを low にしたからといってプルダウンにはならないみたいです.

まあ抵抗を外付けするか,回路をプルアップ前提で使うように組めばいいので,これからはそうしておきましょう.
[PR]
by jq1ocr | 2016-12-02 21:30 | マイコン・電子工作 | Comments(0)
一昨日販売開始のこちら
d0106518_1652094.jpg

感震センサーです.中身は3軸加速度センサーが基本ですが,そこから SI (Spectrum Intensity)値を計算し,それを I2C で出すことが出来ます.またそれ以外に震度5強相当以上と傾き20度以上の倒壊検知出力があるので,マイコンで震度を出す以外の例えばサイレンを鳴らすとか,そんな感じの使い方も出来そうです.

SI 値と震度の関係は例えばこんなデータを参考にするといいかも知れませんね.あるいはこことかも具体的にプログラムできそうなデータを出してきてくれていますね.

試してみたいと思いますが,1480円とおもちゃにしようとするにしては結構します.3軸加速度センサーで作ることも出来そうですけど,この出力を震度に変換するのは難しいですから,やはり餅は餅屋といったところなのでしょうか.
[PR]
by jq1ocr | 2016-11-30 21:00 | マイコン・電子工作 | Comments(0)
ご注意:本エントリは私が行ったことを記しておりますが,第三者も同じ結果が得られることを保証するものではありません.

そんなわけで,簡単には Mac では動かなかった Atmel-ICE ですが,結局動かすことに成功しました.
d0106518_19521979.jpg

結論から言えば,前のエントリにあるように avrdude の新しいバージョンを入れればOKです.具体的な手順は私の場合は以下の通りでした.

(1)簡単のために,Homebrew(または MacPorts)から avrdude をインストールします.こことかが参考になります.

しかし,それだけだと OSX のバージョンによっては,USB に関する permission の問題があって avrdude から Atmel-ICE へのアクセスできません.そこで

(2)ダミーの kext を /System/Library/Extensions に入れます.詳しくはこちらを見てください.

(3)Makefile の Programmer のところを avrisp2 から atmelice_isp に変えます.具体的には
PROGRAMMER = -c atmelice_isp -P usb
です.

あとはコネクタの向きに注意してつなげば OK だと思います.コネクタのジャック径が AVRISP mk2 より小さいみたいでピンが太いと差し込みしずらいです.

書き込み時に以下のエラーが出たら向きが逆かも知れません.
avrdude: stk500v2_command(): command failed
avrdude: bad response to AVR sign-on command: 0xa0

AVRISP mk2 では逆にさすと警告 LED ですぐ分かるのですが,ICE の場合は点滅とかしないので最初は気づきませんでした.ともあれ,このように無事に crosspack で Atmel-ICE が動くようになったので,林檎國でも継続して布教活動ができそうです.笑
[PR]
by jq1ocr | 2016-11-17 21:30 | マイコン・電子工作 | Comments(0)