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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12736|回复: 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,
. |7 T$ I  d/ ]& Jinput mcasp_ahclkx,
1 B8 {( G( C" `, t  B$ linput mcasp_aclkx,3 q* a6 L6 k8 A7 _
input axr0,4 G5 y4 i' x; H  y

! h. E& w3 ^+ x* u3 ?: A* Doutput mcasp_afsr,
! M* ?  S( k/ {9 x, Ooutput mcasp_ahclkr,
0 S$ k4 E! n4 i$ _output mcasp_aclkr,
+ P/ g2 g1 Q& f* `9 y  e6 Zoutput axr1,  W3 {3 O+ [# n* z( Z, r& {+ T7 A
assign mcasp_afsr = mcasp_afsx;
; y: `8 m0 C; q) nassign mcasp_aclkr = mcasp_aclkx;4 C  @8 }7 b; r' p
assign mcasp_ahclkr = mcasp_ahclkx;0 D: O& i' }7 z' z4 J4 `
assign axr1 = axr0;
  v9 w, Q* B* a4 I
" ^4 k0 a5 G( R1 ^$ j; \
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

4 A" M. b9 F9 V" ]# H" f9 z
static void McASPI2SConfigure(void); B% R' d. c" u6 R- O' F  E; w" H
{
  w) x/ D& j( Z, e( [4 m6 VMcASPRxReset(SOC_MCASP_0_CTRL_REGS);4 h* C8 R1 H# l  V( g: z
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */2 S% m. }/ n  {
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
* `* I) n) s% f  [* \/ oMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
% z1 @% I8 k) a9 W$ R, QMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,# y+ s. w3 v7 z0 h8 P: S
MCASP_RX_MODE_DMA);( H$ t* v7 p! U' P5 m# o
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
' ^* i5 E2 q9 ?6 w: v: TMCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
: d0 y+ S# L/ b$ NMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, * u9 g: [+ w. j- M# ^
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
( [* p, G' J2 D1 Q* _5 wMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, ) I0 v5 H* [2 `9 T  E* W
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
+ V1 S, ]( o8 W- K: p: a0 `McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
' L  d- z- ?% ^: {. C% e3 ~5 MMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); 5 P" ]0 c4 H: n- l) S, K
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,- ~# D" ~, m9 `9 I
0x00, 0xFF);
/* configure the clock for transmitter */
0 s/ V0 D( [' d4 lMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);! Q1 y2 S# e/ o, [( W( ~
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); * j" Z9 {8 m* f3 e
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
% }2 v3 A& J: m: ^) w# }+ x1 l0x00, 0xFF);
9 p! Y# R" F1 T9 }# k, w5 Q3 ]% s! D+ F' |! B! a$ E* `
/* Enable synchronization of RX and TX sections */ 8 ]7 }3 K$ P$ i. p( h" y. u
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */( o0 o) L! T; J4 n
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
( t3 c3 j. n1 R  `  N& Y- H9 {  tMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*" [0 b3 c0 m* C' N1 C
** Set the serializers, Currently only one serializer is set as
; u3 Q! W4 {, h7 Z6 @: x- c** transmitter and one serializer as receiver.5 P; r8 g1 C, }! C' ]$ m
*/
" h% F2 n1 q4 q6 bMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);/ o' e. |. Q. S) Y; C6 f
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*/ k6 q% ]$ J+ c# E' V, l0 P8 Y( u1 C: m
** Configure the McASP pins " N. |2 ]! d3 u9 f" I- k5 ?
** Input - Frame Sync, Clock and Serializer Rx+ D- g; t6 n, x: J/ f# g' @! N
** Output - Serializer Tx is connected to the input of the codec . B6 k0 I) r2 y$ q* @3 y9 Z
*/
. T* @9 Y! L6 f% p( vMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);! b; h( a( y" L6 H; `4 N
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));! x/ `2 Z9 P& x# V4 k9 p1 u! ?
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX& k6 e5 C( ^+ s/ A0 K- t# K
| MCASP_PIN_ACLKX  ^, \6 R7 a4 }$ |* h2 e/ [% o
| MCASP_PIN_AHCLKX
4 p( H9 U, i+ m; K! r; T' Y' p| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */
7 T; o) t7 J0 N' x4 W% j( WMcASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
/ T% F( T% {( v| MCASP_TX_CLKFAIL 2 y% `% {2 j  S) P9 ~0 l, X1 ?
| MCASP_TX_SYNCERROR1 ~4 B% o! H+ k
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR * \( I) ?! Q  f/ |$ m
| MCASP_RX_CLKFAIL
' F) z' {- O/ E. x/ {, o3 {| MCASP_RX_SYNCERROR 6 m. u, i- ?2 b) l5 e* ]
| MCASP_RX_OVERRUN);
* E, ~3 l8 B5 g, B1 D0 ?3 v' F}
static void I2SDataTxRxActivate(void)5 ~& P" n( f* `+ s6 d: M
{3 K! r; J+ f' U' T; M4 l  Y
/* Start the clocks */
1 d: K( y/ |2 h; Z( D: GMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
4 w/ p' g  p1 i" g9 k3 y. F: uMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
  G+ `" X# G9 J6 q2 xEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
% ^! ^; R* ~; g/ aEDMA3_TRIG_MODE_EVENT);
/ |9 ], E5 ?  E! x. s3 TEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, * R/ g$ U! O# `# \* c9 q  P! I0 t+ V
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */; T: d5 m) Q; O0 U6 M7 v: I
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
: K4 c8 m- n7 E# ~McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */+ g+ E: G- m( B" g) g0 Q/ L- q
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines *// J. R" X1 E3 ~- w7 Y
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);3 H* y. v" f7 k" X: L. w
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);+ O" g- _" H9 ?9 a. o$ x
}

) Z+ O% t$ h, z" [
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

3 y$ N5 Z3 A* B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-14 01:09 , Processed in 0.040827 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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