ホーム フォーラム Texas Instruments マイコン C2000 プログラム書き換え

このトピックには6件の返信が含まれ、2人の参加者がいます。4 年、 10 ヶ月前Yojiro Yojiro さんが最後の更新を行いました。

7件の投稿を表示中 - 1 - 7件目 (全7件中)
  • 投稿者
    投稿
  • #8630 返信

    ttkkttkk
    参加者

    プログラム書き換え

    デバイス型番:TMS320F28379D

    度々お世話になっております。

    F28379DのDSPにおいて
    SPIを使って、プログラムデータをRAM(ROM)に保存し、
    自分自身のコードを書き換えるような事は可能でしょうか

    #8648 返信
    Yojiro
    Yojiro
    従業員

    ttkkttkkさん

    SPIを使用したプログラムローダーのサンプルプロジェクトは用意されておりませんが、UARTによるプログラムローダーのサンプルプロジェクトが用意されております。
    <C2000ware>\device_support\f2837xd\examples\dual\F2837xD_sci_flash_kernels

    こちらをベースに、UART通信部分をSPI通信へ変更いただくことで、対応可能と考えます。

    ご確認のほど、よろしくお願いいたします。

    #8692 返信

    ttkkttkk
    参加者

    回答ありがとうございます

    基本的な箇所で不明点があるので
    すみませんが、教えてください。


    serial_flash_programmerを使ってSCI_Bootの設定にすれば
    F2837xD_sci_flash_kernelsを経由してプログラムのダウンロードが可能ということでしょうか


    上記、PC から controlCARD(F2837xD) にSCIでダウンロードをする場合には
    PCから出力されたシリアルポートのSCIのRXD,TXD,GNDと基板のRXD,TXD,GNDをつなぐ配線が必要になるのでしょうか

    #8716 返信
    Yojiro
    Yojiro
    従業員

    ttkkttkkさん


    serial_flash_programmerを使ってSCI_Bootの設定にすれば
    F2837xD_sci_flash_kernelsを経由してプログラムのダウンロードが可能ということでしょうか

    はい、ご認識の通りです。
    改めまして、serial_flash_programmerの動作につきまして、以下に記載させていただきます。

    • SCI Boot Modeで起動しているC2000デバイスに対して使用します。
    • SCI Bootloader(BootROM)は、serial_flash_programmer(PC)から受信したプログラム(Flash Kernel)をRAMに展開します。Bootloaderは全てを受信すると、RAMに保存したFlash Kernelを起動します。
    • 起動したFlash Kernelは、serial_flash_programmerから受信したファームウェアをFlashROMへ書き込みます。
    • serial_flash_programmerは、ファームウェアの転送後、ベリファイコマンドを送信し、書き込みが正常に行われたことを確認した後、リセットコマンドを送信します。


    上記、PC から controlCARD(F2837xD) にSCIでダウンロードをする場合には
    PCから出力されたシリアルポートのSCIのRXD,TXD,GNDと基板のRXD,TXD,GNDをつなぐ配線が必要になるのでしょうか

    はい、JTAGエミュレータにはC2000デバイスと通信するためのシリアルポートの信号は出力されませんので、別途PCからのシリアルポートの信号(RXD, TXD, GND)を接続して頂く必要がございます。

     

    ご確認のほど、よろしくお願いいたします。

    #8717 返信

    ttkkttkk
    参加者

    丁寧な回答ありがとうございます。

    serial_flash_programmerをまだ実際に使用していない状態で申し訳ないのですが
    教えてください。


    上記2の質問の続きになるのですが
    F2837xDとcontrolCARD Docking Station v4.1を使用しているのですが
    serial_flash_programmerからシリアル通信でプログラムをダウンロードする場合
    controlCARDの76pin(RXA),78pin(TXA)に接続すれば可能でしょうか?
    A:SW1の[Switch Position 2]をONにする必要があるのでしょうか?


    serial_flash_programmerは、ファームウェアの転送後、ベリファイコマンドを送信し、書き込みが正常に行われたことを確認した後、リセットコマンドを送信します。

    とあるのですが、コマンドプロンプトにて実行した場合、
    メニューが表示される記載があるのですが、上記動作はそのメニュー中の1-DFUを選択したときでしょうか?


    サンプルのカーネルのソフトがSCI-A、SPI-Aと通信するように解釈したのですが
    SCI-B、SPI-Bを使用してもダウンロードすることは可能でしょうか?

    何度も申し訳ございませんが回答をお願いいたします。

    #8733 返信

    ttkkttkk
    参加者

    すみません、一点追加です
    controlCARDのOTP、Z1_BOOTCTRLを0x49490B5Aと
    変更してしまったのですが、SCI_Bootを選択することは可能でしょうか?

    何度も申し訳ございませんが回答をお願いします

    #8752 返信
    Yojiro
    Yojiro
    従業員

    ttkkttkkさん


    上記2の質問の続きになるのですが
    F2837xDとcontrolCARD Docking Station v4.1を使用しているのですが
    serial_flash_programmerからシリアル通信でプログラムをダウンロードする場合
    controlCARDの76pin(RXA),78pin(TXA)に接続すれば可能でしょうか?

    F2837xDでは、SCIブート時の信号として、以下を使用します。
    ・ SCITXDA : GPIO-84 (controlCARD:151pin)
    ・ SCIRXDA : GPIO-85 (controlCARD:152pin)
    ※Technical Reference Manual [Table 4-29. SCI Boot Options]より

    この設定は、Boot Mode端子でGet Modeを設定しており、かつZx_BOOTCTRLのBMODEを0x81と設定することでGPIO-28(controlCARD:76pin)とGPIO-29(controlCARD:78pin)に変更可能です。

    serial_flash_programmerでは、Flash Kernelのロードと、ファームウェアのダウンロードが一緒になったツールですので、SCIブート時と同じ端子をご利用いただくことになります。

    A:SW1の[Switch Position 2]をONにする必要があるのでしょうか?

    A:SW1の[Switch Position 2]をONにしていただくことで、XDS100のシリアル通信を利用可能です。
    弊社では試しておりませんが、Dock’ng Station側の151pin-76pin, 152pin-78pinをそれぞれ接続していただくと、デフォルトのSCIブートでもXDS100のシリアルポートが使用できると思います。


    serial_flash_programmerは、ファームウェアの転送後、ベリファイコマンドを送信し、書き込みが正常に行われたことを確認した後、リセットコマンドを送信します。

    とあるのですが、コマンドプロンプトにて実行した場合、
    メニューが表示される記載があるのですが、上記動作はそのメニュー中の1-DFUを選択したときでしょうか?

    serial_flash_programmerのREADME.txtに以下のように記載がございます。
    ”DFU stands for device firmware upgrade and erases, programs and verifies the necessary flash sectors.”
    DFU選択時は、ベリファイまで実行しますが、リセットまで行われません。ベリファイ成功後、Resetを選択頂く必要がございます。


    サンプルのカーネルのソフトがSCI-A、SPI-Aと通信するように解釈したのですが
    SCI-B、SPI-Bを使用してもダウンロードすることは可能でしょうか?

    サンプルのコードは、SCI-Aのみの通信となっております。SPI-A, SCI-B, SPI-Bをご利用の場合は、サンプルコードを修正頂く必要があります。

    controlCARDのOTP、Z1_BOOTCTRLを0x49490B5Aと
    変更してしまったのですが、SCI_Bootを選択することは可能でしょうか?

    申し訳ありませんが、BOOTCTRLが0x49490B5Aとなっている場合、SCI_Boot(Select Pin[0:1]=10b)を選択することができません。
    他のcontrolCARDでお試しいただけますでしょうか。

     

    ご確認のほど、よろしくお願いいたします。

7件の投稿を表示中 - 1 - 7件目 (全7件中)