フォーラムへの返信
-
投稿者投稿
-
hhkkuu様
大変恐れ入りますが、hhkkuu様でデバッグされておりますサンプルプロジェクトをお送りいただくことはできますでしょうか。
メーカーへもOSAL_TEST_TIMER_PERIODについて問い合わせをさせていただいておりますが、使用されているプロジェクトの確認が必要なため、ご検討をいただければ幸いです。後ほどオフラインでご連絡をさせていただきますので、ご確認のほどよろしくお願いいたします。
以上、よろしくお願いいたします。
クライフyamazaki888様
投稿いただき、誠にありがとうございます。
IWR1443の評価ボード(IWR1443BOOST)ではオンボード上でアンテナが用意されており、
ユーザーズガイドにて評価ボード上のアンテナに関する特性等が記載されております。P.12 2.6 Antenna http://www.ti.com/jp/lit/ug/swru518c/swru518c.pdf
特定の距離に対する対象検知はアンテナの特性に影響いたします。
そのため、評価ボードでご評価の後、アンテナ設計によってチューニングを行っていただく必要がございます。また海外での使用については電波法に関わりますため、使用予定の仕向先の電波法をご確認いただく必要がございます。
以上、よろしくお願いいたします。
クライフhhkkuu様
ご確認いただき、ありがとうございます。
TimerはDMTimer3のみで、cfgファイルでもDMTimer3で設定されているとのことで理解いたしました。OSAL_TEST_TIMER_PERIODの変更による1ms割り込みに変化があるか、関連性をご確認についてはいかがでしょうか。
よろしくお願いいたします。
クライフhhkkuu様
Timer.cで定義されているOS用タイマーのID(OSAL_TEST_TIMER_ID)は”1″で定義しております。
今回の1ms周期の割り込みがDMTimer”3″でありましたら、OSAL_TEST_TIMER_PERIODと1ms周期を生成している割り込みは別のTimerモジュールではないかと推測しております。お手数ですが、OSAL_TEST_TIMER_PERIODの変更によって1ms割り込みに変化があるか、関連性をご確認いただくようお願いいたします。
以上、よろしくお願いいたします。
クライフhhkkuu様
DMTIMERにはauto-reloadモードが用意されております。
タイマーカウンタがオーバーフロー後、タイマーカウンタ(TCRR)がタイマーロードレジスタ(TLDR)の値をリロードします。デバッガで確認時、TLDRも同様に0xA269となっておりましたでしょうか。
また、auto-reloadモードを設定する、TCLR.ARビットがセットされておりましたでしょうか。Technical Reference Manual P.4442 20.1.3.1 Timer Mode Functionalityを合わせて参考にしていただければ幸いです。
以上、ご確認を宜しくお願い致します。
クライフhhkkuu様
ご教授いただき、ありがとうございます。
再度調査いたしまして”OSAL_TEST_TIMER_PERIOD”ですが、正確にはOSへ供給するシステムティックの周期でございました。
AM335xシリーズでは、システムティックへのクロック供給はデフォルトではCPU(A8)のクロックを使用しています。いただきましたサンプルでは、CPU(A8)のクロックが726MHzで設定されている可能性がございます。
その場合、1/726MHz[s]のティック周期から726000カウント毎(1ms毎)にタイマー割り込みがかかるものと推測いたします。
先日の回答で誤解を与えてしまい、大変申し訳ございません。システムティックに対するCPU周波数について、下記HPにて記載がございます。
Processor SDK RTOS : 10.2.2.1.7.2. How to get accurate clock ticks from the clock module?
大変恐縮ですが、デバッガにてCPU周波数が726MHzとなっているか、上記資料ならびにTechnical Reference ManualのPLLを参考にご確認をいただければ幸いです。
AM335x and AMIC110 Sitara™ Processors Technical Reference Manual (Rev. Q)
以上、よろしくお願いいたします。
クライフhhkkuu様
以下につきまして、ご教授いただけますでしょうか。
タイマー割り込み実機で確認、とのことですが、
このとき1msの割り込み間隔をどのように確認されたのでしょうか。
user_display_cyclic_information関数内のtimer_get_time関数で確認されたものでしょうか。
確認方法について詳細をお教えいただければ幸いです。よろしくお願いいたします。
クライフhhkkuu様
同ファイルの初期設定関数(timer_initialize())を見ると、以下のように設定されております。
- l.175 timerParams.periodType = TimerP_PeriodType_MICROSECS;
l.176 timerParams.period = OSAL_TEST_TIMER_PERIOD;
タイマーの基本単位が”OSAL_TEST_TIMER_PERIOD”usごとに割り込む設定となっております。
デフォルトでは726ms(726000us)ごと、となっております。以上、ご確認をよろしくお願いいたします。
クライフkazz様
Technical Refernence Manual 7.1.2.2 にて、GPMCのクロックについて記載がございます。
こちらによると、クロックソースは”CORE_CLKOUTM4 / 2”、Max 100MHzのクロックとございます。
クロックソースCORE_CLKOUTM4については同じく8.1.6.7にて記載がございますので、合わせてご参考にしてください。デフォルト設定であれば100MHzで計算はできますが、合わせて評価ボードによる実測評価もご検討いただければ幸いです。
以上、よろしくお願いいたします。
クライフtkn様
AM335xシリーズの評価ボードでは、それぞれ次のSPI Flashが搭載しております。
- 評価ボード:TMDSICE3359(AM3359 産業用通信エンジン)
SPI Flash:W25Q64(64Mbit)
AM335x ICE EVM Rev2.1 Hardware User Guide P.7 4.5.2 SPI Flash - 評価ボード:TMDXEVM3358(AM335x Evaluation Module)
SPI Flash:W25Q64CV(64Mbit)
TI wiki : SPI Flash Memory
SPIのシリアル接続でデータの送受信が目的であれば、GPIOをSPI接続の設定にすることで、対象のSPI Flashと通信ができます。
特にSPI Flashの指定はメーカーのデータシートならびにTechnical Reference Manualでは記載ありませんので、評価ボード等を参考にご選定いただければと存じます。以上、よろしくお願いいたします。
クライフtakaharu様
大きな役割としてノイズ対策になります。
特にRST端子は書き込み機能との共用ピンになり、外付けにRCを取り付けることでノイズへの耐性を向上させています。MSP430F5242の評価ボード(MSP-TS430RGC64C)でもRSTDVCC端子ではRCを取り付ける回路構成となっております。
下記 Hardware Tool Guideがございますので、こちらもご検討時の参考にしていただければ幸いです。MSP430 Hardware Tools User’s Guide (Rev. AE)
P.113 Figure B-54. MSP-TS430RGC64C Target Socket Module, Schematicクライフ
takaharu様
以下に回答差し上げます。
> [Pullup or pulldown resistor]にて何かしらレベル設定が必要でしょうか。
データシート4.2.1 “RST/NMI and RSTDVCC/SBWTDIO Pins”にて、次の記載がございます。
“RSTDVCC/SBWTDIO also includes the SBWTDIO function and has a nonconfigurable pullup when
used as reset.”
RSTDVCCの内部プルアップはユーザーの設定不要、かつ常に有効となっております。また、MSP430F5xxx User’s Guide “1.6 Connection of Unused Pins”より、次の記載がございます。
”47-kΩ pullup or internal pullup selected with 10-nF (2.2 nF) pulldown”
プルアップ抵抗の他、プルダウンキャパシタが必要でございます。外部プルアップ抵抗に加え、キャパシタンスの追加もご検討いただければと存じます。
以上、ご確認のほど、よろしくお願いいたします。
クライフPurpose様
CPSR.Iフラグが1のままであった場合、割り込み処理が実行中であることを示します。
Technical Reference Manual(P.534 6.2.2 INTC Processing Sequence)より、ISR処理後、CPSRはIRQアサート前の状態にレストアされ、Iビットも0となります。そのため、Iフラグが1のままの場合は、ステップ実行によって止めた瞬間ではまだ割り込みイベントが実行中である可能性があります。
ステップ実行のほか、main文while処理内のUARTIntEnable()処理の直前にBreakPointを設置するなども動作検証いただくのはいかがでしょうか。
以上、よろしくお願いいたします。
クライフpurpose様
開発環境はCCS(Code Composer Studio)を使用しておりますでしょうか。
プロジェクトを作成される際、CCSより”New”->”CCS Project”からプロジェクトを生成後にuartEcho.cをプロジェクトにコピーしておりますでしょうか。StarterWareにはCCS向けにサンプルプロジェクトが下記階層にございます。
こちらをCCSで”File”->”Import”より下記プロジェクトを指定して、CCSにサンプルプロジェクトをインポートすることができます。
C:\ti\AM335X_StarterWare_02_00_01_01\build\armv7a\cgt_ccs\am335x\evmAM335x\uart上記でプロジェクトをインポートの上、ビルドしていただき、Teratermからの入力で割り込みが行われるかご確認いただけますようお願いいただけますでしょうか。
またご注意としまして、メーカーよりStarterWareはソフトウェアの更新がない旨下記HPに記載がございます。
後継のSDKとして、Processor-SDKが用意されておりますので、合わせてこちらのサンプルプロジェクトをご参考にしていただくことをお勧めいたします。StarterWare : http://www.tij.co.jp/tool/jp/STARTERWARE-SITARA
Processor-SDK-AM335X : http://www.tij.co.jp/tool/jp/PROCESSOR-SDK-AM335Xよろしくお願いいたします。
クライフ0xFFFF様
> SRAMのサイズを超えたローカル変数宣言でもビルドエラーになるようにする設定方法があれば教えてください。
申し訳ありませんが、CCSにはそのような機能はございません。
ビルド時のエラーはグローバル変数であればリンクのときにメモリマッピングを行い、SRAM容量オーバーとしてエラーを表示しますが、ローカル変数ではリンク時にマッピングを行いませんので、エラー表示できません。
このようなケースはMSP430のみならず、C言語を使うプログラミングではよくある課題ですので、ローカル変数を使用する場合は、プログラマ様で意識的にメモリ容量に気を付けて変数定義いただく必要があります。
以上、宜しくお願いいたします。
クライフ- この返信は5 年、 4 ヶ月前に クライフ さんが編集しました。
- l.175 timerParams.periodType = TimerP_PeriodType_MICROSECS;
-
投稿者投稿