📄 zdhw.c
字号:
#else //LockPhyReg(pObj); tmpvalue = pObj->GetReg(reg, ZD_CR203); tmpvalue |= BIT_4; pObj->SetReg(reg, ZD_CR203, tmpvalue); //UnLockPhyReg(pObj);#endif UnLockPhyReg(pObj);}voidHW_Set_GCT_Chips(zd_80211Obj_t *pObj, U32 ChannelNo, U8 InitChOnly){ void *reg = pObj->reg; if (!InitChOnly) { LockPhyReg(pObj); pObj->SetReg(reg, ZD_CR47, 0x1E); pObj->SetReg(reg, ZD_CR15, 0xdc); pObj->SetReg(reg, ZD_CR113, 0xc0); //3910 pObj->SetReg(reg, ZD_CR20, 0x0c); pObj->SetReg(reg, ZD_CR17, 0x65); pObj->SetReg(reg, ZD_CR34, 0x04); pObj->SetReg(reg, ZD_CR35, 0x35); pObj->SetReg(reg, ZD_CR24, 0x20); pObj->SetReg(reg, ZD_CR9, 0xe0); pObj->SetReg(reg, ZD_CR127, 0x02); pObj->SetReg(reg, ZD_CR10, 0x91); pObj->SetReg(reg, ZD_CR23, 0x7f); pObj->SetReg(reg, ZD_CR27, 0x10); pObj->SetReg(reg, ZD_CR28, 0x7a); pObj->SetReg(reg, ZD_CR79, 0xb5); pObj->SetReg(reg, ZD_CR64, 0x80); //++ Enable D.C cancellation (CR33 Bit_5) to avoid // CCA always high. pObj->SetReg(reg, ZD_CR33, 0x28); //-- pObj->SetReg(reg, ZD_CR38, 0x30); UnLockPhyReg(pObj); HW_Set_IF_Synthesizer(pObj, 0x1F0000); HW_Set_IF_Synthesizer(pObj, 0x1F0000); HW_Set_IF_Synthesizer(pObj, 0x1F0200); HW_Set_IF_Synthesizer(pObj, 0x1F0600); HW_Set_IF_Synthesizer(pObj, 0x1F8600); HW_Set_IF_Synthesizer(pObj, 0x1F8600); HW_Set_IF_Synthesizer(pObj, 0x002050); HW_Set_IF_Synthesizer(pObj, 0x1F8000); HW_Set_IF_Synthesizer(pObj, 0x1F8200); HW_Set_IF_Synthesizer(pObj, 0x1F8600); HW_Set_IF_Synthesizer(pObj, 0x1c0000); HW_Set_IF_Synthesizer(pObj, 0x10c458); HW_Set_IF_Synthesizer(pObj, 0x088e92); HW_Set_IF_Synthesizer(pObj, 0x187b82); HW_Set_IF_Synthesizer(pObj, 0x0401b4); HW_Set_IF_Synthesizer(pObj, 0x140816); HW_Set_IF_Synthesizer(pObj, 0x0c7000); HW_Set_IF_Synthesizer(pObj, 0x1c0000); HW_Set_IF_Synthesizer(pObj, 0x02ccae); HW_Set_IF_Synthesizer(pObj, 0x128023); HW_Set_IF_Synthesizer(pObj, 0x0a0000); HW_Set_IF_Synthesizer(pObj, GRF5101T[ChannelNo]); HW_Set_IF_Synthesizer(pObj, 0x06e380); HW_Set_IF_Synthesizer(pObj, 0x16cb94); HW_Set_IF_Synthesizer(pObj, 0x0e1740); HW_Set_IF_Synthesizer(pObj, 0x014980); HW_Set_IF_Synthesizer(pObj, 0x116240); HW_Set_IF_Synthesizer(pObj, 0x090000); HW_Set_IF_Synthesizer(pObj, 0x192304); HW_Set_IF_Synthesizer(pObj, 0x05112f); HW_Set_IF_Synthesizer(pObj, 0x0d54a8); HW_Set_IF_Synthesizer(pObj, 0x0f8000); HW_Set_IF_Synthesizer(pObj, 0x1c0008); HW_Set_IF_Synthesizer(pObj, 0x1c0000); HW_Set_IF_Synthesizer(pObj, GRF5101T[ChannelNo]); HW_Set_IF_Synthesizer(pObj, 0x1c0008); HW_Set_IF_Synthesizer(pObj, 0x150000); HW_Set_IF_Synthesizer(pObj, 0x0c7000); HW_Set_IF_Synthesizer(pObj, 0x150800); HW_Set_IF_Synthesizer(pObj, 0x150000); } else { HW_Set_IF_Synthesizer(pObj, 0x1c0000); HW_Set_IF_Synthesizer(pObj, GRF5101T[ChannelNo]); HW_Set_IF_Synthesizer(pObj, 0x1c0008); }}voidHW_Set_AL2210MPVB_Chips(zd_80211Obj_t *pObj, U32 ChannelNo, U8 InitChOnly){ void *reg = pObj->reg; U32 tmpvalue; pObj->SetReg(reg, ZD_PE1_PE2, 2); if (!InitChOnly) { LockPhyReg(pObj); pObj->SetReg(reg, ZD_CR9, 0xe0); pObj->SetReg(reg, ZD_CR10, 0x91); pObj->SetReg(reg, ZD_CR12, 0x90); pObj->SetReg(reg, ZD_CR15, 0xd0); pObj->SetReg(reg, ZD_CR16, 0x40); pObj->SetReg(reg, ZD_CR17, 0x58); pObj->SetReg(reg, ZD_CR18, 0x04); pObj->SetReg(reg, ZD_CR23, 0x66); pObj->SetReg(reg, ZD_CR24, 0x14); pObj->SetReg(reg, ZD_CR26, 0x90); pObj->SetReg(reg, ZD_CR27, 0x30); pObj->SetReg(reg, ZD_CR31, 0x80); pObj->SetReg(reg, ZD_CR34, 0x06); pObj->SetReg(reg, ZD_CR35, 0x3e); pObj->SetReg(reg, ZD_CR38, 0x38); pObj->SetReg(reg, ZD_CR46, 0x90); pObj->SetReg(reg, ZD_CR47, 0x1E); pObj->SetReg(reg, ZD_CR64, 0x64); pObj->SetReg(reg, ZD_CR79, 0xb5); pObj->SetReg(reg, ZD_CR80, 0x38); pObj->SetReg(reg, ZD_CR81, 0x30); pObj->SetReg(reg, ZD_CR113, 0xc0); pObj->SetReg(reg, ZD_CR127, 0x03); UnLockPhyReg(pObj); HW_Set_IF_Synthesizer(pObj, AL2210TB[ChannelNo]); HW_Set_IF_Synthesizer(pObj, 0x00fcb1); HW_Set_IF_Synthesizer(pObj, 0x358132); HW_Set_IF_Synthesizer(pObj, 0x0108b3); HW_Set_IF_Synthesizer(pObj, 0xc77804); HW_Set_IF_Synthesizer(pObj, 0x456415); HW_Set_IF_Synthesizer(pObj, 0xff2226); HW_Set_IF_Synthesizer(pObj, 0x806667); HW_Set_IF_Synthesizer(pObj, 0x7860f8); HW_Set_IF_Synthesizer(pObj, 0xbb01c9); HW_Set_IF_Synthesizer(pObj, 0x00000A); HW_Set_IF_Synthesizer(pObj, 0x00000B); LockPhyReg(pObj); pObj->SetReg(reg, ZD_CR47, 0x1E); tmpvalue = pObj->GetReg(reg, ZD_RADIO_PD); tmpvalue &= ~BIT_0; pObj->SetReg(reg, ZD_RADIO_PD, tmpvalue); tmpvalue |= BIT_0; pObj->SetReg(reg, ZD_RADIO_PD, tmpvalue); pObj->SetReg(reg, ZD_RFCFG, 0x5); pObj->DelayUs(100); pObj->SetReg(reg, ZD_RFCFG, 0x0); pObj->SetReg(reg, ZD_CR47, 0x1E); UnLockPhyReg(pObj); } else { LockPhyReg(pObj); pObj->SetReg(reg, ZD_CR47, 0x1E); tmpvalue = pObj->GetReg(reg, ZD_RADIO_PD); tmpvalue &= ~BIT_0; pObj->SetReg(reg, ZD_RADIO_PD, tmpvalue); tmpvalue |= BIT_0; pObj->SetReg(reg, ZD_RADIO_PD, tmpvalue); pObj->SetReg(reg, ZD_RFCFG, 0x5); pObj->DelayUs(100); pObj->SetReg(reg, ZD_RFCFG, 0x0); pObj->SetReg(reg, ZD_CR47, 0x1E); UnLockPhyReg(pObj); HW_Set_IF_Synthesizer(pObj, AL2210TB[ChannelNo]); } pObj->SetReg(reg, ZD_PE1_PE2, 3);}voidHW_Set_AL2210_Chips(zd_80211Obj_t *pObj, U32 ChannelNo, U8 InitChOnly){ void *reg = pObj->reg; U32 tmpvalue; pObj->SetReg(reg, ZD_PE1_PE2, 2); if (!InitChOnly) { LockPhyReg(pObj); pObj->SetReg(reg, ZD_CR9, 0xe0); pObj->SetReg(reg, ZD_CR10, 0x91); pObj->SetReg(reg, ZD_CR12, 0x90); pObj->SetReg(reg, ZD_CR15, 0xd0); pObj->SetReg(reg, ZD_CR16, 0x40); pObj->SetReg(reg, ZD_CR17, 0x58); pObj->SetReg(reg, ZD_CR18, 0x04); pObj->SetReg(reg, ZD_CR23, 0x66); pObj->SetReg(reg, ZD_CR24, 0x14); pObj->SetReg(reg, ZD_CR26, 0x90); pObj->SetReg(reg, ZD_CR31, 0x80); pObj->SetReg(reg, ZD_CR34, 0x06); pObj->SetReg(reg, ZD_CR35, 0x3e); pObj->SetReg(reg, ZD_CR38, 0x38); pObj->SetReg(reg, ZD_CR46, 0x90); pObj->SetReg(reg, ZD_CR47, 0x1E); pObj->SetReg(reg, ZD_CR64, 0x64); pObj->SetReg(reg, ZD_CR79, 0xb5); pObj->SetReg(reg, ZD_CR80, 0x38); pObj->SetReg(reg, ZD_CR81, 0x30); pObj->SetReg(reg, ZD_CR113, 0xc0); pObj->SetReg(reg, ZD_CR127, 0x3); UnLockPhyReg(pObj); HW_Set_IF_Synthesizer(pObj, AL2210TB[ChannelNo]); HW_Set_IF_Synthesizer(pObj, 0x00fcb1); HW_Set_IF_Synthesizer(pObj, 0x358132); HW_Set_IF_Synthesizer(pObj, 0x0108b3); HW_Set_IF_Synthesizer(pObj, 0xc77804); HW_Set_IF_Synthesizer(pObj, 0x456415); HW_Set_IF_Synthesizer(pObj, 0xff2226); HW_Set_IF_Synthesizer(pObj, 0x806667); HW_Set_IF_Synthesizer(pObj, 0x7860f8); HW_Set_IF_Synthesizer(pObj, 0xbb01c9); HW_Set_IF_Synthesizer(pObj, 0x00000A); HW_Set_IF_Synthesizer(pObj, 0x00000B); LockPhyReg(pObj); pObj->SetReg(reg, ZD_CR47, 0x1E); tmpvalue = pObj->GetReg(reg, ZD_RADIO_PD); tmpvalue &= ~BIT_0; pObj->SetReg(reg, ZD_RADIO_PD, tmpvalue); tmpvalue |= BIT_0; pObj->SetReg(reg, ZD_RADIO_PD, tmpvalue); pObj->SetReg(reg, ZD_RFCFG, 0x5); pObj->DelayUs(100); pObj->SetReg(reg, ZD_RFCFG, 0x0); pObj->SetReg(reg, ZD_CR47, 0x1E); UnLockPhyReg(pObj); } else { LockPhyReg(pObj); pObj->SetReg(reg, ZD_CR47, 0x1E); tmpvalue = pObj->GetReg(reg, ZD_RADIO_PD); tmpvalue &= ~BIT_0; pObj->SetReg(reg, ZD_RADIO_PD, tmpvalue); tmpvalue |= BIT_0; pObj->SetReg(reg, ZD_RADIO_PD, tmpvalue); pObj->SetReg(reg, ZD_RFCFG, 0x5); pObj->DelayUs(100); pObj->SetReg(reg, ZD_RFCFG, 0x0); pObj->SetReg(reg, ZD_CR47, 0x1E); UnLockPhyReg(pObj); HW_Set_IF_Synthesizer(pObj, AL2210TB[ChannelNo]); } pObj->SetReg(reg, ZD_PE1_PE2, 3);}//------------------------------------------------------------------------------// Procedure: HW_Set_AL7230B_Chips//// Description://// Arguments:// Adapter - ptr to Adapter object instance// ChannelNo// Initial Channel only//// Returns: (none)//// Note://-------------------------------------------------------------------------------#ifndef ZD1211B// 1211void HW_Set_AL7230B_RF_Chips(zd_80211Obj_t *pObj, U32 ChannelNo, U8 InitChOnly, U8 MAC_Mode){ void *reg = pObj->reg; U32 tmpValue; U32 ChannelNo_temp; //int i; static u8 mOldMacMode = MIXED_MODE; U16 WriteAddr[256]; U16 WriteData[256]; U16 WriteIndex = 0; LockPhyReg(pObj); pObj->SetReg(reg, ZD_CR240, 0x57); UnLockPhyReg(pObj); tmpValue = pObj->GetReg(reg, CtlReg1); tmpValue &= ~0x80; pObj->SetReg(reg, CtlReg1, tmpValue); if (!InitChOnly) { mFILL_WRITE_REGISTER( ZD_CR15, 0x20); mFILL_WRITE_REGISTER( ZD_CR23, 0x40); mFILL_WRITE_REGISTER( ZD_CR24, 0x20); mFILL_WRITE_REGISTER( ZD_CR26, 0x11); mFILL_WRITE_REGISTER( ZD_CR28, 0x3e); mFILL_WRITE_REGISTER( ZD_CR29, 0x00); mFILL_WRITE_REGISTER( ZD_CR44, 0x33); mFILL_WRITE_REGISTER( ZD_CR106, 0x22); //from 0x2a to 0x22 for AL7230B mFILL_WRITE_REGISTER( ZD_CR107, 0x1a); mFILL_WRITE_REGISTER( ZD_CR109, 0x9); mFILL_WRITE_REGISTER( ZD_CR110, 0x27); mFILL_WRITE_REGISTER( ZD_CR111, 0x2b); mFILL_WRITE_REGISTER( ZD_CR112, 0x2b); mFILL_WRITE_REGISTER( ZD_CR119, 0xa); mFILL_WRITE_REGISTER( ZD_CR122, 0xfc); //from /e0 to fc for AL7230B
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -