LPC-LINK と接続の種類 [LPC]
XX-LIN には JTAG SWD SWIM が有るのが判りました、
STM32は SWD STM8は SWIM LPC1114/302はどれかまだ判っていません(8pin全部を繋いでしまったので) LPC1114FN28/102はSWD ですから電源以外2pinで 接続が出来ることが判りました。
必要なコネクタを作って試してみます。
SWD の接続ですと 次のようにしますと 1度はコンパイルして書き込んでいるようです。
LPC-LINK LPC1114FN28/102
1 Vdd 3.3v 21 Vdd
2 SWDIO 12 TDIO
3 SWCLK 3 TCK
4
5
6 nRSET 23 nRST
7
8 GND 22 GND
しかし、2回目に同じようにしますと、LPC-LINK が見つからないと出てしまいます。
ファイル リスタートをしますと もう一度同じようにすることが出来ます。
開始するとき、起動してワークスペースに「C:\Workspace\LPC1114FN28_102\test2」
を選んで OKします。
LPCX1114_cmsis2_systick のフォーカスを当て 右上の MPUマークが濃くなっていますと、
それをクリックしますとMPUを選択できます(LPC1114FN28/102 )を選んでOKしますとMPUが決定されます。
左上の中からBinaries 「LPCX1114_cmsis2_systick.axf 」をフォーカスし
上から2段目のICマーク プログラムフラッシュ をクリックし 窓が開くので
プログラムフラッシュメモリーに「C:\Workspace\LPC1114FN28_102\test2\LPCX1114_cmsis2_systick\Debug\LPCX1114_cmsis2_systick.axf」を指定して OKしますと書き込みが行われました。
一応は書けたんですが何か間違った使い方をしているような気がして成りません。
次はデバッグしながらの修正などをしてみたいと思います。
追加、 PLC1114FN28/102 の デバッグ画面
LPCX1114_cmsis2_systick_twinkle を選んで、
MPUを LPC1114FN28/102 を選択し、左下の金槌マークをクリックしてコンパイルし。
左下の虫のマークをクリックすると LPC-LINKを選択する画面が出て、
OKをクリックしますと 104行に LEDポートが表示されました。
port 0_7 - LED2 が出力に当てられたようです。
続 しばらくさぼっていた LPC-LINKによる接続 [LPC]
なかなか判らなしばらくさぼっていた LPC-LINKによる接続。と書き込みが出来ました。
UARTによる書き込みは出来ていたので、
今度はLPC-LINKで書き込みたかったのですが、上手くできませんでした。
原因は3つほど有り、「WinUSB-download.zip」を解凍して「WinUSB-download」にして
中の「WinUSB-WinXP-Install」ホルダにある「WinUSBdrv」がLPC-LINKのインストール本体で
「HowToInstall-WinXP.txt」を読んで「WinUSBTest.inf」をインストールして「install.cmd」を実行すると
install.cmdに記述している様に「dpint.exe /lm」 が実行され、」LPC-LINKが正しく設定されました。
次に プログラムを組上げるホルダの たとえば「C:\Workspace\LPC1114F_302\test3」を作ります。次に例として「LPCXpresso_5.1.2_2065」を起動して実行ホルダを「C:\Workspace\LPC1114F_302\test3」に指定し直します。
次に、左下のインポートプロジェクトをクリックし、
上の欄に「C:\NXP\LPCXpresso_5.1.2_2065\lpcxpresso\Examples\NXP\LPC1000\LPC11xx\LPCXpresso1114_cmsis2.zip」のZIPファイルの場所を入れます。これを次に進めますと、必要なサンプルなどが出来上がります。このうちの例 左上の「LPCX1114_cmsis2_systick_twinkle」をフォーカスして、右上のマーク3番目をクリックすると、実行するMPUの選択窓が開きます。
こんかいは 「LPC1114/302」を選んで、左下の7番目デバッグをクリックすると、デバッグ用コンパイルが始まり、成功すると、LPC-LINKを選ぶ画面が出て「OK」を押すと書き込んでくれます。
上図のように、エラー無くコンパイルして書き込むことが出来ました。
サンプルなどを追加するとき、灰色になってチェックが出来ないときは、すでに組み込まれている場合です。(さてそれがどこにあるのかは見つけていません)
LPC1114/302 は LPC-LINK 8pinの配線順番が少しねじれていて 、記号を合わせて、ひねった状態で繋いでいます。 LPC1114FN28/103 は順番がまだ良く判っていないので突き止めましたら、また載せます。
Flash Magic の ISPによる接続 [LPC]
ISP 書き込み Flash Magic について少し情報がありました。
LPC1114F/102 ISP
PIO0_1 24 General purpose digital input/output pin.
A LOW level on this pin during reset starts the ISP command handler.
RESET 23 External reset input with 20 ns glitch filter.
A LOW-going pulse as short as 50 ns on this pin resets the device,
causing I/O ports and peripherals to take on their default states,
and processor execution to begin at address 0.
LPC1114F/302 ISP
PIO0_1 4 General purpose digital input/output pin.
A LOW level on this pin during reset starts the ISP command handler.
RESET 3 External reset input with 20 ns glitch filter.
A LOW-going pulse as short as 50 ns on this pin resets the device,
causing I/O ports and peripherals to take on their default states,
and processor execution to begin at address 0.
どうも、BOOT と RESET ボタンが要りそうです。
「step1 オートボーレートのオペレーションが間違っている」
と言うのは、ISP モードに入っていなかった ということだったんですね。
RSTボタン と ISPボタンを追加。
ISPボタンを押したままで、RSTを押して離し Flash Magic を動作させますと 今度は動作しました。
今まで悩んでいたのはなんだったんだろう・・それに最初はなくても動いたのも不思議。
Flash Magic が動作せずに困っておられたら一度試してみてください。
信号のpin番号はデバイスによっても違うので、マニュアルでご確認してください。
もう一枚の基板にも同じようにボタンSW を付けますと、同じように書き込めました。
大抵のLED表示は明るすぎてこのように写ってしまいます。
自分で設計する場合は抵抗値を大きめにしたり、他の基板でも後から大きくしたりもします。
今回の分は 1kオームですが 2.7kとかにすることが多いです。
LPC-LINKによる接続 [LPC]
aitendo ARMコアモジュール[M-LPC1114F-C] の接続。
LPC1114F/302 と LPC-LINKを繋いでみました。
ピン配列が違うので、変換ケーブルが必要です。
ISPによる接続もやってみたいのですが、関連情報が集まりません。
今話題のLPC1114FN28をいじくってみました [LPC]
akiで110円と安いのも魅力ですが、Flash:32KB-0000 7FFF RAM:4KB-1000-1FFF と少ないも、RCオシレータ: 12MHz, 1%精度 外付けクリスタルも可 UART (RS-485) SSP/SPI I2C (Fm+) ADC x 6ch タイマ: 32-bit x 2/16-bit x 2 (PWMモードあり) systickタイマ ウオッチドッグタイマ GPIO:22本 とペリッフェラルが充実していて パッケージ: DIP28 と使いやすそうです。
このチップを使った「eXodusino」がArduino似になるそうで、「NeXtPino」という類似ボードもでていますが、まだ IDE を見つけていません。
最近気になる記述を見つけました、(これが本当ならパクリ・・でしょうか、あるいは進化と見るべきか?)初めからそう書いていけば問題がなかったでしょうに。
「実際のところ、eXodusinoとMARY-DUINOは不可分の関係で、デモ・プログラムのソースを覗くとArduino用のライブラリーであるXBee-Arduinoが、確かにほとんどそのまま流用されていることが判ります。」
表は抵抗2kオーム、黄色LED、10uF25v,XTAL-12MHz で 裏は 電源位置 0.1uFX3,22pFX2.4uH です。(電源ランプは刺激的な赤や青をさけ、白か黄色を多く使っています)
書き込みは 電源3.3vを与え 「Flash Magic」で P25- RXD P26-TXD に クロスで UARTから信号を与えますと、認識はしたんですが .bin が扱えず、別の基板を使い、Flash Loader Demonstrator で .bin を読み込み .hex で書き出してから Flash Magic にて書き込めました。
http://www.flashmagictool.com/download.html&d=FlashMagic.exe
しかしこの後もう一度 Flash Magic でアクセスしようとしたら、エラーになってしまいました。
考えられる原因は、書きこんだ事によってCOMポートのサポートが変わってしなったのかもしれませんが、STM32などの場合は COMによるアクセスが 基本であって これでアクセスできないとなると違うツールを用意しないといけません。
Flash Magic opration faield. faield to autobaud - step1
step1 オートボーレートのオペレーションが間違っている、 とでてアクセス先がでました。
http://www.flashmagictool.com/autobaud.html
クロックを計ってみると11.9998MHz ですから問題はないはずです。
上の場所に、アクセスしてもう一度ダウンロードインストールするとPMとマニュアルだけだった機能が 11に増えていました。
Webで調べると このエラーに関する記事が沢山出てきます、AN10711 には ISPを L にして、ブートモードにするようなことが書いてありましたが、このチップにはISP端子が見あたりません、バグ的なものが含まれているのかもしれませんね。
http://akizukidenshi.com/catalog/g/gI-06071/
ユニバーサル基板に載せようと思ったんですが、COREBD-MCS51 が比較的安く端子引き出しが楽になるので、 移植母体にしました、 元の機能を補完しないので寄生の方がが正しいでしょう。
(USBや3.3vの電源は載っていませんので後で何とかするとして)
回路図と基板の裏側とにらめっこをしていると 、VDDA と VDD を間違って配線してしまっています。
これを直してからもう一度やってみます。
それと、LPC-LINK 用のピンヘッダを出してこれも使えるようにしました。
穴開けは超硬0.9φドリルですが、ピンチャックに付けて手回しで使っているため、最後に抜ける瞬間が、プロペラマークのような穴になってしまい強く回すとドリルが折れてしまいます、ゴニョゴニョと行きつ戻りつしていると仕舞いに穴が丸くなって 、ドルるを抜くことが出来ます。
この後ランドにするカッターを銅箔面から差し込んで回し穴の周囲に溝を掘ると ピンを差し込んでからの線の引き出しが楽になります。
LPC-LINK は LPCXpresso(1769) 基板を切り離して箱に入れたものを使っていますがなかなかぴったりの箱がありません、少し大きめの箱に詰め物をしました。
LINK部分には電源関連と LPC3154-JTAG と SWD/JTAG Interface の 8ピンX2 が出ていて
上から 1pinで
VIO_3V3X JTAG_TMS_SWDIOX JTAG_TCLK_SWCLKX JTAG_TDO_SWOX JTAG_TDIX JTAG_RESETX EXT_POW EXT_POWX GNDX の順番です。
ターゲット側 LPC1769 Target Side は JTAG_RESETX は VIO_3V3X から 12k でプルUPされています、他にも 10/100M Ethernet PHY (LAN8720) が有り、イーサネットを意識した構成になっていました。
LPC1114FN28 でも同じようにRESETにプルアップを入れた方がいいようです、また /DTR から0.01uF で強制リセットを出来るようにも考えておきますが、USB-COMを分離した場合はどちらに入れたらよいか・・12kは LPC1114FN28 側に 0.01uF はCOM側にしようと思います。
画像左の赤線はAVDDなのにVDDとして扱ってしまいました、右の赤い基板はLPC1114F/301 ですが、LPC-LINK の配列が違っているので クロスコネクタを作ります。
ARM の フリーtoolを見つけました。
http://www.coocox.org/Index.html
なんだか個々のを各社がカスタマイズしてXX-LINKとか 専用にしているんではと疑っています。
しかし、本来はUARTによる設定や書き込みが基本形のような感じです。
以上の記事は
Lynx-EyEDの電音鍵盤
さんから戴いた情報を参考に 自分の実験結果を反映させて頂いています。
他には 後述 aitendo の マイコンボードもいじってみました。
STM32評価ボード[EVB-STM32F103C8T6]
C8-64kb-0x0800 0000-0x0800 FFFF
CB-128K-0x0800 00000-0x0801 FFFF
http://www.aitendo.com/product/6538
基板のみ 250円
元のままでは認識せず、RESET回路、BOOT0回路をいじりました、これをするとどこかが安定になって、認識するようです。
ST-LINKv2 を繋いでもターゲットに電源が無いと動作せず、USBを繋ぐと電源が生きて、認識されました。(しかしこれもUSBのVID、PIDが不明なデバイスになります)
やはりこれもエラッタに載っているバージョンでした。
ARMコアモジュール[M-LPC1114F-C]
基板のみは 100円 しか安くない。
これはまだ触っていません。
http://www.aitendo.com/product/6352
MPUコアボード(MCS51)[COREBD-MCS51]
上記、 LPC1114FN28 の 寄生対象です。
http://www.aitendo.com/product/4154
基板のみ100円