MCASP自环配置。 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9230|回复: 0
打印 上一主题 下一主题

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1213

积分

金牌会员

Rank: 6Rank: 6

积分
1213
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,: r% z. a6 d6 W/ w
input mcasp_ahclkx,
+ x9 U: ?5 {# Uinput mcasp_aclkx,( Y. N7 f# X8 v* Y; L' K
input axr0,
3 j7 o2 z8 ^# q) ^- }9 q+ `4 f$ V1 D9 d% Z3 O* q/ z0 v4 t
output mcasp_afsr,
  t( e1 D) i9 ?8 O, N  r% I* Soutput mcasp_ahclkr,
+ [( m! k4 z6 m8 r3 u" X/ Youtput mcasp_aclkr,
& }, M2 E" ]4 g- i! Ooutput axr1,8 F# v/ Y8 D4 ^( C1 r! ~  ~$ q
assign mcasp_afsr = mcasp_afsx;* l& h8 i+ k( K2 O1 f1 }: _$ ]9 m
assign mcasp_aclkr = mcasp_aclkx;, `& g" m. ~8 x" h$ h1 P# m4 d
assign mcasp_ahclkr = mcasp_ahclkx;) D# i& ]  |' L1 l' B: `
assign axr1 = axr0;
0 R  g) c; L7 u6 s4 {, }0 O* l  p
) B" W7 v- U0 s" c. }
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

5 L- A! K8 G+ d
static void McASPI2SConfigure(void)
. m, G  k* f4 {, ~$ J. c  U{
) i2 N1 Z& q, h" R; m" BMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
4 I, @, p- e6 ]9 h6 u5 U6 H5 u4 gMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */, v$ g: }1 s+ U1 g, E; R
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
! Z, K6 g) O9 o. hMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */2 W0 G" t1 W6 D) k! i& V
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,1 E% s' P& a+ @1 y
MCASP_RX_MODE_DMA);
" j2 I# V+ [9 e$ o' D" TMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,, D; r) V7 K4 j! _, x1 w: W3 ~
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
( _6 v; K( u# G! D! r2 @McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
, F6 W4 D5 C; o/ ?; Q  fMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
% Y' u; Z) y0 f% x& c# _1 R9 I' RMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
2 K6 P2 N7 s7 L  h* p! v* NMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
" T1 a! ~4 m  c6 T7 D( T. N1 BMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);. n' _/ [3 P3 `. A- ]; t
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
; m  {) f3 P) Y* kMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
: w/ H8 n# G+ t- F' F7 A0x00, 0xFF);
/* configure the clock for transmitter */
4 f; Z" V0 ?1 q9 `6 m' z: iMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);4 z3 B! E$ r/ p
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 4 g' a1 O; g. ?, a5 d& X
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,3 d- x4 }4 P: i$ f1 e
0x00, 0xFF);
7 Y% p! \. B4 C6 u7 d" C* P$ t$ n; n6 s# t2 s6 g2 A* e
/* Enable synchronization of RX and TX sections */
$ _" T, ]% _" b( c6 lMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
1 K; E7 n+ G) p6 H  g% TMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);9 ?- ]$ V/ }1 E0 X) N3 ~8 Z7 C
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*' U/ M2 [0 T% M: m, e) J
** Set the serializers, Currently only one serializer is set as/ H9 G, L( ^6 C: x9 p" x
** transmitter and one serializer as receiver.
- X0 {* B# M3 l7 K, R% E6 V& u*/
; x% H0 M/ w: C! GMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);- L2 W4 o6 W% s# X- j' H+ C$ V
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
  F8 f% S  D: ^( y" E2 s** Configure the McASP pins
3 ?& k& }' d  R# {* Y; I9 O** Input - Frame Sync, Clock and Serializer Rx( I6 F! g/ p3 z4 P$ N
** Output - Serializer Tx is connected to the input of the codec 6 K7 M4 w: I! z
*/# n2 d4 k! Y$ v
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);7 D  K! O6 Z$ @, G- N
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
& C( K% d$ f" H+ GMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
" S9 Q1 P8 r) ^9 c; v$ f| MCASP_PIN_ACLKX
2 a: z7 K2 `8 D6 j3 \| MCASP_PIN_AHCLKX
7 N1 d# \. ^5 V4 d7 ^( S& n* w0 F| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
3 s9 _8 v' {# ~; ~4 S) N) _McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
7 ]7 o0 t( u+ Q7 d( [| MCASP_TX_CLKFAIL & D+ l% z# O! `9 s& p# ]1 K
| MCASP_TX_SYNCERROR5 n+ g# e: R$ T; \/ e; s! h# N4 A
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
& N# F5 j' h( W* V0 a0 v| MCASP_RX_CLKFAIL+ X+ x: R# l( z% g0 ?
| MCASP_RX_SYNCERROR % o' j; h9 O8 \! B7 n& H3 q/ X6 C/ ~( u
| MCASP_RX_OVERRUN);
. B$ Y* K* d! U3 X' i}
static void I2SDataTxRxActivate(void)
* B) f2 J  A3 A& y5 g{- ]5 r* j, a- L7 L" A* l' d" q& h0 _8 E
/* Start the clocks */2 ?  f( ?- E$ K
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);8 W% R- a# E1 l
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
. F1 m3 v% D& l2 h6 i- t3 G% j- MEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,7 N% \: s3 Y2 H9 N7 Y5 P* U! T
EDMA3_TRIG_MODE_EVENT);
0 _$ q3 p$ q! [1 ]% e, W' g9 O9 UEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
; {* F; a. X1 M4 ?7 d- D: VEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */+ L1 A$ \/ l: Y8 B0 L3 y
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);+ i( o$ t- S# n! ]8 J0 T
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */, e" l# U' v. |9 h( ]
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines *// s/ n5 N! l$ G- a( e" H
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
1 y! J7 r% c, T" Y2 E0 G8 b( e# m+ IMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);
. T9 L( j' E3 s3 i7 \}
4 a2 k7 W2 S2 }% c0 M" w) p4 H) N
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
3 \8 `) O4 f3 W7 Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-29 11:55 , Processed in 0.045978 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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