ADSP-BF533 で利用できるユーティリティ関数。
関数 | |
void | initEzKit (void) |
EZ-KIT Liteの設定 | |
void | initUART (unsigned int sclk, unsigned int bps) |
UART初期化関数 |
void utilbf533::initEzKit | ( | void | ) |
EZ-KIT Liteの設定
ADSP-BF533内蔵PLLを設定し、コア周波数を600MHzにする。 EZ-KIT BF533ではCLKINピンに27MHzが与えられているので、これを22倍して 594Hzとする。
さらに非同期メモリバンク、SDRAMCを初期化し、最後にコンパニオン・チップを初期化する
utilbf533.cpp の 29 行で定義されています。
参照先 pFLASHA_PORTA_DIR・pFLASHA_PORTA_OUT・pFLASHA_PORTB_DIR・pFLASHA_PORTB_OUT.
参照元 main().
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 }
void utilbf533::initUART | ( | unsigned int | sclk, | |
unsigned int | bps | |||
) |
UART初期化関数
sclk | Hzで表したSCLK周波数 | |
bps | : baud レート |
utilbf533.cpp の 69 行で定義されています。
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 }