久しぶりにISPで書き込みしてみると [Arduino]
ATTinyCoreのATtiny85にUSBaspを使って、書き込みしてみるとエラーが出る。
・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/
問題解決、けっこう疲れた。
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/
問題解決、けっこう疲れた。
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ピンに対応しています。
マイコン部分には電源機能が欲しいので、USBコネクタを取り付けました。今つけるなら Type-Cということで、
USB Type-Cコネクタ 電源供給用 パーツ一般 秋月電子通商-電子部品・ネット通販
https://akizukidenshi.com/catalog/g/gC-16895/
を使いました。
あとあとのことですが、type-Aからtype-Cへの変換ケーブルなら普通に給電できますが、CC1, CC2ピンがないので、Nintendo SwitchのACアダプタなどの賢いtype-C電源には使えませんでした。
以下、作成の経過です。
エナメル線がはんだ付けされているように見えますが、繋がっていない部分がありました。
はんだが溶けてもさらに熱を加え続け、なんとなくプチっと音がしたくらいで(天ぷら?)やっと導通を確認できました。
マイコンソケットは丸穴。丸穴のソケットだと隙間が多く、ソケットの下あたりにUSBコネクタ(レセプタクル)の足を通せるので。
マイコン部分はこれで完成。
ATtiny85は、fuse設定やDigisparkのブートローダは書き込み済。
裏もこんな感じ、一応チップタイプのパスコンも付けてみた。
書き込み器。
上は6ピンISPとしても使えるようにした。
P0をpull-downできるスイッチもとりつけた。
重ねたところ。
0, 1, 2, 3番を使ったCharlieplexingでLEDはきちんと光っています。
作ってみて思ったのは、USBを書き込みでしか使わないのであれば、ISPプログラマでいいのでは、、Digisparkのメリット全部否定してるし。
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ピンに対応しています。
マイコン部分には電源機能が欲しいので、USBコネクタを取り付けました。今つけるなら Type-Cということで、
USB Type-Cコネクタ 電源供給用 パーツ一般 秋月電子通商-電子部品・ネット通販
https://akizukidenshi.com/catalog/g/gC-16895/
を使いました。
あとあとのことですが、type-Aからtype-Cへの変換ケーブルなら普通に給電できますが、CC1, CC2ピンがないので、Nintendo SwitchのACアダプタなどの賢いtype-C電源には使えませんでした。
以下、作成の経過です。
エナメル線がはんだ付けされているように見えますが、繋がっていない部分がありました。
はんだが溶けてもさらに熱を加え続け、なんとなくプチっと音がしたくらいで(天ぷら?)やっと導通を確認できました。
マイコンソケットは丸穴。丸穴のソケットだと隙間が多く、ソケットの下あたりにUSBコネクタ(レセプタクル)の足を通せるので。
マイコン部分はこれで完成。
ATtiny85は、fuse設定やDigisparkのブートローダは書き込み済。
裏もこんな感じ、一応チップタイプのパスコンも付けてみた。
書き込み器。
上は6ピンISPとしても使えるようにした。
P0をpull-downできるスイッチもとりつけた。
重ねたところ。
0, 1, 2, 3番を使ったCharlieplexingでLEDはきちんと光っています。
作ってみて思ったのは、USBを書き込みでしか使わないのであれば、ISPプログラマでいいのでは、、Digisparkのメリット全部否定してるし。
DigisparkにCharlieplexingは不向きかな。その2 [Arduino]
調べていたら、aitendoで12連LEDを発見したので購入。
12バーLEDアレイ - aitendo
https://www.aitendo.com/product/11443
ついでにこれも。
超極細エナメル線★φ0.1★10m巻き★ - aitendo
https://www.aitendo.com/product/4733
それで作ってみました。抵抗もチップ抵抗を使用。
で、こんな感じ。
12バーLEDアレイ - aitendo
https://www.aitendo.com/product/11443
ついでにこれも。
超極細エナメル線★φ0.1★10m巻き★ - aitendo
https://www.aitendo.com/product/4733
それで作ってみました。抵抗もチップ抵抗を使用。
で、こんな感じ。