投稿

ラベル(AVR)が付いた投稿を表示しています

導通チェッカー (ATtiny13A使用)

イメージ
テスターが重いので、導通チェックだけのためにいちいち取り出すのが面倒になった私! ならば、導通チェッカーを作ろう!と思い立ち、トランジスタで簡単なものを組もうと思ったのだが・・・ 自分で作る前に、世の中の人に聞いてみることに! 簡単なものは、防犯ブザーを改良して・・・みたいなのがあったけど・・・ 測定電圧に何ボルトかかるかも怪しいので、逆電圧をかけた場合を考えると、これはやめたほうがいいだろう・・ 高機能なものになると、回路がやたら複雑になって、作るの面倒くさいなあ・・・ と思ってたら!! 素晴らしく簡単で、マイコン使ってて高機能で便利そうなものを発見!! ChaNさんの『回路内導通チェッカ』 です!! なんと!ATtiny13と工具箱にありそうな簡単な部品だけで出来そう!! しかも、 抵抗値によって音色が変化する とか最高ですか! というわけで、作ってみた! ChaNさんの回路やプログラムは 簡潔に書かれている ので、 とても勉強になります★ ありがたや〜 作ってみると、いろいろ改造したくなるのが人情です(笑) というわけで、改造することに! ※改良ではない 改造した点 手持ちの抵抗器で何とかなるように抵抗値を変更 2色LEDを使い、電源は 青 色、導通時に 赤 色LEDが点灯 導通時の音色を変更 導通抵抗値を500Ωまでに変更 スリープを1分に変更 プローブの接触で電源ON プローブの10秒以上の接触で自動電源OFF(プローブ起動を無効化) プログラムは全面的に書き直しました。 CPUクロック を 1.2MHz (9.6MHz 8分周)としましょ。 そうすれば、ヒューズビットの書き換えは不要なのです! オリジナルはATtiny13Vですが、ATtiny13Aしか持ってなかったので、変更しました。 手持ちの抵抗器の都合で、オリジナルは 27KΩ と 5.6KΩ ですが、 22KΩ と 3.3KΩ の抵抗を使ってます。 2色(赤青)LEDが、部品箱に転がっていたので、それを使うことに。。。 たぶん、 秋月電子通商で昔買った やつだろう・・・当時は 500円もしてた みたいだ(笑) 導通時の音色を自分の使ってたテスターの音に近づけるために変更しました。 それと、オリジナルは50Ωの抵抗値で停止するようになっているのですが、そんなに細かく音色が変化しなくてもいいので、1...

AVRISP markII・USBasp ピン配置

イメージ
最近、evernoteがめっちゃ使えなくなっちまった・・・ 無料版では、端末が1台までだし・・・ WEB版のevernoteはAndroidでうまく開けないぞ!! なので、AVRライタのピン配置をここに書いておこう! ※注 USBasp  でTPI書き込みを行う場合は TPI-DATA に MISO ではなく、 MOSI を使う!!

AVR ATtiny10 ベリファイエラー

イメージ
やっちまったので、書き残しておこう! AVR ATtiny10のシグネチャが一致しない・・・ う〜ん、これは 前とおなじ かな?と思って、avrdudeのビットクロックを変更してみるが・・・ 関係ないみたい・・・ 次にAVRライタを AVR ISP markII から USBasp に変更しようとしたら、 USBaspの ファームが古くて 更新したり ・・・ 配線をつなぎ直したり・・・ いろいろやったが、だめだった・・・ しばらくして、よ〜く確認したら、書き込み用の TPIDATA(PB0)の信号線への負荷が大きく て、うまく認識しなかったようだ!! 負荷になる回路から切断したらうまく行った★ これに気づくまで、何時間も格闘してしまった・・・ 書き込まれるんだが、ベリファイエラーが出てしまう。 verification error avrdude: verifying ... avrdude: verification error, first mismatch at byte 0x0024 0x0c != 0x17 avrdude: verification error; content mismatch という問題に遭遇してしまった・・・ これも、何時間も解決できず・・・ 世の中の人に頼ることに・・・ すると!! ねこめもさんのページ に書き込みが! なんと!電流不足とな!!! いつも実験用に、サンハヤトのICトレーナーを使ってるんですが・・・ 知ってます? ICトレーナー CT-311R ・・・ もう、 売ってない みたいですが・・・うん十年前に買いました(笑) 電池BOXが壊れたのですが、交換してでも使っている お気に入り です! そういえば、もう十年ぐらい乾電池を交換してないかも・・・ で、電圧を測ってみたら・・・4本で なんと! 3.518V ですって・・・ 6V程度は無くてはならないのに・・・ そりゃあ、電流も取り出せないわな・・・ ちなみにこのテスターも sanwa の PC101という、年季ものです(笑) CT-311R は、DCプラグもつなぐことが出来る優れものです! ただし!DCプラグは センターマイナスの罠 に注意!! 今どきは、ほとんどがセンタープラスですが、昔はセンターマイナスが主流でした・・・ ...

USBaspをLinux上でアップデートする

イメージ
USBaspって知ってますか?  AVRの書き込み器の一つで、avrdudeも対応しています!! これがあれば、AVR ISP markIIがなくてもAVRにプログラムをかけます! で、AVRライターの予備に大昔にamazon買って、放ぽってありました。。。 購入履歴をみたら、 2018年 に 287円 で購入! つまり、6年前に買ったようです(笑) 2018年は1ドル110円ぐらいだったので・・・安く買えたなぁ〜 で、早速、袋を破ってみると・・・ んん? 錆びてます!! 袋に入ったままだったのに、錆びてるって・・・ 気持ちわるいので、早速、修正しましょう!! ハンダごてでチャッチャッと新しいピンヘッダに・・・ 最近はRG(老眼)が進んで、手元がよく見えず・・・ チャッチャッととはいきませんでした★ まあ、なんとか、出来ました!! ついでにJP3にもピンヘッダを追加しておきました。 おそらく、この JP3 は SlowClock だと思います。 オリジナル はJP1の表記ですが、この互換品はJP3の様です。 で、こいつで ATtiny10をプログラムしようと思ったのですが!! ファームウェアが古くて avrdude avrdude: warning: cannot set sck period. please check for usbasp firmware update. という warningが出てしまいます。 しかも、ATtiny10の TPI方式での書き込み には 古いファームウェアでは対応していない ようです!! それでは!アップデートの準備です! こちらの DEKOさんのページで詳しく説明 してくれています★ が、Windows用に書かれているので、自分なりにまとめておきます。 必要なものは、 ターゲットのUSBasp(今回アップデートする機器) AVRライタ(USBasp上のAVRチップを書き換えるため) avrdude USBasp firmware (usbasp.2011-05-28.tar.gz) ここで、詰んでしまう人もいるかもしれません!! だって、USBaspに書き込むためのAVRライタが必要ですから(笑) でも、最近は ArduinoをAVRライタにできるようになった し、なんとかしましょう! 今回は、AV...

ATtiny10をPlatformIOで開発したい!

Windows11を使う気にならないし、 Windows10もほとんど使わなくなってしまった。。。 ただ、問題は LinuxでMicrochip Studioが使えない ことだ!! ATtiny10を使おうと思ったら、困ったことになる! 最近はもっぱらPlatformIOを使うようになったので、ATtiny10もできるんじゃないかと思ったら。。。  なんと!Board選択にATtiny10が無〜い!! 簡単にできると思ったのに。。。 仕方がないので、世の中の人に教えてもらおう!!! は〜い発見! bitbangingさんのページ を参考に・・・ ボード用の設定ファイルを作れば良さげ・・・ でも、ちょっと変更 私はAVR-ISP markIIを使っているので、" protocol "を" avrisp2 "に "extra_flags"に"-e"を指定して、書き込み前に消去するように "url"と"vendor"を今どきに ファイル名は適当につけられます。 私は、AVR ISP mkII と USBasp を持っているので、AVRISPの方は"attiny10-avrisp2.json"としました。 USBaspはファームウェアが古くて、アップデートしました。 その話はまた。。。。 てな感じで、こうなりました! ~/.platformio/platforms/atmelavr/boards/attiny10-avrisp2.json { "build": { "f_cpu": "1000000L", "mcu": "attiny10" }, "name": "ATtiny10 [AVR ISP mkII]", "upload": { "extra_flags": "-e", "maximum_ram_size": 32, "maximum_...

PlatformIOでATTiny13A開発 (AVRISP mk II を使う)

久々にAVRマイコンを使って開発しようと思ったら!! 世の中の変化にびっくりです。 なんと!AVRのATTiny13Aの価格が!!秋月で150円になってる!! たしか・・・8年ぐらい前に60円ぐらいで買ったような気が!! いつの話だよってことですが(笑) その時、喜んで5個ぐらい買って、1個使って4個は大切にしまわれていました。 そんなこんなで、のんきに暮らしているうちに、AtmelはMicrochipに買収されちゃうし、 ATTiny202 とかの新しくて良さげなチップが70円 で買えるし・・・ なので、ATTiny13Aの在庫整理のために使うことにしたのですが・・・ 今どきはATTiny13AもArduinoとして開発できるらしいので、そうすることにする。 で、Arduino IDEは使いづらいので、いろいろ探してたら、流行りは PlatformIOらしいのですよ!! そういうわけで、VSCode上でPlatformIOを使うことにしたのですが、Arduino UNO とかの USBシリアル変換が載ってるボードは簡単に接続して書き込みできるんだけど・・・ ATTiny13Aは、書き込み装置が別に必要なので、虎の子の AVRISPmkIIを使う ことにしたのですが、そのままでは認識しないみたい・・・ 検索しても、日本語の記事はあまり見つからなかった。 でも、 公式ページ にはありました。 まあ、その通りに書けばいいのでしょうが、使うライターはAVRISPmkIIだとわかっているので、自分なりに書いてみました。 ようは、 avrudeに渡すパラメータ を upload_flags で指定 すれば良いようです。 platformio.ini [env:attiny13a] platform = atmelavr board = attiny13a framework = arduino upload_flags = -c avrisp2 -p $BOARD_MCU upload_command = avrdude $UPLOAD_FLAGS -U flash:w:$SOURCE:i こんな感じになりましたとさ・・・ 注意点として upload_flags = の次の行からの オプション指定時にオプション文字の後ろに空白を入れて ...

ThinkPad T460sで指紋認証できなくなった!

なんと!Windows10のThinkPadの指紋認証が突然できなくなった!!! すごく便利で、もうパスワードの時代には戻れない体になってしまったのに・・・ で、きっとまたやっちまうだろうから、ここに備忘録を残そう! ま、結論から言うと、 libUSB-Win32が邪魔してたみたい★ なんだかんだで、WindowsUpdateによって、Arduinoで AVRISP mkII が使えなくなっていた!! そこで、焦った私は「 そうだ!libUSBでフィルタしなきゃ! 」と 『Install all class filters』 を実行してしまったという落ちでした。 これで、 AVRISP mkII は使えるようになったので、喜んでいたのだが、この影響で生体認証デバイスの 『Synaptics WBDI(SGX enabaled)』 とかいうのがロードできなくなってしまったらしい。で、指紋認証が使えなくなったということでした。間抜けすぎ!! なので、 『remove all class filters』 を実行して無事に復活しましたとさ・・・ めでたしめでたし★ 未来の私よ! 『Filter Wizard』 を使いなさい。さすれば、幸せになれますぞ!

AVR開発環境設定 for Ubuntu 15.04 (Part2)

前回の設定だけではrootユーザでないと、AVRに書き込めないので makeで自動処理できなくて困る。 なので、Kenichiro MATOHARAさんの スライド に書いてあったように、udevの設定を行う。 しかし、うごかない。なんで??よーく見たら、 == と = をきちんと見てなかったみたい。で、直してみてもう一度・・・・ やっぱり、認識せんぞ?? ん??何か変だなこの設定ファイル・・・ お、間違いを発見!!  先頭のATTRが抜け落ち てますぜ。 で、修正したのがこれです↓ /etc/udev/rules.d/50-avr.rules ATTR{idVendor}=="03eb",ATTR{idProduct}=="2104",MODE="0660",GROUP="plugdev",SYMLINK+="avrisp_mk2" この設定で、AVRISPmkIIを接続したら、上手く認識したみたい。。。 デバイスファイルを見てみる $ ls /dev/avr* /dev/avrisp_mk2 ちなみに、lsusbコマンドで、idVendorとidProductは確認できるよ。 あとの細かいことは、 SUSE Linuxのページ に詳しく書いてある。 適当に、Makefileを作ってみる。 Makefile PROGRAM = hello F_CPU = 1000000UL CC = avr-gcc CFLAGS = -g -O2 -mmcu=attiny2313 -std=c99 OBJCP = avr-objcopy OFLAGS = -j .text -j .data -O ihex AVRDUDE = avrdude AFLAGS = -e -c avrisp2 -p t2313 .SUFFIXES: .c .elf .PHONY: clean install $(PROGRAM).hex: $(PROGRAM).elf $(OBJCP) $(OFLAGS) $< $@ .c.elf: $(CC) $(CFLAGS) -o $@ -DF_CPU=$(F_CPU) $< install: $(PR...

AVR開発環境設定 for Ubuntu 15.04

久々にAVRで電子工作をしたくなった・・・・ 前はAVR Studioを使ってたけど、最近はWindowsよりUbuntuばっかり使ってるのでLinuxで環境設定するのだ。 で、世の中の人に聞いてみると・・・ Kenichiro MATOHARAさんが、 スライドで紹介 してくれていました。感謝! 必要な環境として コンパイル環境 AVR書き込み環境 の2つを整える必要がある。 コンパイル環境 コンパイルするにはコンパイラとして gcc-avr、プログラミングツールに binutils-avr、ライブラリに avr-libcが必要なようだ。 コンパイル環境のインストール # apt-get install gcc-avr binutils-avr avr-libc AVR書き込み環境 AVRに実際に書き込むためのプログラムには avrdudeを使いましょうって事ですね。 ここでは、書込み器には AVRISPmkII を使うよ。 AVR書き込み環境のインストール # apt-get install avrdude サンプル作成 ひとまず、そこらにあったATtiny2313で作ることにする。 hello.c /* LED点滅プログラム */ #include <util/delay.h> #include <avr/io.h> int main(void) { DDRB = _BV(DDB0); for(;;){ PINB = _BV(PINB0); _delay_ms(500); } return 0; } コンパイル & リンク ATtiny2312用にコンパイル & リンク $ avr-gcc -g -O2 -mmcu=attiny2313 -DF_CPU=1000000UL hello.c 今回は ATtiny2313を使ったので、 オプションの -mmcu に attiny2313 を指定する。 後は、delay.hを利用するので、 -D オプションで、 F_CPU を 1MHz に設定し、 最適化 は程々の -O2 にする。ちなみに-...