GRBL v1.1f Upgaradeへの挑戦は続きます。
TxD、RxD端子の通信ではブートローダーが必須で
前回、結局、できませんでした。
事前に、Arduino Unoをブートローダー書込機にしたし
今度は、ISCPを使ってWoodpeckerのGRBL v1.1f Upgradeをやってみます。
この前のGRBL v1.1f Upgrade成功の時に
ここでみつけた
Woodpeckerの回路図を見ます。
WoodpeckerのボードのままISCPで書き込みできないか検討するためです。
USB接続でArduino IDEからGRBL 1.1fにUpgradeできなかったボードです。
マーティーが最初に購入したDZT's storeの
CNC2418のオリジナルのものとは違います。
チップ部品が全て表側についています。
今更ですが、AliExpressの写真(上)と違いますね~
上のボードは、表面にチップ部品が見当たりません。
ISCPの結線は、公式サイトのここの
下の方の右側(水晶発振子がついている方です)
もうひとつ
ここも参考にさせていただきました。
やはり日本語の方が安心できます。
これらは、ターゲットがDIPパッケージなのでピンが異なります。
Woodpeckerに付いているATMEGA328P-AUの
データシートを見ます。
パッケージは、32pin TQFPなので
ピンアサインはこれです。
書込機側のArduino Unoと
ATMEGA328P-AU(32pin TQFP)との接続は
[Uno]--[328P]
D10 -- RESET(29pin)
D11 -- MOSI/PB3(15pin)
D12 -- MISO/PB4(16pin)
D13 -- SCK/PB5(17pin)
5V -- AVCC(18pin)
5V -- VCC
GND -- GND
残り
XTAL1、XTAL2は、16MHz水晶発振子がついているのでOK。
これらのISCPで使う端子についてWoodpeckerを見てみます。
まずは、回路図で
・RESET:ヘッダーピンがでています。
・MOSI/PB3(15pin):D11
Spindle DriveのPower MOSFET Gateに繋がっています。
MOSFETのGate容量が気になる所です。
Infinion IRF540のCissは1960pFでした。
19200bpsでは、問題ないでしょう。たぶん。
・MISO/PB4(16pin):D12
Zend端子でヘッダーピンがでています。
0.1μFコンデンサがGNDに入っているので
ISCP接続するには削除する必要があります。
・SCK/PB5(17pin):D13
何も繋がってなく、ヘッダーピンのRSTとA6の間にでています。
・AVCC(18pin):
GND間に0.1μFがついているだけです。
Datasheetを見ると
"AVCC is the supply voltage pin for the A/D Converter, PC[3:0], and PE[3:2]"
これだったら、5Vに繋がなくていいはずです。
所が私が追加購入したWoodpeckerボードは、
これらが、少し違っています。
私が購入したDZT's storeのCNC2418のボードと違うのです。
どこが違うかというと
RS232C~TTL変換ボードを付けている時から
ちょっと気にはなっていたのですが
書き込みできないボードは、
D12の0.1μFが付いてないのです。
拡大すると外されたのか、接着剤だけなのか
チップ部品がありません。
パット見、目視ではわかりません。
しかもZenのシルク印刷が1個しかないのです。
CNC2418のオリジナルボードは
この右側もZenのシルクがあるのです。
Yenの所は、ちゃんと2つあります。Xenもです。
拡大。
後から取ったような感じもしますね~?
真相はわかりません。
そして、本来、もう一つのZen端子であるべき所は
ISCPで使う
D11であるMOSI/PB3(15pin)から来ているのです。
もう一つ、部品がついていない所が、
A6とGND間のパターンです。
何とD13と繋がっていて
そのD13~GND間の部品が取り外されています。
ここの回路図には出てこない部品ですが
ISCPに不都合なので取り外されていると思われす。
D13はスピンドル回転方向制御端子なので
本来は、ノイズ低減用に0.1μFがついていたと思われます。
結局、ISCPに必要な端子が全てヘッダーピン上に揃うのです。
しかも、書込に支障をきたすD12の0.1μFが削除されています。
オリジナルのボードは、そうはいきません。
D11は、出ていないし、D12に0.1μFが付いています。
これは、もう部品組立後にISCPでGRBL 0.9jを
書き込んでいるとしか、考えられません。
ということは、ブートローダーは入っていない可能性大です。
この時マーティーはできる気満々でワクワクしています。
いよいよ
書込機(Arduino Uno) と Woodpeckerの接続です。
ArduinoISPを書き込んだArduino Uno(”書込機”)とします。
配線は、6本です。
書込機 -- ターゲット
D10 -- RESET
D11 -- D11(Zenの右)
D12 -- D12(Zen)
D13 -- D13(RstとA6の間)
5V -- 5V
GND-- GND
実際の配線はこれです。
このクリップ、便利なのですが
クリップとリード線の色が違って分かり難いです。
公式サイトに注意書きがあるので
Arduino UnoのRES~GND間にタンタルコンデンサ 10μFを入れています。
注意:あくまでもこのWoodpeckerボードはCNC2418純正ではありません
チップ部品が全て表側についているタイプです。
少なくとも先に成功したDZT's storeのものとは異なっています。
では、書き込みます。
[ツール]-[書込装置]から
「Arduino as ISP」にします。
そして、同じく
[ツール]から[ブートローダーを書き込む]をクリック!
OH MY GOD!
エラーです!
*****
Arduino:1.8.3 (Windows 10), ボード:"Arduino/Genuino Uno"
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -cstk500v1 -PCOM3 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m
avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"
Using Port : COM3
Using Programmer : stk500v1
Overriding Baud Rate : 19200
AVR Part : ATmega328P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type : STK500
Description : Atmel STK500 Version 1.x firmware
Hardware Version: 2
Firmware Version: 1.18
Topcard : Unknown
Vtarget : 0.0 V
Varef : 0.0 V
Oscillator : Off
SCK period : 0.1 us
avrdude: AVR device initialized and ready to accept instructions
ブートローダの書き込み中にエラーが発生しました。
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e2b02
avrdude: Expected signature for ATmega328P is 1E 95 0F
Double check chip, or use -F to override this check.
avrdude done. Thank you.
*****
Device(ATmega328P)が正常に認識されていません。
念の為、COM1を19200にセットして
今度は、[ツール]-[ボード]で
Arduino Nanoに設定します。
おっ!いけたかっ!
と思ったのも一瞬。
エラーです。
ここで輝かしい成功の記録にしたかったのに~~
*****
Arduino:1.8.3 (Windows 10), ボード:"Arduino Nano, ATmega328"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -cstk500v1 -PCOM3 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDA:m -Ulfuse:w:0xFF:m
avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"
Using Port : COM3
Using Programmer : stk500v1
Overriding Baud Rate : 19200
AVR Part : ATmega328P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type : STK500
Description : Atmel STK500 Version 1.x firmware
Hardware Version: 2
Firmware Version: 1.18
Topcard : Unknown
Vtarget : 0.0 V
Varef : 0.0 V
Oscillator : Off
SCK period : 0.1 us
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: erasing chip
avrdude: reading input file "0x3F"
avrdude: writing lock (1 bytes):
Writing | ################################################## | 100% 0.01s
avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x3F:
avrdude: load data lock data from input file 0x3F:
avrdude: input file 0x3F contains 1 bytes
avrdude: reading on-chip lock data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying ...
avrdude: 1 bytes of lock verified
avrdude: reading input file "0xFD"
avrdude: writing efuse (1 bytes):
Writing | ***failed;
################################################## | 100% 0.05s
avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xFD:
avrdude: load data efuse data from input file 0xFD:
avrdude: input file 0xFD contains 1 bytes
avrdude: reading on-chip efuse data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0xfe != 0xfd
avrdude: verification error; content mismatch
avrdude done. Thank you.
ブートローダの書き込み中にエラーが発生しました。
*****
いいとこまで行っていた感じでしたが
最初の1Byte 0x3Fを書き込んでだものの
Verifyでエラーです。
中途半端な書き込みだから死んだだろうなあ~?
Arduino IDEのシリアルモニタで確認します。
「おーい!」・・・応答がありません。
死にましたーーー!(T_T)
ということで
このWoodpeckerは、チップを載せ替えないと
v1.1fへのUpgradeはできないという始末になってしまいました。
重ねて言いますが
この失敗したGRBLコントロールボード(Woodpecker)は
先に成功したAliExpressのDZT's storeで購入したものではありません。
別のセラーから購入したボードです。
一見、同じものですが違う方法で作られている可能性大です。
たまたまこのボードだけができなかったのかもしれません。
たまたまDZT's storeのボードができたのかもしれません。
”v1.1f Upgrade可能”とは、セラーは謳っていないので
壊れても自己責任であります。
今思えば、手を抜いてしまった手順
ステッピングモータードライブシールドを外しておけばーー
ケーブルを短くしておけばーー
等も考えられますが、後の祭りです。
幸運にも?、まだ最終手段が残っています!
ATMEGA328P-AU 32pin TQFP単体に
ブートローダーを書き込んだものを
Woodpeckerに載せ替えてGRBL1.1fをアップロードする方法です。
それにしてもTQFP単体に
どうやって書き込もうかな~~~~
TQFPアダプタソケット買うしかないのだろうか?
そもそも数$をケチって安いボードを買ってこの始末なのです。
何だか高くつきそう。
ということでまた失敗の記録となりm(_ _)m
ブートローダーを書き込んだものを
Woodpeckerに載せ替えてGRBL1.1fをアップロードする方法です。
それにしてもTQFP単体に
どうやって書き込もうかな~~~~
TQFPアダプタソケット買うしかないのだろうか?
そもそも数$をケチって安いボードを買ってこの始末なのです。
何だか高くつきそう。
ということでまた失敗の記録となりm(_ _)m
2 件のコメント:
マーティーさん
GRBLのバージョンアップ、コントロール]基板の違いでご苦労されていますね。
当方は、CNC2418付属の基板(マーティーさんと同じもの)で、無事にバージョンアップできました。S110,$111の値変更(5000→2000)もあわせてやっておきました。
Arduino IDEは、バージョンによって、コンパイルできたり、できなかったりの経験はあります。
そのため、v1.0.6,v1.6.9、最新の三種類で試すようにしています。 GRBLはv1.8.0でOKでした。IDEからのコマンドでの設定値変更が反映されないエラーも同じでした。
マーティーさんのブログもワールドワイドになってきましたね。何カ国ぐらい閲覧されているのでしょう?
GRBL Upgrade成功おめでとうございます!
$110、$111は、5000にしても実質稼働ではmax2000位です。
800にしてみるとちょっと遅い所がある感じなので
2000はいい所かなあと思います。
苦労も勉強の内で頑張っています!
頭の運動です。体の運動がお休み状態ですが...
Arduino IDEのバージョンは3種類も試されるんですね。
このような情報は大変参考になります。
ちなみにこれまで14カ国から閲覧されています。
多い順です。
Google翻訳も一昔前から格段に良くなっていますからね~
日本、USA、台湾、ドイツ、タイ、南アフリカ、大韓民国、アイルランド、アイスランド、ロシア、スペイン、ベルギー、アルゼンチン、ブラジル
この辺も励みになります。
コメントを投稿