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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1215

积分

金牌会员

Rank: 6Rank: 6

积分
1215
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,8 B+ I9 t4 M& R: N2 {5 m3 W
input mcasp_ahclkx,
& K+ b& W* F# z4 s5 Qinput mcasp_aclkx,
9 {) [4 }2 M3 H! k/ M) x7 ninput axr0,
  j5 P% e5 m6 }1 r0 }, ~6 X/ T) E- _+ u4 L3 F0 Z
output mcasp_afsr,4 _2 k5 b2 T7 R+ C2 D) F
output mcasp_ahclkr,4 m3 c7 c9 A6 r
output mcasp_aclkr,
' p) |# c; R1 n8 i" t5 H. v0 A2 |output axr1,; r2 P0 V$ o1 d7 n2 X& N
assign mcasp_afsr = mcasp_afsx;
. t+ }+ M% \1 q- T  bassign mcasp_aclkr = mcasp_aclkx;
: |0 G! _8 }/ ~4 S3 ]assign mcasp_ahclkr = mcasp_ahclkx;
1 `  d& }6 C+ \! Xassign axr1 = axr0;
/ U" c6 ?5 h! e9 g6 Y) @

/ |5 a( B4 P4 c% Z9 L
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
( A8 N! i1 E3 D! w7 s3 E, L
static void McASPI2SConfigure(void)! z# i% I- d( a3 m! z. ]& \* L  z5 u
{; I0 j/ i: ?: b" }
McASPRxReset(SOC_MCASP_0_CTRL_REGS);$ j. q$ ^* x& A/ r& D8 o# t
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
% W8 C# D+ j8 A$ G6 }McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);7 \: m) n9 E: }( g0 y/ I
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */$ L& B1 y; d' Z6 n$ c
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
% `; m! [3 |6 |# U( P$ XMCASP_RX_MODE_DMA);
, q2 E4 e5 n- p) qMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
% n$ _4 P8 f( p2 y7 s* a$ DMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
/ O8 w% A4 y; X) l! SMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
" b8 l7 g8 Q3 I1 |4 eMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);! M# p: c+ ?: Z5 F
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, 4 a; J' k& q0 ]8 B# t
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */$ m8 U' C* k: K
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);. w6 Y* a* g4 C" i. s
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); ) C* T7 v7 |) H% g$ L
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
/ w. ^: i9 M% b+ ]) X0x00, 0xFF);
/* configure the clock for transmitter */7 a# x5 I( U6 m. M4 v$ H( R
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
9 ~2 B8 a0 c5 r. p3 yMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
. u7 X  ~" T$ B$ B7 i+ f+ D. W; TMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,2 W% W, C. n( E; {, {+ r
0x00, 0xFF);, h2 t8 R! w# `5 g; j. T+ I

* s9 e$ v" b: Y# z+ A! r/* Enable synchronization of RX and TX sections */
1 M. U6 ?) `/ ?2 N2 zMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
- Q) |& U& @$ d" U0 ^3 J' KMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
; O5 k/ P2 _9 C( F! \5 WMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*6 V% y1 B& Z" o1 y2 K" |( f
** Set the serializers, Currently only one serializer is set as$ ~& _1 ]& E) i' x0 g- X
** transmitter and one serializer as receiver.
  Q9 p) l, l- m* o*/7 h7 e' w4 {/ L
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
2 A" T# J* K0 \2 T/ KMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*" ]" m8 d4 U: Q5 q  R, m
** Configure the McASP pins
$ h' |9 c! O1 Y; D0 p& D** Input - Frame Sync, Clock and Serializer Rx
' L9 e, Z2 E5 e9 b$ {1 t/ Z** Output - Serializer Tx is connected to the input of the codec 7 S* n4 Q/ Z& A
*/
8 d' z1 a4 h4 R4 Q7 r; gMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
! R) ^. _7 r. G8 \, ]& d" p* @McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
0 Q* z- ^' I  Z% x& b' @McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
& ^* [/ a) ^* q7 i5 q; I7 z, f1 ~) n| MCASP_PIN_ACLKX  w  t; {/ B: p5 G: c6 [
| MCASP_PIN_AHCLKX
' A' r# Z: a4 y| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */# R! r& ]# f5 r
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
, x% y+ i" N: `7 [. U3 ]* S' z| MCASP_TX_CLKFAIL
. \4 L+ k- A* d: X; ?0 d| MCASP_TX_SYNCERROR8 K3 Q  J& F. ^4 Q
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR + ?1 j% K1 h4 X* [
| MCASP_RX_CLKFAIL
; P2 \; Z$ _3 Q8 U% l, s0 {9 m| MCASP_RX_SYNCERROR
& u% v7 m8 j7 P| MCASP_RX_OVERRUN);" c; i+ V5 a5 q: h
}
static void I2SDataTxRxActivate(void)
# d4 Z# u6 X2 i  J! c{7 A  f3 R/ U" D. ^0 T) p8 B7 c
/* Start the clocks */
0 K! s0 Y: x/ kMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
7 g9 u$ c- E$ Q' \- xMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
# s+ _0 ~1 y5 @  mEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
# q2 I- [7 p8 L7 w. N3 \EDMA3_TRIG_MODE_EVENT);
, {# I, m% \- zEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 6 U1 D' y) i0 n. x1 v1 w3 r
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */; j: j2 n0 [9 A$ `
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);) M5 }- g$ d: Z/ c% L! K9 A3 {
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */# b" T/ D$ l" Q2 E- b2 J1 l+ v
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */! A1 Y( f/ W. S. h0 T8 O
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
! J4 `% y  m! qMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);' l- t5 P. L  {' s
}

7 _9 \3 j) V" R6 ^- T/ |
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

, E+ `" X0 v' y) B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-18 12:53 , Processed in 0.038802 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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