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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1214

积分

金牌会员

Rank: 6Rank: 6

积分
1214
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,
! F4 l( c# ?+ ^, y& O+ \" Oinput mcasp_ahclkx,  f0 Y) o( z+ L; F5 M
input mcasp_aclkx,; F3 |7 q- t' |( b9 d  z
input axr0,
2 ~- d' N/ G) F7 X$ ^2 z9 t6 T( K! R: C+ P
output mcasp_afsr,
+ m" V( n! }9 f  @output mcasp_ahclkr,. J' M3 @: J* l# @. ~7 o$ h+ p
output mcasp_aclkr,
3 F; |/ B) }' N2 c  i" coutput axr1,
' Z7 G6 a+ _6 p0 |/ d  P
assign mcasp_afsr = mcasp_afsx;5 D  Y" l$ y& u4 L1 U6 z) N
assign mcasp_aclkr = mcasp_aclkx;
+ s4 t+ a8 p& h0 ?. [4 kassign mcasp_ahclkr = mcasp_ahclkx;
5 g2 o* F8 |$ K8 Q- }assign axr1 = axr0;

, a$ y' {6 T, {. {6 W$ z5 l+ c4 @- k, d( B) B$ g& o- h8 }, ?
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
6 _" J. X- n( ^% Z
static void McASPI2SConfigure(void)) G3 _6 b. ^5 d7 l9 N0 r/ F
{
! j" K0 \" F+ Y8 K1 J1 ~. `  pMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
$ R6 P$ y, s  ?4 ]McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */  }* o' P' ?0 }5 N3 l
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
0 V8 F/ ~, u9 h3 Q/ @5 B! s( ZMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
" T# ?5 c: G" U' \; h6 V" H4 YMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,& }5 S5 x5 r1 F( n) W/ W1 @
MCASP_RX_MODE_DMA);: L2 v1 h$ I; a7 b8 A7 Q# q  ]- i
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
% R- d) E( g2 y" WMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
: ~% w" a0 c8 D; O, i0 FMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, ( Q: ^; ^, J& f# ?9 N
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);* S  G  u2 ?; L- N
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
8 o4 Q3 d( f4 i# \MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */" m; ^& u4 A; g+ o, F3 M
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
7 c# K9 d6 \% x" f) yMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 3 J7 o, g4 T! V* a6 G' k
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,) l- J) X0 o; C) I0 R0 V* V8 L& `6 G- L
0x00, 0xFF);
/* configure the clock for transmitter */
# @- b- s& {3 Q, s# A) BMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);, P- e* U3 C7 C! R
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
: R3 L7 s( \0 Z- w; NMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
) ?/ Z5 B( {+ R0x00, 0xFF);1 ?# |& a) F3 c5 k! `- ~$ ^# G

: _& D- \% f7 o/* Enable synchronization of RX and TX sections */
1 P* s/ y4 l( z$ M) ZMcASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
+ s5 d0 a. @' XMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);4 H, F- O$ v# G* S) D! h: f
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*, K4 Y# {* Q& j8 B9 f* E
** Set the serializers, Currently only one serializer is set as# g5 q0 ?: i7 d
** transmitter and one serializer as receiver.& g! v0 m& O# m  [/ ]
*/  @0 \; t" a  S+ y% _; y( i
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
$ A; C% \) Y( z4 `) f. pMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*+ b! c; y. d8 |* O$ ^
** Configure the McASP pins
& \7 E/ h2 X8 M# P0 [7 t- a# p** Input - Frame Sync, Clock and Serializer Rx
6 L. E8 T0 N' ?' G7 X# Q** Output - Serializer Tx is connected to the input of the codec ; C7 W9 L! Y1 M& f" W, h9 Z
*/" x  l5 c" {. ?0 C8 c) y0 p
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
7 L3 Y. M' P) w8 JMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
3 I8 `: L- K. z7 j7 _7 d/ }McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX; h+ ^1 [' S$ T; X) ~
| MCASP_PIN_ACLKX: g5 \9 h+ Q3 N4 C
| MCASP_PIN_AHCLKX
) [, D+ j. B  n& `  {& B# [. N| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */6 k! a+ ]* f4 x0 O0 Q
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR " j( u" \( c* g) K9 v" T: q; `
| MCASP_TX_CLKFAIL
  Q1 T1 V/ Y" F/ a+ V| MCASP_TX_SYNCERROR
% ?- v/ d; l/ N+ Z. c, z* e9 V$ F| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
* n% A4 B' x* N| MCASP_RX_CLKFAIL
' @% t2 n- t/ B3 P: o, I  b| MCASP_RX_SYNCERROR 4 g8 v. w6 w5 H/ X- B6 h5 h
| MCASP_RX_OVERRUN);. k# o1 m. ]8 ^9 _$ B, E. V0 e
}
static void I2SDataTxRxActivate(void)- g% E8 W* P2 U
{
. u$ S+ s6 O$ m9 j8 R9 w9 V4 p/* Start the clocks */# O% b2 i1 P2 f0 q8 M$ U3 f
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);' m; j) _/ p- Y$ E6 y/ e# D
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */* I% Y3 X0 _6 }  r" m, q. R: {
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,( M; B( q7 n4 p  u5 d6 J$ M% L7 c
EDMA3_TRIG_MODE_EVENT);
! y3 U8 ]' n) N/ [1 u/ o/ b, rEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, 0 K3 Y0 e1 v: I& [/ P. Z  O/ n
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
; D$ s$ e! R5 C% ]; ^# n8 f' nMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
0 F! S/ T0 B0 e) Q" Y( N  }# wMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
# V. g- ~, R" r+ ~" pwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */4 ^2 V$ ]6 Q2 Q) C
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);' |' o( i% _. H9 k( \. P
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);+ O! F6 e' w- B/ b, P5 o/ d7 W1 N- ?
}
4 ]- L. k: r" P6 c) N
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

+ w! B, x, O( X0 f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-17 16:56 , Processed in 0.038644 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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