📄 cs8900a.c
字号:
#include "2410addr.h"
#define EthBaseAddr (*(volatile unsigned short*)0x19000000)
#define EthIOAddr (*(volatile unsigned short*)0x19000300)
#define EthPPP (*(volatile unsigned short*)0x1900030a)
#define EthPPD0 (*(volatile unsigned short*)0x1900030c)
void Main(void){
ChangeClockDivider(1,1); // 1:2:4
ChangeMPllValue(0xa1,0x3,0x1); // FCLK=202.8MHz
Port_Init(); //GPIO口设置,包括将GPH对应口设置成UART功能
Uart_Init(0,115200); //串口初始化
Uart_Select(0); //选择UART0作为console
Delay(0); // 校准Delay()延时函数
Uart_Printf("\nAN2410SSB CS8900A Test Program\n");
rBWSCON = rBWSCON & ~(0xf << 12) | (0xd << 12);//nGCS3=nUB/nLB(sSBHE),nWAIT,16-bit
rBANKCON3 = (0 << 13) | (3 << 11) | (7 << 8) | (1 << 6) | (0 << 4) | (3 << 2) | 0;
//Bank3总线配置也可直接在启动代码中完成
while (1){
EthPPP = 0;//写寄存器地址到PacketPage Pointer。
Uart_Printf("CS8900A ChipID1 is %x\n", EthPPD0); //读取前16位:630e
Delay(500);
EthPPP = 2;
Uart_Printf("CS8900A ChipID2 is %x\n", EthPPD0); //读取后16位:a00
Delay(500);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -