2017-01-31 103 views
1

Nordic Semi MCUのプログラム/停止/起動/消去などを試みています。これはnRF52のARM-Cortex M4です。私はチップのSWDピンを使用しています。市販のJ-LinkをnrfjprogコマンドラインツールまたはSegger Windowsユーティリティで使用すると、これを実現できます。Nordic nRF52をSWDインターフェイスで制御する

しかし、2番目のMCUのGPIOピンを介して別のMCUからnRF52を制御し、3線をnRF52-SWCLK、SWDIO、GNDに接続して自分のSWDドライバを作成します。

これらのワイヤは現在ホストによって駆動されており、SWDのARMリファレンスマニュアルを使用しています。このプロトコルは、私が達成しようとしているものに対しては比較的簡単です。次のPDFにはいくつかの詳細があります:http://hackipedia.org/Hardware/CPU/ARM/pdf,%20Cortex/IHI0031A_ARM_debug_interface_v5.pdfhttps://www.silabs.com/Support%20Documents/TechnicalDocs/AN0062.pdf

私は最初のパケットヘッダ(START、APnDP、Read、Addr、Stop、Parityなど)を送ることができます。しかしその後、SWDIOは決して回りません。私のホストMCUはSWDIOを浮動させ、入力を受け取る準備ができています。しかし、nRF52は決してACKでSWDIOラインを駆動することはありません。

NRF52がデータパケットヘッダーを見たことがないか、送信したものが好きではなかったからだと思いますが、何が分かりませんか。誰かがこれを経験したことがありますか、またはこれが起こっているかもしれない理由を知りましたか?ところで、SWDCLK遷移は100kHzで起こります。 (クロック周期10μs)。

助けてください。ここに来て、誰のために

+0

最初のパケットの前にSWDウェイクアップシーケンス(SWDIO = 1で50個のSWCLKサイクル)を発行しましたか? – Nipo

+0

ありがとう@Nipo。私はその問題を発見した。最初にJTAG-SWD文字列を送信してから、DP IDレジスタも読み取らなければなりませんでした。 – guraaf

答えて

0

、私のためのトリックは、次の操作を実行することでした。

はJTAGツーSWDスイッチパターン はDP IDレジスタ を読む送るなどの高SWDIOと50+クロックを送りますその後、私は北欧からの応答を得ることができます。

関連する問題