2023年8月10日木曜日

BlackFinを使ってみるなり(10) つぎはUART

双葉社から「未来少年コナン」のロマンアルバムが発刊された!
こんにちわ、ひらりんです.

BF706 DSPで遊び続けます.

前回でDACは動かせました.
次はADCかなと思うところですが、ADCのプリント基板がJLCPCBから届くのを待ってます.それだけじゃなくて、marutsuの通販でADC ICも待ちです.なのでADCは後回し.

よってUARTを動かします.内部状況をPCに表示させるのが目的です.

BF706はDSPですが、いまのところDSPゆえの特殊な操作は全くやってません.Cのcodeにコンパイラ制御句をポコポコ書かないといけないんだろうなぁと想像してたのですが、そうゆう場面すらないです.裏でよろしくやってくれてるのでしょう.


ポエム1 
BF706にはUART0/UART1があります.
評価ボードで既に別のfunctionに配線されてるpinは避けなくちゃいけません.
回路図を調べたところ、使えそうなのはUART0_TXとUART0_RXだけかなと思います.
UART0_TXとUART0_RXはPB_08/PB_09と名を変えてコネクタP9に配線されています.
P9の場所はここです.


ポエム2
いままで解説しなかったのですが、CrossCoreにおける、IO portのassignのやり方を説明します.
projectにあるsystem.svcを開きますと、こんな画面が開きます.いまはUART0_TXとUART0_RXを活かしたいのでチェックを入れます.保存しておしまい.この画面は、IO port定義の衝突を避けるのが目的なのでしょう.便利といえば便利.
この画面で設定した事は、自動生成されるpinmux_config.cに追記/削除されるようです.たとえばUART0はこんな風になってます.
 *pREG_PORTB_FER = UART0_TX_PORTB_FER | UART0_RX_PORTB_FER;

ポエム3
bug?
例外でBF706が停まってしまいます.
発生条件:UART0_RX portを活かして、UART0をopenすると生じる.
他ユーザーでもUART界隈で発生しているようですが、わたしには高度過ぎてfixできません.cashに関係するとかなんとか.仕方ないのでUART_RXを殺して動かしてます.
A non-recoverable error or exception has occurred.
  Description:   A data CPLB miss has occurred without a corresponding CPLB entry.
  General Type:  RunTimeError
  Specific Type: DCPLBMissWithoutReplacement
  Error PC:      0x11a0a514

追記: 後日、たぶん原因判りました.cashのせいとかではないようです.
UART0のTx/Rx両方活かしたければ、
 1)BIDIRECTIONでopenする
 2)callback memoryの長さもBIDIRECTION用の長さであること
この2つを守れば例外にはならないようです.


今日は飲みに行くことになったので、ここまでにしときます.
例外には困ったぞー.

9へ     11へ

あでゅ~

14 件のコメント:

  1. >次はADCかなと思うところ
    載ってる SigmaDSP に、A/D ありませんでしたっけ・・・?
    (と、言ってみる。まぁ、こっちは本題じゃないですね。)

    >裏でよろしくやってくれてる
    提供ライブラリを使ってれば、全く
    ・DSP命令ノーコーディング
    で、使えるのかも。SigmaDSPと言い、やはり、「こういうところ」で、差別化を図ってるんだろうな・・・
    ※昔「System C」でしたっけ? 「C言語で回路が作れる」ってのがあったと思いましtが、似たような思想かも。

    返信削除
    返信
    1. ADあります.ADAU1761というAD/DAですね.最終的にこれは使わない見込みなのですっ飛ばしてます.

      SystemCは人気が盛り上がらなかった印象です.
      hardware codingはverilogぐらい低級なのが使いやすいとかあるのかも.VHDL派もいるみたいです.

      削除
    2. >載ってる SigmaDSP に、A/D ありませんでしたっけ

      しつもんの意味を取り違えました.
      BF706のQFN版にはAD載ってないんです.
      88pinQFNだからpin数不足で割愛されたのかなぁ.
      BF706のBGA版はたしかAD載ってたような記憶あり.

      削除
    3. >載ってる SigmaDSP
      >ADあります.ADAU1761というAD/DAですね
      すみません。言いたかったのは、これ(ADAU1761)のことです。
      ※この評価ボードでは、単純に AD/DA としてしか使ってないみたいですが、一応、これも SigmaStudioで、プログラミングが出来るみたいですね。
      ※そういえば、前に「性能の問題で、これは使わない方向」って、言われてましたね。忘れてました。

      >BF706のQFN版にはAD載ってない
      BlackFin(これも、シリーズがありすぎて、ワケワカメになりつつある)にも、「AD / DA 内蔵版」もあるみたいですね。

      削除
    4. >hardware codingはverilogぐらい低級なのが使いやすい
      どうも AnalogDevicesは、DSP系は「低レベル操作不要」を、ウリにしたいみたいですが、通常はソレで良くても「イザという時」には、やっぱり、
      ・hardware codingはverilogぐらい低級なのが使いやすい
      になるので、やはり何らかの「逃げ道」は、用意しておいて欲しかった気がしますね。

      削除
    5. おはよーございます
      ADAUの開発toolがSigmaStudioじゃなくてCrossCoreだったらADAUを使い続けたかもしんないです.もったいないADAU.

      SigmaStudioは細かい所を触れなさすぎて、たとえばこんなところが残念でした.
      ADAUにFFTが内蔵されてる→SigmaStudioでのみ表示可能→FFT結果をPCに転送できない
      これじゃぁせっかくのFFTが持ち腐れでもったいないADAUです.

      BlackFinはPCへ転送とかできるのでよろしいです.

      アナデバさん、ご再考を・・・

      削除
  2. 読者 プログラムは難しい
    さて
    手巻き寿司は、おにぎりに殲滅かと思ったがまだ、生き残っていた今日この頃いかがお過ごしですか

    返信削除
  3. 読者 いいなあ、そんなことやっている場合か?ともう一人の自分が、現実逃避は、だめ、逃げちゃだめだ。寝るのもいかんといっている。そんなイベント前の夜

    返信削除
    返信
    1. 新橋から帰ります〜
      コミケには2日間、午後出席の予定です

      削除
    2. 読者 なかなかまじめですな
      心が洗われて ほのぼのします

      削除
    3. 台風の高波にさらわれてしまいそうでーす.マジ台風大丈夫なんでしょか

      削除
  4. 読者 秋葉原で聞いたら月曜まで大丈夫らしい

    返信削除
    返信
    1. 台風遅れるですか.コミケが高潮にならなくてよかったです

      削除