在DSP启动EMIFA的CS4片选来进行通信出现问题? - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6480|回复: 3
打印 上一主题 下一主题

[已解决] 在DSP启动EMIFA的CS4片选来进行通信出现问题?

[复制链接]

39

主题

95

帖子

389

积分

中级会员

Rank: 3Rank: 3

积分
389
跳转到指定楼层
楼主
发表于 2017-5-30 11:10:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
端午节快乐,请教个问题,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) {7 n' R( C# u* y  X
        /* Power on the EMIFA */: U3 U- v4 T8 F# |/ s
        PSCModuleControl(SOC_PSC_0_REGS, HW_PSC_EMIFA, PSC_POWERDOMAIN_ALWAYS_ON,
) N9 Y/ a8 z$ @; x                        PSC_MDCTL_NEXT_ENABLE);+ g7 z' f# ]5 W
5 ^% s7 X- E$ h# g3 R% ]# G; ^" e6 ]
        /*selects the EMIFA pins for use*/1 {$ U" d/ v7 Y
        EMIFAPinMuxSetup();
3 Z7 \8 H* [2 y/ E, M$ O( B  Q6 X
        /*set the buswidth of async device connected.  16bit*/; a" M) B, ]+ i8 X3 m7 @
        EMIFAAsyncDevDataBusWidthSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,
# u9 a; v7 y% v. H5 V# F                                        EMIFA_DATA_BUSWITTH_16BIT);; \1 n2 a, B7 P6 X! d
: I- \$ I% _: ]
        /*selects the aync interface opmode. :Normal Mode*/6 O3 _. E  x. |2 ]+ n
        EMIFAAsyncDevOpModeSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,
7 p# O; ?8 H, h% Z        EMIFA_ASYNC_INTERFACE_NORMAL_MODE);
" d! R# k: q2 s! t; V4 e7 W2 O8 s/ X( c& I+ l; R
        /*Extended Wait disable.*/
8 B* B$ ^* S8 c6 C0 K        EMIFAExtendedWaitConfig(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,
, S4 ]; }7 U/ j, P/ ]        EMIFA_EXTENDED_WAIT_DISABLE);
" r% ]1 K8 E. ]9 Q8 r( L7 a& ?6 o$ H, Z$ p2 n5 `
        /*configures the wait timing for the device interfaced on CS2
& G( d0 E& ^7 w        * W_SETUP/W_HOLD W_STROBE/R_STROBE W_HOLD/R_HOLD TA*/9 K* O0 j% V- g- v' y
        EMIFAWaitTimingConfig(SOC_EMIFA_0_REGS, EMIFA_CHIP_SELECT_4,' T. j  F+ e: ^' V: g
                          EMIFA_ASYNC_WAITTIME_CONFIG(4, 4, 4, 4, 4, 4, 1));
; @5 E& ~7 e% }  S; z
1 Z- D2 e( P+ t9 H}
) w! B# n6 j3 `  [还有cs4引脚的复用:
" Z" l, }! [* I/ t/ s7 ^) USYSCFG_PINMUX7_PINMUX7_11_8" F8 {1 b1 A) Q
5 Y" u9 A, ]! X/ h
最后结果还是不能通信,请问下,对于EMIF使用CS4片选,还需要做其他工作吗?
  }- L5 `6 U2 X谢谢!+ U) h; W+ h) b5 L; a
4 G# B  \1 }8 v2 _0 V

: c. k# J& D- d" Z5 o$ z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

39

主题

95

帖子

389

积分

中级会员

Rank: 3Rank: 3

积分
389
沙发
 楼主| 发表于 2017-5-31 17:39:17 | 只看该作者
我看了一下,在创龙给的linux-3.3内核中有对EMIFA CS4的操作,
5 m3 Z2 W/ P# l+ A#if defined(CONFIG_SERIAL_8250_EXTENDED)
4 E' L& p* _  O#define TL16754_CLK                147456003 H, z8 u* l1 `$ G- T$ }4 Y0 T/ L
#define TL16754_PORT_N                8/ b: F4 h) C$ }, S/ Y; F
......
5 N/ j! q' y. |; C# Q1 g  Lstatic struct plat_serial8250_port tl16754_serial_pdata[] = {% N( N# |$ C" {8 H3 G% {' W2 R
        [0 ... TL16754_PORT_N - 1] = {
$ g! Q- q7 L( Y1 d+ u- m                .mapbase        = DA8XX_AEMIF_CS4_BASE,3 v; b; Y  o' m2 X$ U. f' x$ V
                .flags                = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST |
0 x1 R4 D  X" n$ B" G+ Z                                        UPF_IOREMAP | UPF_FIXED_TYPE,
0 U5 _& z& I3 X; y' ~& x                .type                = PORT_16654,
0 H) f, G# u' t0 _1 l                .iotype                = UPIO_MEM,' Q' @4 p# c8 U) y( a
                .regshift        = 0,
6 n. ]$ Q/ S' Q4 l1 A' T                .uartclk        = TL16754_CLK,, Y: B- r# o* h5 e( `
        },8 p/ g/ }* i2 M+ v, y' L
        {
: f& l2 I5 ~6 [) E* T% r& s# X                .flags        = 0,# h" U  u3 J+ m3 W. ?" I
        },- W, p& ?5 r: Z' g$ [4 |! c/ D  @
};5 s$ [. @8 J# E, N

( y8 }7 M2 |3 J3 @2 C. X2 t& Q......) i, x, s' Y7 q% k/ x" B
static inline void da850_evm_setup_tl16754(void)1 c' H* x4 Y! ]" v. T7 `
{
6 W' l& I: v7 w5 [  v$ d......
  [* G3 Z& |+ e+ m; j3 |; Z+ F! N        /* Configure data bus width of CS4 to 8 bit */
5 l" X, r: h9 |$ Q/ M: d+ f        writel(readl(aemif_addr + DA8XX_AEMIF_CE4CFG_OFFSET) &
' ?+ L5 ^  f# _) n                (~DA8XX_AEMIF_ASIZE_MASK),! B/ T/ k; ^/ O- A3 a1 V
                aemif_addr + DA8XX_AEMIF_CE4CFG_OFFSET);5 x  P; b% c* g# W7 m! V

/ Y/ C/ B/ D# ?* \8 S; Y        /* setup timing values for a given AEMIF interface */
' n6 I. ~% j9 {# q2 _8 ~        set = TA(10) | RHOLD(3) | RSTROBE(10) | RSETUP(4) |
, Y: N) d& Z) o; n                WHOLD(3) | WSTROBE(10) | WSETUP(4);; d( l3 Y' H+ H$ Y: W) _) R0 B

+ c) P7 [9 X( p        val = readl(aemif_addr + DA8XX_AEMIF_CE4CFG_OFFSET);) o+ r. {; ?- y
        val &= ~TIMING_MASK;
; a& ?' `. w6 ?' W) F        val |= set;1 r) M; N0 p9 U7 \
        writel(val, aemif_addr + DA8XX_AEMIF_CE4CFG_OFFSET);: _$ k! Q7 r) s4 s
......
* Q- H, i' L2 _}, C# m$ L$ b; f* }6 q5 o

1 f, ?: @) i+ n  P, r: o& O而且在Menuconfig中已经对+ o) D2 D; F) n" F( T" }) \/ y* h
CONFIG_SERIAL_8250_EXTENDED 设置为 y
$ I& g3 `) h4 ^1 y( H7 k, N所以此模块函数是被加载的,
* B) C) U# d6 }) O* n4 G
1 L5 F7 u# X+ T  \2 D/ j5 r请问下,  serial8250 是给哪个创龙的芯片用的?? 谢谢
回复 支持 反对

使用道具 举报

39

主题

95

帖子

389

积分

中级会员

Rank: 3Rank: 3

积分
389
板凳
 楼主| 发表于 2017-6-1 19:02:17 | 只看该作者
没有问题了,最终有此问题是因为以下帖子的原因,具体解答也有:" {5 Z0 ~8 `. _( ~' s$ O
谢谢了
& Z, l' i& n7 U% ]8 c6 {http://www.51ele.net/forum.php?m ... &extra=page%3D1
回复 支持 反对

使用道具 举报

3

主题

852

帖子

3538

积分

创龙

Rank: 8Rank: 8

积分
3538
地板
发表于 2017-6-2 08:54:31 | 只看该作者
厉害
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-3-17 07:56 , Processed in 0.041115 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表