フォーラムへの返信
-
投稿者投稿
-
ETさん
お問い合わせありがとうございます。
・1ポートあたりの入出力電流上限
出力設定時の電流上限は、データシート(JAJSEZ6G)の5.6 Electrical Characteristics Ioh/Iolに記載されております通り、Ioh=-4mA, Iol=4mAとなります。
入力設定時の電流上限につきましては、通常動作の条件として定義されておりませんが、データシート(JAJSEZ6G)の5.1 Absolute Maximum Ratings/Input clamp currentに記載されている値(-20mA~20mA)が通常動作にも当てはまるとのことです。・全ポートを合計した入出力電流上限
全ポートにつきましては、出力時は 5.1 Absolute Maximum Ratings / Output current の値(-20mA~20mA)となります。per pinとの記載はされておりますが、全ポートでもこの値に従うとのことです。
入力につきましては、1ポートと同様、Input clamp currentのTotal for all inputsの値と同じ(-20mA~20mA)とのことです。ご確認のほど、よろしくお願いいたします。
ttkkttkkさん
メモリアクセスについて解決いただけたとのこと、承知いたしました。
TMS320F28379Dでは、リセット解除後はすべてのGSRAMは、CPU2ではRead onlyとなっております。
必要に応じてGSxMSELレジスタにてアクセス権をCPU2へ変更頂く必要がございます。グローバル変数の配置につきましては、プロジェクトのリンカコマンドファイル(拡張子.cmd)にて定義されます。
C言語でグローバル変数を定義していただくと、その変数はセクション”.ebss”がコンパイラにて割り当てられます。
リンカコマンドファイルにて、このセクションを配置する先を「SECTIONS:」で定義しております。.pinit : > FLASHB, PAGE = 0, ALIGN(4)
.ebss : >> RAMLS5 | RAMGS0 | RAMGS1, PAGE = 1
.esysmem : > RAMLS5, PAGE = 1上記の例では、.ebssセクションを「RAMLS5」と「RAMGS0」「RAMGS1」に定義しています。
C2000のアセンブラ・リンカはEABIとCOFFの2つのメモリモデルに対応しております。
この2つのメモリモデルでは、出力されるセクション名が異なるため、リンカコマンドファイルでは、”#if defined(__TI_EABI__)”によりそれぞれのモデルに対応させています。
しかし、現在のコンパイラはCOFFモデルにのみ対応となっておりますので、
#if defined(__TI_EABI__)…#else
の#else側をご確認いただければと存じます。ご確認のほど、よろしくお願いいたします。
ttkkttkkさん
デバッガ未接続時にTESTL1が実行されないとのことですが、_c_int00からのコードが実行されるということでしょうか。それとも、全く動作していないように見えるということでしょうか。
デバッガを接続してご確認いただいたときには、通常の動作(GPIO86=H)を確認したあと、CCSの”CPU Reset”でリセットからご確認されていると思います。CCSの”CPU Reset”では一部のレジスタはリセットされません。代表的なもので、クロック関連とウォッチドッグ関連があります。
CPUクロックは、電源ON後は10MHzで動作しています。一度通常動作を実行されますと、おそらく200MHzを設定されているかと思いますので、その差は20倍になり、見た目上動作していないように見える場合がございます。
また、サンプルプログラムでは、ウォッチドッグをディセーブルに設定していますので、同様にCPU Resetを実行されても、ディセーブルとなります。
デバッガ未接続で電源ONした場合、CPUクロックは10MHz動作かつウォッチドッグはイネーブルとなり、TESTL1ラベル以降で、これらの設定を行わない場合にウォッチドッグによるリセットが発生している可能性が高くなります。
まずは、TESTL1ラベルの処理にて、ウォッチドッグをディセーブルに設定してご確認いただけますでしょうか。
ご確認のほど、よろしくお願いいたします。
ttkkttkkさん
Zx_BOOTCTRLがデフォルトの場合、GPIO72,84はBootROMが Flash ROMのコードを実行するかを判断するために使用されます。code_startファンクションは、この判定のあとに実行されるものになりますので、利用することは難しいものと考えます。
以上、よろしくお願いいたします。
申し訳ありませんが、ご希望のサンプルコード・プロジェクトはございません。
以上、よろしくお願いいたします。
ttkkttkkさん
はい、ご認識のとおりです。
”BEGIN”は Flash ROMのセクタA(FLASHA)の領域の一部を使用しています。そのため、”BEGIN”を拡張の際は、”FLASHA”の開始アドレス(origin)とサイズ(length)も調整頂く必要があります。
ご確認のほど、よろしくお願いいたします。
ttkkttkkさん
はい、可能です。
ただし、code_startに追加される場合、Linker Command Fileでは、セクション”codestart”はブランチ命令分のサイズ(2WORD)しか確保されておりません。GPIOの入力確認と分岐命令の追加コード分は、Linker Command Fileにて拡張して頂く必要がありますので、ご注意ください。
ご確認のほど、よろしくお願いいたします。
zerozeroさん
お問い合わせいただき、ありがとうございます。
SYS/BIOSをインストールしていただきますと、同じパッケージ内にサンプルプログラムもインストールされます。
Code Composer Studioのバージョン9.0以降(以下、CCSv9)では、ご確認いただいたフォーラムに記載されている”Resource Explorer Classic”は廃止されました。
CCSv8.3をお使いの場合は、CCSv8.3のViewメニューから”Resource Explorer Classic”を選択していただきますと、フォーラム記載の画面がご確認いただけます。CCSv9にてサンプルプログラムをご確認いただくには、新規プロジェクトとして作成時に、SYS/BIOSサンプルプログラムを指定していただきます。
- CCSv9の Projectメニュー → New CCS Project… をクリックして、プロジェクトの作成ダイアログを表示してください。
- ダイアログでは、Targetに”TMS320F28379D”を選択します。(<select or type filter text>に”F28379D”を入力いただくと、すぐに選択することができます)
- Project nameには、ご希望のプロジェクト名を記入ください。
- Project templates and exampleリストに、”> SYS/BIOS”をクリックしていただくと、その右側に”Import Wizard”というリンクが表示されます。
- ”Import Wizard”をクリックしていただくと、サンプルプロジェクトのダイアログが表示されます。
インポートしたいプロジェクトのチェックをONにして「Finish」ボタンをクリックすると、対象プロジェクトがCCSにインポートされます。
※同じ名称に”28”が付いているプロジェクトがいくつかあります。TMS320F28379Dでは”28”が付いているプロジェクトをご利用ください。
ご確認のほど、よろしくお願いいたします。
ttkkttkkさん
1
上記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のシリアルポートが使用できると思います。2
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を選択頂く必要がございます。3
サンプルのカーネルのソフトが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でお試しいただけますでしょうか。ご確認のほど、よろしくお願いいたします。
ttkkttkkさん
1
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は、ファームウェアの転送後、ベリファイコマンドを送信し、書き込みが正常に行われたことを確認した後、リセットコマンドを送信します。
2
上記、PC から controlCARD(F2837xD) にSCIでダウンロードをする場合には
PCから出力されたシリアルポートのSCIのRXD,TXD,GNDと基板のRXD,TXD,GNDをつなぐ配線が必要になるのでしょうかはい、JTAGエミュレータにはC2000デバイスと通信するためのシリアルポートの信号は出力されませんので、別途PCからのシリアルポートの信号(RXD, TXD, GND)を接続して頂く必要がございます。
ご確認のほど、よろしくお願いいたします。
kitadeさん
お問い合わせありがとうございます。
MDK-ARMのプロジェクトをそのままCCSにインポートする方法および移行ガイドラインは用意されておりません。
お手数ですが、ご自身でCCSの新規プロジェクトまたはTivaWareのサンプルプロジェクトをベースに環境を作成して頂く必要がございます。ソフトウェアでは、貴社作成部分と、TI社のTivaWareをお使いいただいているとのことですので、TivaWareのサンプルプロジェクトをベースに、貴社作成部分を組み込んで頂くことで、比較的簡単に環境構築は可能だと考えます。
CCSで使用可能なコンパイラは、TI社製のARMコンパイラまたは、GCC-armコンパイラとなっております。
貴社作成ソフトウェアにおいて、#pragmaやインラインアセンブルなどMDKコンパイラ依存がありましたら、TI ARMまたはGCC向けに修正頂く必要がございます。ご使用されている場合は、ARMコンパイラマニュアルをご確認の上、適宜修正ください。
以上、ご確認のほど、よろしくお願いいたします。
ttkkttkkさん
SPIを使用したプログラムローダーのサンプルプロジェクトは用意されておりませんが、UARTによるプログラムローダーのサンプルプロジェクトが用意されております。
<C2000ware>\device_support\f2837xd\examples\dual\F2837xD_sci_flash_kernelsこちらをベースに、UART通信部分をSPI通信へ変更いただくことで、対応可能と考えます。
ご確認のほど、よろしくお願いいたします。
ttkttkkさん
XCLKOUT出力はGPIO73にのみに割り当てられており、他のGPIOから出力することはできません。
ご確認のほど、よろしくお願いいたします。
Tsysdesさん
CC2652Rでは、内蔵DC/DCコンバータの他に内蔵LDOを持っており、内蔵DC/DCを使用しない場合は、内蔵LDOを使用していただくことになります。詳細はTechnical Reference Manualの7.3.1 Internal DC/DC Converter and Global LDOをご確認ください。
また、ソフトウェアでは、CCFGのMODE_CONFレジスタにあるDCDC関連ビットを使用しない設定にしていただく必要がございます。内蔵LDOは内蔵DC/DCとくらべ、消費電力は20~30%増加するとのことです。
なお、CC2652Rは外部のレギュレータには対応しておりません。
メーカーでは、内蔵DC/DCをお使いいただくことを推奨しており、内蔵LDOを使用する場合のリファレンスデザインは用意されておりませんので、ご注意ください。
ご確認のほど、よろしくお願いいたします。
Tsysdesさん
ご認識の通り、生成された2つのファイルを差し替えてご使用ください。
ご確認のほど、よろしくお願いいたします。
-
投稿者投稿