私はLPC54S018を搭載したEVB LPC54S018M-EVKを購入し、それにSPI-MRAMチップ=MR25H40を接続します。
SPI-MRAM(MR25H40)からLPC54S018にファームウェアをロードする必要があります。MRAMをFLEXCOMM9に接続しました。ファームウェアからこのMRAMへのデータの読み書きは正常にできますが、問題ありません。でもMCUを起動できません。
オシログラムでは(RESET後に)マイクロコントローラのブートROMコードがMRAMと通信し始めるのがデフォルト速度=12 MHz(起動ROMがウェイクアップコマンド(opcode = 0xAB)を送信し、その後「read JEDEC-ID」コマンドを3回送信します(opcode = 0x9F))。その後、SPI上ではそれ以上の活動は発生しない。ウェイクアップコマンドはMRAMによって正常に処理されますが、「JEDEC-ID読み取り」コマンドはメモリによってサポートされていません(MRAMのデータシートによる)。私は、ブートROMコードが「JEDEC-IDの読み取り」コマンドに対する応答を受け取らなかったため、デフォルトの速度で起動を続行するだけだと思っていました。しかし、理由は不明だが、「JEDEC-IDの読み取り」を3回試みた後、ブートプロセスがキャンセルされる。
LPC54S018のISPピンを以下の状態に設定してみました。
1) または ISP0 = high、ISP1 = high、ISP2 = high;
2) または ISP0 = high、ISP1 = low、ISP2 = high。
何も変わりません。マイクロコントローラが起動しません。
「read JEDEC-ID」コマンドへの応答を待たずに、SPIメモリからLPC54S018の起動を続行する方法はありますか?
追伸:負荷処理のオシログラムを添付します。
LPC540xxをSPI-MRAM(MR20H40/MR25H40)から起動することは不可能であるようです。SPI-MRAMは「read JEDEC-ID」コマンドをサポートしていないためです。
しかし、SPI-FRAM(SPI-MARMとは異なり)は「read JEDEC-ID」コマンドをサポートしています。SPI-MRAMをSPI-FRAM(FM25V05)に交換したところ、LPC54S018の起動に成功しました!しかし、FM25V05では、ファームウェアはアドレス0x0000からではなく、0x0001から開始する必要があります。「read JEDEC-ID」コマンドの後、LPC540xxブートROMはまず24ビットアドレスを持つ読み出しコマンド0x03をSPIメモリに送信します。読み取りが失敗した場合は、32ビットのアドレスを持つ読み取りコマンド0x03を送信します。FM25V05は16ビットのアドレスを持ちます。しかし、ブートイメージをアドレス0x0001にシフトすると、LPC540xxはFM25V05からでも正常にブートします。ブートROMでは24ビットの読み取りコマンドが使われるため、最初のバイト読み込みは省略されます。
添付のオシログラムを参照してください。
後で、24ビットアドレス指定が可能なCY15B104QN(SPI-FRAM)からの起動を試してみます。
こんにちは、 @jcxzさん
ボードが正常に起動したと聞いて大変嬉しく思います。
他に何かご質問やご不明な点はありますか?
よろしくお願いします。
BR
アリス
はい。次に、CY15B104QN-50SXI SPI-FRAMからの起動を試みました。機能しません
FM25V05は「7F,7F,7F,7F,7F,7F,C2,23,00」(16進数)の形式でJEDEC-IDを出力します。LPC54018ブートROMはこれを受け入れて起動します。しかし、FM25V05の容量は私のプロジェクトには小さすぎます。
それでは、FM25V20Aから起動してみます。そこから起動してくれるといいのですが。
PS: CY15B104QNは、新世代のSPI-FRAMチップである「EXCELON™ F-RAM」(Infineon社製)に属します。どうやらLPC54018ブートローダーはそれらをサポートしていないようです。
FM25V20A-GからLPC54018を正常に起動できました!
LPC54018のMRAM/FRAMブート機能チェックの最終結果:
1. SPI-MRAM (MR25H40) からのブート:失敗。考えられる原因=JEDEC-ID読み取りコマンドがサポートされていない。
2. SPI-FRAM CY15B104QN からのブート、JEDEC-ID = "00,2C,C2,7F,7F,7F,7F,7F,7F" (16 進数):失敗。考えられる原因=ブートROMがJEDEC-IDを認識していない。
3. SPI-FRAM FM25V20A-G からブート中、JEDEC-ID = "7F,7F,7F,7F,7F,7F,C2,25,08" (16 進数):成功。考えられる理由=ブートROMがJEDEC-IDを認識している。
4. SPI-FRAM FM25V05 からブート、JEDEC-ID = "7F,7F,7F,7F,7F,7F,C2,23,00" (16 進数):成功。考えられる理由:ブートROMがJEDEC-IDを認識している。ただし、ブートイメージはアドレス1(0ではない)に配置する必要があります。
しかし、CY15B104QNのメモリファミリは新しいです。これは旧型のFM25Vxxの後継機種です。したがって、CY15B104QNを使用したいと思います。CY15B104QNからのブートがサポートされていないのはなぜですか?また、FUTUREのLPC540xxのリビジョンでは、CY15B104QN(またはこのファミリの他のチップ)からの起動機能は追加されるのでしょうか?