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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13543|回复: 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,
* f. ^" M4 K2 o2 |# zinput mcasp_ahclkx,' E7 n, m6 y5 B+ ~- }  `4 J2 h" W
input mcasp_aclkx,/ D4 E& P6 Z! d" j% K; I# x  e
input axr0,
5 n) w% w0 i) v/ U# ~7 F7 V6 V/ P2 @" _2 {% T: l; b8 F6 {# P2 B
output mcasp_afsr,
$ O  z% {$ R, Q" C9 youtput mcasp_ahclkr,; e1 G% a6 J5 Z5 `. G
output mcasp_aclkr,
0 q" n) m. K# d' _2 a1 p* \output axr1,! \; [+ b! S" j
assign mcasp_afsr = mcasp_afsx;( N  Y( z+ R3 m$ B* F  c$ l
assign mcasp_aclkr = mcasp_aclkx;: R: i- z4 ~; N
assign mcasp_ahclkr = mcasp_ahclkx;
9 E+ U$ ?8 c+ V5 P0 T9 I) l, |assign axr1 = axr0;

0 F2 N& S1 G# l2 i" H) B4 B  G
" j% b. ]2 j8 s, F
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
3 Z* M$ D$ r% `7 z  K! M3 R/ |
static void McASPI2SConfigure(void)
5 P( s  I# [3 M; ^' `{7 Z: t; A- O# U2 ~
McASPRxReset(SOC_MCASP_0_CTRL_REGS);
' C( y* ^( p% _" A. a1 }1 nMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
+ \* e' @' _& y8 l" c' |McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);5 B7 Y9 t3 }. \* q' l; ]
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */, R1 c  Q' N, N, j3 Y
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
& y1 w! g; t4 CMCASP_RX_MODE_DMA);) V/ C# D: J/ ?2 Y7 W
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
  J. X/ j5 _8 [$ U+ q: u6 LMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */+ ]  {% v8 B1 |" [
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
0 _( Q5 G- c: ?MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);. L5 c, M% c, R: l
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
  h6 E  f8 b# k/ E# `: h, o# s' FMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */6 w6 a: `: n0 v4 ~. r8 Z  J
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);+ K% B0 s$ ^" A) {9 B
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); " E8 @$ l% g  u7 C1 t5 T3 Z. K$ y
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
. H+ `: \1 w7 G9 L0x00, 0xFF);
/* configure the clock for transmitter */
/ v, F, n/ u0 Y& Z5 H& B4 T% c3 YMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);. L1 ]! i$ j. s+ p
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
; h% s0 B5 ~' ?+ e5 [! J( {McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,/ G6 M) G6 y) H% K  J: `
0x00, 0xFF);
  @% @  e  c0 i& X3 ~: u. ~0 L" Q$ }( z  _: J
/* Enable synchronization of RX and TX sections */ 9 L2 q6 A5 l- W" N- r8 G) k( ^
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
4 n3 X& n! o# k' V9 q$ l# n/ oMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);) g  }9 L5 |( M* H; j6 ?) `3 C
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
; |  T- V% m5 R* V8 ]9 Y9 s** Set the serializers, Currently only one serializer is set as' h: D4 }5 }5 f# n# s. l" p: N
** transmitter and one serializer as receiver.2 _* s- f1 Y2 J2 _. d2 k0 H
*/9 r* _2 \8 |) H+ ~7 X" F
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);/ [0 W' k  b! I
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*; d4 j9 s8 l: O! r, x4 I8 _) j
** Configure the McASP pins ! d; [$ Z; |. M7 x' |
** Input - Frame Sync, Clock and Serializer Rx0 Y9 j' L$ I2 P" r8 O9 E9 L1 g
** Output - Serializer Tx is connected to the input of the codec
# u8 a% n- R7 _& [" H- u*/5 h4 S2 y  m. f5 B+ H
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);' Y7 D: ?  I) {4 m$ H
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));0 a1 }: S; t- g
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
/ h& `+ D5 `7 b| MCASP_PIN_ACLKX3 n& i$ V9 m# l' n: w2 |5 n
| MCASP_PIN_AHCLKX
) s! E' T4 O; E; J| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */5 ]) x- C; n4 Y) T% k
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR % b) A3 `& g: B- ]: ]6 Z
| MCASP_TX_CLKFAIL 2 b( Z8 j' U8 d' R. s5 w3 s% @' k
| MCASP_TX_SYNCERROR
6 I6 z& w, M& ^| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR , C2 k* O# Z4 m
| MCASP_RX_CLKFAIL
7 O7 B1 M( ?/ _5 O( Q| MCASP_RX_SYNCERROR
# e8 z2 v5 ]- ^: l+ Y; p| MCASP_RX_OVERRUN);
3 {  x& s/ |1 o- E+ w7 `}
static void I2SDataTxRxActivate(void)& Y& z# y7 @% l. M
{2 q& v! }7 m- y, ^3 g& f" l
/* Start the clocks */" A- D5 h* E- o# C9 G, a
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);7 O" B+ ]- e  M$ ?' `. ~0 J3 `
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */  y) V3 Q# X% q* i7 t$ X
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,8 [  c2 w( y7 p" {& v7 B
EDMA3_TRIG_MODE_EVENT);" T& h$ j! d& l, _" Q- k  [
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
2 N" s" d& m; r) ]- |3 T2 kEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
1 k/ Y9 f/ d" a, N+ R7 c, LMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
% I/ D: x. s0 M0 t. ^: b+ `. R6 ^McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
2 [& v  O, U! q  d$ }. b% o. _- W) x- lwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
, z" U$ Z- T8 W. e' P' D  YMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);( g" U6 w" P  r
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
, D* q: X$ j8 _. w8 `. i}

+ M0 M% ~2 V1 X9 o; S/ ~
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

) q* P$ e# i5 p) h9 ]' f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-10-31 00:52 , Processed in 0.040264 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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