フォーラムへの返信
-
投稿者投稿
-
hi3807様
お問い合わせ頂き、ありがとうございます。
恐れ入りますが、確認させていただくにあたり、
『④、MSP430F5529 LaunchPadの BSLキーを長押ししたが、以下のエラーがPCに表示されてUSBを認識できない』
に記載されているエラー内容について再度投稿いただけますでしょうか。
よろしくお願い致します。
Cruijff
kkk様
確認ができましたので、ご案内致します。
PMM27の発生条件にRTC_C(クロックソース:LFXTCLK 32kHz)は該当しない模様です。
ご確認をお願い致します。
Cruijff
kkk様
お問い合わせ頂き、ありがとうございます。
RTC_CのLFXTCLKがエラッタPMM27の内容に該当するか、確認致します。
確認でき次第ご案内いたしますので、少々お待ち頂ければ幸いです。
よろしくお願い致します。
Cruijff
kkk様
お問い合わせ頂き、ありがとうございます。
◆『GCCTL0 = FRPWR』の処理について
上記のコードはC言語において、GCCTL0レジスタにFRPWR(=0x04)を代入する処理をしています。
GCCTL0のリセット直後(初期状態)の値は、0x06(2bit FRPWR = 1 , 1bit FRLPMPWR = 1の状態)です。
※ユーザーズガイド GCCTL0のレジスタページに初期状態の数値とレジスタビットについて記載がございます。
- P293 7.10.2 GCCTL0 Register
ソースコード上の「FRPWR」はmsp430frxxxx.h(xは使用されているデバイス型番の下4桁数値)にて定義されている定数値で、その値は0x04になります。
『GCCTL0 = FRPWR』によって、GCCTL0レジスタを0x06から0x04(2bit FRPWR = 1 , 1bit FRPWR = 0の状態)にセットします。
これにより、「FRPWRを維持したまま、FRLPMPWRをクリア」させることができます。
以上、よろしくお願い致します。
Cruijff
peppermint7894様
お問い合わせ頂き、ありがとうございます。
下記にて回答させていただきます。
> その後、使用していないUART Rx端子を抵抗でGNDに接続したところ消費電力は下がって安定したのですが、
> これはUART Rx端子からリークしているということでしょうか?
リーク電流が流れている可能性は御座います。
MSP430の各ピンはCMOSインバータ回路で構成されております。CMOS回路はPMOS,NMOSを組み合わせた回路であり、その構成上、CMOS回路に中間電位(1.65V付近)が入力されると、電源からGNDへ貫通電流が流れます。CMOS回路のイメージ図は下記になりますので、ご参考ください。
> また、このような使わない端子はどのように処理を行うのが正解なのでしょうか?
上記の理由により、Rx端子を含むすべての未使用ピンがオープンとなっている場合は、MSP430全体の消費電流は増大してしまいます。
この処理方法ですが、次の3通りのいずれかで防ぐことができます。(すべて実施が必要ではなく、いずれかの処理でご対応ください。)
- 未使用ピンを回路上でGND、またはVccにドライブするように接続する。
- 未使用ピンにプルアップ、またはプルダウン抵抗を取り付ける。
- ソフトウェアにて、GPIOを出力方向(PxDIR.y = 1)に設定する。(このとき、未使用ピンは回路上オープンにしてください)
よろしくお願い致します。
Crujiff
OZSHG1231様
お問い合わせ頂き、ありがとうございます。
以下にて、回答差し上げます。①情報メモリのセグメント消去について
MSP430のサンプルプログラム集として「MSPWare」が御座います。
こちらのサンプルプログラム集にて、情報メモリのセグメント(C)を消去、定数の書き込みを実行するものがございますので、こちらが参考になります。MSPWareはWeb上の「TI Resource Explorer」(以下、URL)より閲覧いただくことが可能です。
TI Resource Explorer – Texas Instruments
http://dev.ti.com/tirex/Resourse Explorerの画面左側より次の手順でフォルダの階層を進んでいただくと、
今回の情報メモリの書き込みに関するサンプルプログラムのソースファイルが見つかります。「Software」->「MSP430Ware-v:@.@@.@@.@@」->「MSP430G2XX」->「MSP430G2955」->「Peripheral Examples」->「Register Level」->「msp430g2x55_flashwrite_0@.c」
※ @には任意の数字になります。こちらのサンプルプログラムにて実行されている処理手順は簡潔にすると次のようになります。
FCTL1レジスタにてセグメント消去モードに設定
ポインタ変数によって、セグメントCの先頭番地にダミーデータ(0)を書き込む
FCTL1レジスタにてセグメント消去モードから書き込みモードに設定
ポインタ変数によって、特定の値を書き込む詳細はサンプルプログラムならびに下記ユーザーズガイドを参照ください。
MSP430x2xx User’s Guide
7. Flash Memory Controller
http://www.ti.com/jp/lit/pdf/slau144②UniFlashについて
Uniflashには、セグメント単位での読み書きを実行するコマンドは用意されておりません。EraseであればGUI上で操作が可能です。
書き込んだプログラムにて、セグメント単位でのEraseと定数書き込みを頂く必要がございます。
以上、宜しくお願いします。
お問い合わせいただき、ありがとうございます。
BINファイルはプロジェクトのプロパティで設定変更いただくことで、生成可能となります。
以下の手順をお試しいただけますでしょうか。(以下はAM3352を例にしております。)
- プロジェクトを右クリック -> 「Properties」をクリック
- 「GNU Objcopy Utility」 で「Enable GNU Objcopy Utility」にチェック
- 「General Options」タブ -> 「Create an output file in format」で「binary」を選択
- 「Specify output file name」で「・・・.bin」となっていることを確認したら、「OK」をクリック。
- ビルド実行により、プロジェクトのDebugフォルダにてBINファイルが生成されます。
また、外部エディタは使用可能です。
ファイルを右クリック -> Open with -> Otherより特定のエディタを選択すると、
そのエディタでファイルを開くことができます。
よろしくお願いします。
Cruijff
kitade様
投稿頂きまして、誠にありがとうございます。
またお客様で解決できたとのことで、安心致しました。
参考までに、最初の投稿のログデータを確認致しましたが、
次のようなコメントがあることから、デバイスへファイルの書き込みは行われているようです。
* Reading device information…done
* Loading file into device…done
* Verifying memory (hexfile.hex)…doneDriver : closed (No error)
ただ、Intel形式でないhexファイル(motorolerなど)では、Flasherが対応していないため、
書き込みしても正しくプログラムを実行できないことがあります。
可能性ですが、Flasher実行時に指定したhexファイルがIntel形式でなかったことも考えられます。
MSP430FlasherはTI-TXTファイル形式でも対応しておりますので、txtファイルで書き込み頂いて問題御座いません。
差し支えなければ、TI-txtファイルで今後も書き込みを頂ければ幸いです。
Ge様
投稿頂きありがとうございます。
MSP430FR5969(FR59xxシリーズ)には以下3種類のクロックが内蔵されています。
- DCO … 1~24MHzの高周波オシレータ
- 精度 : ±3.5%
- VLO … Typ 9.4kHzの低周波オシレータ
- 精度 : Min…6.0kHz,Max…14.0kHz
- MODOSC … Typ 4.8MHzのモジュールオシレータ
- 精度 : Min…4.0MHz,Max…5.4MHz
こちらは以下のデータシートにも記載がありますので、ご確認ください。
MSP430FR59xx Mixed-Signal Microcontrollers P.29-30
http://www.tij.co.jp/jp/lit/ds/symlink/msp430fr5969.pdf
以上、よろしくお願い致します。
Cruijff
-
投稿者投稿