MCASP自环配置。 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1216

积分

金牌会员

Rank: 6Rank: 6

积分
1216
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,5 V9 W% S  O$ v. }' y
input mcasp_ahclkx,/ p6 Q5 A& J2 V8 k5 @
input mcasp_aclkx,- j3 I8 Z4 ]3 K
input axr0,5 g8 w( y! [+ ^: }0 ?8 G9 [

1 ^; Z6 Y5 t  R, Ooutput mcasp_afsr,
5 ?: F5 t& x; ]! Soutput mcasp_ahclkr,
; X6 }, B$ D8 ]. @* L( E& Koutput mcasp_aclkr,
8 H, |- u6 ]! Foutput axr1,
5 k: X" V6 S3 o5 T
assign mcasp_afsr = mcasp_afsx;' C/ C7 Z" A7 x$ H1 g
assign mcasp_aclkr = mcasp_aclkx;- z6 R! `8 E# i3 M
assign mcasp_ahclkr = mcasp_ahclkx;! G, z/ n" M2 b+ \' ]/ V
assign axr1 = axr0;

1 p% ~9 E7 X& D& W3 G; V: Y
# f. w+ L7 k! V, \5 `' \& h5 z
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
- \5 r7 B. j2 r. c' a/ H, H* ~
static void McASPI2SConfigure(void)
! D( g% O! Q+ T/ |8 u0 f% x0 y{
4 ^+ _/ M/ ]$ ?9 KMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
9 [2 X& K8 o, Z8 xMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
3 O& y! r0 P; }+ M3 hMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);# h# \6 a! y, b) m/ E  o7 P: i
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
9 W- Z3 [* _5 I( u2 ]McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
/ F* @  ?  F, n4 G' N0 A9 }: a# qMCASP_RX_MODE_DMA);9 `- X( c) M  T- C
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,$ F9 `+ @" C& s% I( p# H/ s
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
! V6 ^  b$ p9 j( U- {9 ~( E: \# ^McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, ' M5 I7 E/ s9 I0 [% a3 E
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
+ Y- Y( R2 l2 \2 H  S3 C" r: R1 aMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
+ H- Y  k3 C# n# ~0 F$ UMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
! ]: N& R# x# A5 t. L% X$ BMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
! u0 s3 t( D$ i. MMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
. E! Q. }& _; z8 r3 @7 @/ zMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
8 C7 U+ d4 O4 F, j, x# t0x00, 0xFF);
/* configure the clock for transmitter */' j4 B; l, U$ a( E
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);3 Q# K1 Y  [! X& m. Z  a2 d
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); & O' }+ H  G1 ]8 p
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
, c' K6 k1 p% B! K: L0x00, 0xFF);
  _& O& A- T7 }# O+ t
" B5 k( I" u; X$ d( |6 Y/* Enable synchronization of RX and TX sections */ . L. v$ \% |* p9 [
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
/ r2 t9 ~+ v2 Y. \" eMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);$ V. v& T3 O  N
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*7 l6 ^$ E7 W3 b
** Set the serializers, Currently only one serializer is set as9 W% n5 p5 r& G
** transmitter and one serializer as receiver.+ q( F* x$ X+ ~9 g
*/3 y! U3 O. F2 Q, D
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);( v& [( i) e3 w) B9 u: Q
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*# n4 c! C) J5 P$ U3 I
** Configure the McASP pins : t2 P. E9 d0 n+ B7 E' N
** Input - Frame Sync, Clock and Serializer Rx, e) j# ?6 Y6 m$ G
** Output - Serializer Tx is connected to the input of the codec # B6 C# @- e% k8 |6 E
*/
" {& e* P3 @' Y: i% c! h  fMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
5 k  y7 \3 G7 D2 q, ^* W. W+ VMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
) E. M( H% b8 n6 f! KMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
: U! [! j. U( p  I/ i| MCASP_PIN_ACLKX1 Z& e9 M7 r! L4 _
| MCASP_PIN_AHCLKX
0 b2 w. f8 \2 J| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */  _% K. h. n+ A( x  ]* N. @' X
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR ' P, d8 U1 M" p5 V$ ^2 l
| MCASP_TX_CLKFAIL
/ d  Z+ R# Q$ C! P8 |; M; Q5 J| MCASP_TX_SYNCERROR2 H# Y& T4 E  x1 |
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR & f* m8 N5 k1 Y
| MCASP_RX_CLKFAIL
; k# P6 S0 b$ \| MCASP_RX_SYNCERROR % m4 Y# D$ X) I' u  u1 x9 M1 T
| MCASP_RX_OVERRUN);
% x* u+ o) E4 ?& `& @9 a* B! k}
static void I2SDataTxRxActivate(void)
8 G1 t5 t$ ?, b! H2 n{
0 ~; W' p# t  e( Y9 b1 e# L. \/* Start the clocks */9 f- C+ i% M7 D( K8 j. q3 x
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
/ V; ~, @4 p& b3 T0 W5 s- Q0 YMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
2 G9 |3 L# F' r3 W( e6 C1 V1 @EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,& v& v) {) N6 K/ N4 |. O
EDMA3_TRIG_MODE_EVENT);
+ M- D0 S: y: c/ g( \  J$ n5 hEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
- M# _$ H' y% R, S5 YEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
  @0 C/ F) Q; D. sMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);" _$ _; U" N$ W/ V, l  |9 o
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
4 r6 s8 ?& a7 O7 dwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
& S* Z; {) T* g: u1 oMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);" }1 a+ y" J5 z/ N5 h
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);1 n- R3 B. |) j$ h+ z
}

/ O/ ]3 O, v' ^( u; E
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

: S' |$ g" T$ B# o7 v! Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-20 18:07 , Processed in 0.039787 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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