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.pdfとhttps://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)。
助けてください。ここに来て、誰のために
最初のパケットの前にSWDウェイクアップシーケンス(SWDIO = 1で50個のSWCLKサイクル)を発行しましたか? – Nipo
ありがとう@Nipo。私はその問題を発見した。最初にJTAG-SWD文字列を送信してから、DP IDレジスタも読み取らなければなりませんでした。 – guraaf