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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12790|回复: 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,. |0 `) e! n, ~& a* ^/ B. U( D
input mcasp_ahclkx,6 L9 [, D3 W  H% O
input mcasp_aclkx,: {3 N1 e6 F- ^
input axr0,* Y$ C- [) z- e4 \+ b

- z' y3 B0 n) s/ j& aoutput mcasp_afsr,* B4 R; {( u1 Q6 U& u( j, c- E
output mcasp_ahclkr,
9 b, h( F0 w- b) N- [9 coutput mcasp_aclkr,
# A' R- _$ F2 G) r! U8 `1 ^output axr1,6 ^# [+ g( I( t- B& p5 k
assign mcasp_afsr = mcasp_afsx;% I$ \2 t. l* [3 @5 h3 `- u) ~
assign mcasp_aclkr = mcasp_aclkx;( X* a* x& q" M9 u
assign mcasp_ahclkr = mcasp_ahclkx;. U8 J& |1 T. e- u* f. ?/ j
assign axr1 = axr0;

- h+ ?6 J% w! s2 s4 c  o/ L; @# J8 B/ G
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
1 C* Q7 R. L3 m, z2 r( ?
static void McASPI2SConfigure(void)% v# ?: c* i* f# V; N( l
{
$ Y3 D5 q( {) PMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
/ A/ i: a$ u7 _; ?McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
" ]/ Z$ r4 }1 Y7 pMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);' ~% Q, |" z' F7 {) U- G
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
& j9 {) }) ~7 V* hMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE," g- O9 [, R" F
MCASP_RX_MODE_DMA);# Q2 m* g( w9 ]' C. B: X6 _- K
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
# @" I) J8 p& O0 U+ [3 WMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */! t  Z- H% p/ D  q  M
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, $ L4 Z1 d3 f4 V7 d
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);: K5 t& J4 Z2 k3 q
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
6 z; j1 E' K+ G7 q, ^; YMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
/ b; P& L0 F: M" u) X( w+ [' ^McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);( c- d7 f" X+ r, o
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 6 O& i' k2 Q6 z! U. v9 J8 G; u2 a
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,5 m0 V1 ?' b$ v/ d
0x00, 0xFF);
/* configure the clock for transmitter */
+ j8 `, r* q' u6 m, fMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);; B: ~, i1 }+ S+ i1 f; L# }; {
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); 5 A, {& O# w* f2 o# r& y# N
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
' \9 T$ r, C# C7 d* E% s2 A* w0x00, 0xFF);
, z  g0 u! V2 `0 L2 S% [' A* ]) @$ r' ]
/* Enable synchronization of RX and TX sections */ 5 a) R! R: r/ O) f: I' s
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
( d3 G9 P" k; c8 b4 R9 oMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
  h! B+ G* E. C6 v9 H* ^& FMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/** O. n0 F5 I+ a5 ~  f# B9 d
** Set the serializers, Currently only one serializer is set as
4 m/ Z3 r7 y" s; q& d** transmitter and one serializer as receiver.6 P4 M# \& Z& Q2 f9 p4 {2 q+ t
*/: @4 {* p4 c4 o" _6 C
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
; h; Q: T2 O/ N- p8 jMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*' @2 r' |8 e+ d5 k( S' O0 t
** Configure the McASP pins / u5 e" g# ?0 k8 a! R
** Input - Frame Sync, Clock and Serializer Rx
  S; v7 X5 g( O, ?2 k5 b3 w** Output - Serializer Tx is connected to the input of the codec
/ k' W7 ?+ p+ h/ c8 A& C9 c*/; Q8 ^" L) Y3 o$ n0 }1 u' I
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
/ l, e3 |( l1 E' T1 l) C! OMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
- o" S9 U8 u# _1 d. J* BMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
# r2 o% |6 r" T8 w, ~8 G8 || MCASP_PIN_ACLKX" f; c/ w8 e! g, q2 |  {0 a2 p* \5 ~
| MCASP_PIN_AHCLKX1 ^& S* R) `8 @- _! G9 P
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
* A: B0 z/ X. `3 @1 f8 }& CMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 2 K  A' s8 U: I3 o: P8 H+ E7 A
| MCASP_TX_CLKFAIL ! `0 m- e. J) l* {, h  w
| MCASP_TX_SYNCERROR
4 k# |; B2 s6 D1 w7 a( k| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR & U6 }1 i2 l1 ^$ j. J6 m
| MCASP_RX_CLKFAIL
% v4 H! c( c7 ]; Z6 U3 \& k| MCASP_RX_SYNCERROR - O) W0 g9 ]  S' i2 x
| MCASP_RX_OVERRUN);3 }6 q" K: ?+ b% p+ _( @" U2 Q
}
static void I2SDataTxRxActivate(void)
" J) m& \; |6 j* K{
! j/ g6 f& h1 e/ r$ t0 Z$ C8 f/* Start the clocks */! D# x8 ]' ], P( o" K$ w, U
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);9 r& F) o) J$ B1 X! c" {
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
# G: c- |. p) N7 C4 s3 GEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
3 m2 v& y# ]/ f2 m. a) UEDMA3_TRIG_MODE_EVENT);
) h/ p, w' p& g4 z- vEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
+ n1 ?1 }* Q. L  `/ `' @EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */+ ]. X6 F9 R. L9 K; z- X0 }5 P6 z
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);1 M( Z. _; o9 `+ T  {
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */! N. K- \  K  F2 }3 ?4 n; K
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */  O$ K- P; t- g7 g+ Z: q/ |- }/ G5 b4 y
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
4 H$ |# Y+ F3 j9 ^' uMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);; ~) H. o! D, {4 R) h+ _* P3 t8 c. g
}
' D4 }, x7 V7 k0 E( Z) k% k
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

% d4 H% L5 S3 Y' U* z* U$ Z( j# [0 O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-25 03:42 , Processed in 0.047881 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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