SSブログ

久しぶりにISPで書き込みしてみると [Arduino]

ATTinyCoreのATtiny85にUSBaspを使って、書き込みしてみるとエラーが出る。

isp_error_1.png
Arduino:1.8.19 (Windows 10), ボード:"ATtiny25/45/85 (No bootloader), Enabled, CPU (CPU frequency), ATtiny85, 16.5 MHz (PLL, tweaked), EEPROM retained, B.O.D. Disabled (saves power), Enabled"

最大8192バイトのフラッシュメモリのうち、スケッチが1008バイト(12%)を使っています。
最大512バイトのRAMのうち、グローバル変数が37バイト(7%)を使っていて、ローカル変数で475バイト使うことができます。
スケッチの書き込み中にエラーが発生しました
avrdude: set SCK frequency to 187500 Hz
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: program enable: target doesn't answer. 0 
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

・Arduino as ISP なら問題なくスケッチを書き込める。
・AVRDUDESS - A GUI for AVRDUDE ではATtiny85をちゃんと認識できる。
・USBaspのファームウェアを書き換えたりしてみたけどダメ。

ということで、Arduino の AVRDUDE が怪しい。

%USERPROFILE%\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino18\bin

(別の書き方だと、 %APPDATA%\..\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino18\bin )

ここにある avrdude.exe を「AVRDUDESS-2.14-portable.zip (844 KB)」 の中に入っていた avrdude.exe に置き換えてみたらエラーが消えた。

(参照)
AVRDUDESS – A GUI for AVRDUDE - Zak’s Electronics Blog --
https://blog.zakkemble.net/avrdudess-a-gui-for-avrdude/

isp_error_2.png

問題解決、けっこう疲れた。
タグ:ISP AVRDUDE USBasp
nice!(0)  コメント(0) 

DigisparkでCharlieplexingするために、、 [Arduino]

DigisparkでCharlieplexingするために、、

Digisparkのいいところは、USB機能で、
 ・電源として
 ・書き込み手段として
 ・通信として(HIDデバイスなど)
使えるところですが、
 ・容量が減る
 ・3, 4番ピンが使いにくい
というデメリットがあります。
3, 4番ピンが使いにくいので、うまいことUSBとして使わないときだけ切ることができればいいと思ったのですが、どうもそれだけではなさそうで、USBの D- の1.5kΩの抵抗を挟んでのpull-upがされているとUSB接続されていることになり、PC側でエラーが出てしまいます。
pull-up、D-、D+の3回路をスイッチ操作で切り替えられるといいのですが、そもそもコンパクトな3回路2接点(3PDT?)のスイッチってなかなかない。

ということで、USB部分とマイコン部分をやむなく分離することにしました。
分離するにあたって、通販でよく見かけるマイコンなしのソケットタイプのdigispark互換機をUSB部分として使うことにしました。
ちなみにこれ、2x4=8ピンのスルーホールがありますが、6ピンISPコネクタの隣にUSBに使っている3,4番ピンがついており、全8ピンがマイコンの8ピンに対応しています。
ds-socket.png
マイコン部分には電源機能が欲しいので、USBコネクタを取り付けました。今つけるなら Type-Cということで、

USB Type-Cコネクタ 電源供給用 パーツ一般 秋月電子通商-電子部品・ネット通販
https://akizukidenshi.com/catalog/g/gC-16895/
C-16895-3.jpg
を使いました。
あとあとのことですが、type-Aからtype-Cへの変換ケーブルなら普通に給電できますが、CC1, CC2ピンがないので、Nintendo SwitchのACアダプタなどの賢いtype-C電源には使えませんでした。

以下、作成の経過です。
ds-half-1.jpg
エナメル線がはんだ付けされているように見えますが、繋がっていない部分がありました。
はんだが溶けてもさらに熱を加え続け、なんとなくプチっと音がしたくらいで(天ぷら?)やっと導通を確認できました。
ds-half-2.jpg
マイコンソケットは丸穴。丸穴のソケットだと隙間が多く、ソケットの下あたりにUSBコネクタ(レセプタクル)の足を通せるので。
ds-half-3.jpg
マイコン部分はこれで完成。
ATtiny85は、fuse設定やDigisparkのブートローダは書き込み済。
ds-half-4.jpg
裏もこんな感じ、一応チップタイプのパスコンも付けてみた。
ds-half-5.jpg
書き込み器。
上は6ピンISPとしても使えるようにした。
P0をpull-downできるスイッチもとりつけた。
ds-half-6.jpg
重ねたところ。
ds-half-7.jpg
0, 1, 2, 3番を使ったCharlieplexingでLEDはきちんと光っています。

作ってみて思ったのは、USBを書き込みでしか使わないのであれば、ISPプログラマでいいのでは、、Digisparkのメリット全部否定してるし。



nice!(0)  コメント(0) 

DigisparkにCharlieplexingは不向きかな。その2 [Arduino]

調べていたら、aitendoで12連LEDを発見したので購入。

12バーLEDアレイ - aitendo
https://www.aitendo.com/product/11443
LED-B12.png
ついでにこれも。

超極細エナメル線★φ0.1★10m巻き★ - aitendo
https://www.aitendo.com/product/4733
cp12-2.jpg

それで作ってみました。抵抗もチップ抵抗を使用。
cp12-1.jpg

で、こんな感じ。
cp12-3.jpg



nice!(0)  コメント(0)