utilbf533.cpp

説明を見る。
00001 //      ADSP-BF533の初期化ルーチン
00002 
00003 
00004 #include <cdefBF53x.h>  // レジスタ・アドレス定義ファイル
00005 #include "utilbf533.h"
00006 #include <ccblkfn.h>
00007 /** \file utilbf533.cpp
00008  *  \brief BF533 EZKIT ユーティリティ関数
00009  *  \author アナログ・デバイセズ株式会社
00010  *  \version 1.0
00011  *  \date    2006.Sep.8
00012  *
00013  */
00014 
00015 /** ユーティリティー関数
00016 *
00017 * ADSP-BF533 で利用できるユーティリティ関数。
00018 */
00019     // EZ-KIT BF533初期化関数
00020 namespace utilbf533 {
00021     /** EZ-KIT Liteの設定
00022        * 
00023        * ADSP-BF533内蔵PLLを設定し、コア周波数を600MHzにする。
00024        * EZ-KIT BF533ではCLKINピンに27MHzが与えられているので、これを22倍して
00025        * 594Hzとする。
00026        *
00027        * さらに非同期メモリバンク、SDRAMCを初期化し、最後にコンパニオン・チップを初期化する
00028        */
00029     void initEzKit(void)
00030     {
00031       unsigned int savedIWR;
00032                                     // PLL 初期化
00033       savedIWR = *pSIC_IWR;
00034       *pSIC_IWR = 0x1;              // PLLのみウェイクアップを許可
00035       *pPLL_DIV = 5;                // SCLKの分周比は5 ( 596/6 = 118.8MHz )
00036       *pPLL_CTL = 22<<9;            // MSEL=22倍 ( 27*22 = 594MHz )
00037       ssync();
00038       idle();
00039       *pSIC_IWR = savedIWR;
00040 
00041                                     // 非同期メモリー設定 (EZ-KIT)
00042       *pEBIU_AMBCTL0 = 0x7bb07bb0;  
00043       *pEBIU_AMBCTL1 = 0x7bb07bb0;
00044       *pEBIU_AMGCTL = 0x000f;       // メモリーバンクをイネーブル   
00045     //  *pEBIU_AMGCTL = 0x010f;     // メモリーバンクをイネーブル   
00046 
00047                                     // SDRAM 初期化
00048       *pEBIU_SDRRC = 0x00000817;    
00049       *pEBIU_SDBCTL = 0x00000013;
00050       *pEBIU_SDGCTL = 0x0091998d;   
00051 
00052                                     // FLASHのポート制御
00053       *pFLASHA_PORTB_OUT = 0x00;    // LEDをクリア
00054       *pFLASHA_PORTB_DIR = 0x3f;    // 出力ビット 0-5
00055 
00056       *pFLASHA_PORTA_OUT = 0x00;    // 信号をクリア
00057       *pFLASHA_PORTA_DIR = 0xff;    // 出力ビット 0-7
00058       ssync();
00059     }
00060 
00061     
00062     /** UART初期化関数
00063     * \param sclk  Hzで表したSCLK周波数
00064     * \param bps  : baud レート
00065     *
00066     * UARTを設定する。SCLK周波数と希望するbaudレートを与えると、そのために
00067     * 必要なレジスタ設定を行う。なお、8bit, 1stop bit, non parityである。
00068     */
00069     void initUART( unsigned int sclk, unsigned int bps )
00070     {
00071         unsigned int divisor;
00072     
00073         divisor = sclk/(16*bps);                // 計算式はHRのUART_DLL/UART_DLHを参照
00074         *pUART_GCTL = UCEN;                     // UARTのクロックを入れる
00075         ssync();                                // GCTLへの書き込み完了を待つ
00076         *pUART_LCR = DLAB;                      // DLL,DLHをアクセス可能にする
00077         ssync();                                // LCRへの書き込み完了を待つ
00078         *pUART_DLL = divisor & 0x00ff;          // ディバイザーの下位8ビットを設定
00079         *pUART_DLH = ( divisor >> 8 ) & 0xff;   // ディバイザーの上位8ビットを設定
00080         ssync();                                // DLL, DLHへの書き込みを待つ
00081         *pUART_LCR = WLS(8);                    // 8ビット、パリティなし、1ストップビット
00082         ssync();                                // LCRへの書き込みが完了するまで待つ
00083     }
00084 } // namespace utilbef533

AudioFrameWorkに対してMon Apr 9 17:15:14 2007に生成されました。  doxygen 1.5.1-p1