|
端午节快乐,请教个问题,ARM端启动linux,DSP端sysbios,我在DSP端初始化了EMIF,使用的是CS4,初始化参考了创龙的DSP单核时初始化的过程,单核下是可以使用CS4进行读写数据的,但是当双核启动的时候,就不能启动了读写数据了,然后我就用创龙的syslink案例ad7606_dsp,我用创龙的开发板和创龙的ad7606开发板进行AD模数转换,是可以的,那么我什么都没有改,只是将ad7606_dsp中的EMFI初始化部分,将CS2改为CS4,包括以下内容:static void ad7606_emifa_init(ad7606 *ad) {- Y& [% |8 r, J: `8 D
/* Power on the EMIFA */
. p* z& t$ X& t4 \ PSCModuleControl(SOC_PSC_0_REGS, HW_PSC_EMIFA, PSC_POWERDOMAIN_ALWAYS_ON,: P1 Y1 k3 J4 p
PSC_MDCTL_NEXT_ENABLE);( {8 U4 u. y& p: ?; v
7 o2 j V b5 ]5 W/ p( C1 j! }' u$ V2 D
/*selects the EMIFA pins for use*/2 ~; g, c( N: k; R
EMIFAPinMuxSetup();+ W M, M: B3 C# U6 H& D
& G1 C6 A1 x2 ~ /*set the buswidth of async device connected. 16bit*/: y# a" w o! Z/ o+ F) R2 |
EMIFAAsyncDevDataBusWidthSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,- O6 j3 E0 o7 \
EMIFA_DATA_BUSWITTH_16BIT);4 ^. D+ K# M2 ?: y
! z- S7 C- _3 M1 ^& ]/ H
/*selects the aync interface opmode. :Normal Mode*/" Q5 r9 s& a. u
EMIFAAsyncDevOpModeSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,
0 U, |% I4 U/ o1 B) C' d EMIFA_ASYNC_INTERFACE_NORMAL_MODE);
$ J2 [7 E8 C1 w$ \" j& H7 K# J9 ~1 `1 j2 p
/*Extended Wait disable.*/
, {- {% \- @- d- N% \ EMIFAExtendedWaitConfig(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,: ]* u. G8 r9 t9 p5 v4 T- I: w
EMIFA_EXTENDED_WAIT_DISABLE);) o3 p( a/ M. V; t9 g& ~
+ b. T2 F' y6 I- r
/*configures the wait timing for the device interfaced on CS2
, j6 K2 h# O1 i; ?/ s * W_SETUP/W_HOLD W_STROBE/R_STROBE W_HOLD/R_HOLD TA*/0 W' O, R0 w* h$ U
EMIFAWaitTimingConfig(SOC_EMIFA_0_REGS, EMIFA_CHIP_SELECT_4,
E) q r- K0 f: K EMIFA_ASYNC_WAITTIME_CONFIG(4, 4, 4, 4, 4, 4, 1));
6 ~& W y5 ~5 R1 j: I; v) f5 U0 M6 U
}1 F% w0 a% K6 W/ }! |* A1 q% \; F
还有cs4引脚的复用:
4 r8 f, r8 l) O% aSYSCFG_PINMUX7_PINMUX7_11_8
- v7 S' A, A w) Z" ]- Z- `; g! i# T0 t+ e
最后结果还是不能通信,请问下,对于EMIF使用CS4片选,还需要做其他工作吗?
) [7 s2 z$ V$ w( \2 j谢谢!0 J P( S( t3 z# A" u
6 D- G2 ]: C+ v' z
: E) @+ p# v& k! F' H* o) { |
|