Wanderlst

Blackfin / SHARC / dsPIC に関するメモ

2007.10.11 更新

個人的なメモです。使っていて起きたトラブルとか。大半はデータシートに書かれてます。不定期に追加。

Blackfin (BF532)

  1. レジスタアクセスをしたらssyncを使え。
    Blackfinを最初にいじったときにはこれを知らなくて、SPIの送信完了フラグが変わらなくて困ったことが。

  2. PLLの逓倍数(PMCTLのMSEL及びDF)を変更する際には、IDLEをつかってPLLを再ロックの必要がある。
    ROM化の際の初期化コード例

    Setup_PLL:
    P0.L = PLL_CTL & 0xffff;
    P0.H = (PLL_CTL >> 16) & 0xffff;
    R0 = (16 << 9)(Z); // CCLK = 24.576MHz * 16
    W[P0] = R0;
    SSYNC;

    P0.L = PLL_DIV & 0xffff;
    P0.H = (PLL_DIV >> 16) & 0xffff;
    R0 = 0x0003(Z); // SCLK = 393.216MHz / 3
    W[P0] = R0;
    SSYNC;

    CLI R0;
    IDLE;
    STI R0;

    詳細はハードウエアリファレンスマニュアルに記載。UARTクロックが設定とどうしてもあわずに突き詰めた原因。EZ-KITのサンプルには記載されていなくて、データシートはよく見るべし。以前SPORTのTXクロックが計算値と違うということで騒いだけど、原因もこれなんだと今更判明(汗

  3. EZ-KITがICEの代わりに使用できる。
    BF533のEZ-KITは外部ICEかボードに配置された簡易ICEのどちらかを使ってインラインデバッグが出来る。とここで思いつくのがボードに配置された簡易ICEだけつかえないか?ということ。外部ICEをつかうか、内蔵ICEを使うかは、ピンヘッダをさしたときにGNDに落ちるかどうかで判断し、アナログスイッチで切り替えている。内蔵ICEのJTAGピンを外部ICE用のヘッダに迂回(改造)させてしまうと、あら不思議。EZ-KITがICEに大変身。
    ただし、制限があって、Visual DSPからはBF-533としか認識できないこと。BF-533を使用する場合は問題ないが、BF-531/532を使用する場合は、533としてコンパイルし、キャッシュ容量が違うので、LDFを書き換える必要あり。レジスタ配置や命令に相違はないので、それ以外は特に困ることなし。
    一時的なインラインデバッグやフラッシュへの書込だけなら高価なICEを購入する必要がないが、業務で使用するならICEを買うべき。ちなみに、537のEZ-KITでは出来なかったという報告もあり。(その方が間違えていたのか、本当に出来ないのかは不明)

    なお、改造方法については問い合わせされても答えません。出来たと言うことだけ。

SHARC (ADSP-21368/ADSP-21369)

  1. PLL電源はコア電源と同じ。IO用の3.3Vではない。
    PLL電源に3.3Vを突っ込むと、コア電源が引っ張られて2V近く出てしまう。(内部でダイオードでクランプされてると思うので、それ以上はでないが)IO電源と同じだろうと思いこんでいたのが敗因。が、プロセッサは壊れなかった。さすが。

  2. Master Boot Modeで、SPI フラッシュメモリからプログラムを読み出す場合、ブートローダはSPIをつかってLSBファーストでデータを読み込む。 フラッシュライタのプログラムを作成するときにデータのビット順位に注意。

  3. EEによるとJTAGのTRSTは無接続でもいいみたいなんだけど、プルダウンするのがいい模様。どういうわけか起動時安定しない時がある。私の環境では47kでプルダウンしたら安定した。

dsPIC33F

  1. 内蔵プルアップ抵抗が設定可能なのは、CN?のピンだけ。
  2. 内蔵プルアップ抵抗をONにしたとき、Hi-Z時の電圧は2.5V。
  3. MPLAB IDEをVistaにインストールするときに、エラーが出る場合は、Customを選択して、「MPLAB VDI」の項目を外す。参照元