This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

  • Resolved

MSP430F5172のポートマッピング

Prodigy 110 points

Replies: 2

Views: 1037

どなたかご存知の方、ご教示下さい。

MSP430F5172のポートマッピングに関して、回避方法または解決方法をご存知の方いらっしゃいましたら教えて下さい。

<問題内容>

UCSのサンプルにあるコードをまねて、以下の処理をmain関数の最初に実行してSMCLKをポートに出力させようとしています。

__disable_interrupt();
PMAPPWD = 0x02D52;
P2MAP3 = PM_TD0_0SMCLK;
PMAPPWD = 0;
P2DIR |= BIT3;
P2SEL |= BIT3;

CCSのデバッガを使ってステップ実行させ、レジスタの変化をレジスタウィンドウで見ているのですがP2MAP3の値が変更されません。0x02D52を

書き込んだ時にロックが解除される(PMAPCTLレジスタが0になる)のですが、その次の行(P2MAP3 = PM_TD0_0SMCLK;)を実行してもP2MAP3の

値は変わらずPMAPCTLが1に戻ってしまいます。

最初の行(__disable_interrupt();)でブレークさせ、そのあとレジスタウィンドウから各レジスタに手動で値を入力していくと問題なくP2MAP3の値が変わり、

P2.3でSMCLKが確認できます。

最後の行(P2SEL |= BIT3;)でブレークさせCCSのデバッガ起動後GOさせてもやはりP2MAP3の値が変わっていません。

どのようにしたら回避または解決できますでしょうか。

宜しくお願い致します。

T.Hashimoto
  • F5172 Port mapping

    原因は、SMCLKの出力pin指定が異なるからです。 P2.3ではなくP3.2 ->P3MAP2です。

    UG slau208p 下記の説明が有ります。
     13.2.2 Mapping
     For each port pin, Px.y, on ports providing the mapping functionality,
     a mapping register, PxMAPy, is available.

    つまり port:x pin:y です。

    data-sheet slas619p Table 4-1. Terminal Functions (continued)
     P3.2/PM_TD0.0/PM_SMCLK/CB14

    PM_SMCLK: P3.2 ですから P3MAP2 となります。

    解決しましたら、ログインして「verify」をクリックお願いします。

    Kazuo Yamauchi

  • In reply to trout:

    返信遅くなりましてすみません。
    ご回答ありがとうございました。
    解決致しました。

    「verify」が画面のどこにあるか分からなかったので、Reply致しました。
    T.Hashimoto

This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.