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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13101|回复: 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,: A- T& W, L) d6 u2 z  y
input mcasp_ahclkx,' o& W6 z# ~& R; e. ?6 q
input mcasp_aclkx,
2 a( [. d5 L* x; M1 K* a6 dinput axr0,
8 A# W1 r* T& n" y
* A. ~/ }% G4 L5 Q% \output mcasp_afsr,
2 O6 E; g+ @' e& \3 p0 Poutput mcasp_ahclkr,* {) z& ]% @* _9 O1 R% ?4 R6 D
output mcasp_aclkr,
1 H! O  V0 j$ g9 m* x* ?output axr1,' c5 F! j. H  [
assign mcasp_afsr = mcasp_afsx;
  x( h8 j7 ]3 {assign mcasp_aclkr = mcasp_aclkx;
- p4 B- C( p. i7 U& L+ Nassign mcasp_ahclkr = mcasp_ahclkx;
7 u  H7 H' m7 Bassign axr1 = axr0;
* e6 ~' O0 [& O5 h* m3 Y
; f4 l. \. {" P" Q
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

, v$ e/ ^2 }) o' M3 k0 Y( N* F
static void McASPI2SConfigure(void)5 _2 _  Q" y+ q0 H' @
{' l' N* i1 b9 A5 I( y8 X
McASPRxReset(SOC_MCASP_0_CTRL_REGS);! ?' N! A5 Y$ s7 t, y4 e: q5 q  r
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
) y- b2 \! {$ n' g% F/ hMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);# n& `$ X7 l4 _
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */# k4 \% R( p( L) Y
McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,1 m, U! _3 k6 K# E, R; p4 z! y7 l
MCASP_RX_MODE_DMA);
( X0 |8 b0 N& q. b( L" K8 gMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,7 O  S. R7 n- n& l2 c0 K) t2 F
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
- `1 B. W' j1 ?5 j; t( D7 _9 jMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
0 t. H- f3 T3 W- ~/ c" p0 @% {4 qMCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);  j. x0 e) b' J' _
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
: Y! k' c# [: y* i* ZMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */$ I3 W0 ^6 \& H9 x
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);- I- }( P# F% z% s
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); * v4 w6 l) R. P. O
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
: Q! F& e$ ~. x3 G  i0x00, 0xFF);
/* configure the clock for transmitter */. Z3 u3 c, H8 r8 S* h' l
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
( T4 k9 z" [  b; \McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
% y" c+ K6 \! MMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,( S! R! ^6 x# R5 T$ K
0x00, 0xFF);( u/ W' B7 |  u4 i0 z
, z4 s, `+ d# n6 M: u6 C: R$ ~
/* Enable synchronization of RX and TX sections */
" S. _7 H, }4 \8 O5 J2 a8 K5 ]McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
4 u3 t$ O, C: z, C# ]6 i2 XMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
: n% Y3 m- R0 }* h1 M3 RMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*' ]* y' R, \* ^4 r3 b' i; d
** Set the serializers, Currently only one serializer is set as
; e: y1 [3 j, ~1 S0 a. d** transmitter and one serializer as receiver.
. Y# E# Z" D% w6 Z" ^*/4 \. K4 k5 m; B" s
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);" R5 G6 H7 j! X1 c. l
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*( [) d6 P* e* E+ k! ?
** Configure the McASP pins # J5 _9 S5 p8 E1 ^3 W/ m
** Input - Frame Sync, Clock and Serializer Rx
0 U/ V; Z# d5 c3 T3 u** Output - Serializer Tx is connected to the input of the codec
0 [' t$ ^- y+ s8 n  R" P% n*/3 z  J7 v! s9 z* x- Q4 i2 ]: e
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);8 G% O# O9 I: w. T+ u! Z' V/ F
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));- H7 l) R: q) c6 x( ~) P% N9 d
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
4 U, T/ w, o( }  U, T| MCASP_PIN_ACLKX
8 ?. O1 A" U) p. W9 @$ n| MCASP_PIN_AHCLKX+ K: f, D: {1 F# f# Q4 @
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */. {# O9 h' I+ K) K
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
0 G- X" x  j& b6 P| MCASP_TX_CLKFAIL 4 a- M( C* `8 w. `( b2 U" B  s+ ]/ ]; y
| MCASP_TX_SYNCERROR
! F  w. L/ p0 }6 V; c  ~| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
/ D6 b) D; f% A' l| MCASP_RX_CLKFAIL0 e( g) [  ^3 d7 g
| MCASP_RX_SYNCERROR
- _! x5 A# s3 {0 ?* C4 u! c4 D0 W| MCASP_RX_OVERRUN);% U' E% K4 i3 n8 q# C2 s. a+ M8 T- i* S+ p
}
static void I2SDataTxRxActivate(void)
0 o$ P/ g- y. M3 c! A9 H6 R" z* f{7 [$ K' g6 @8 D/ \! Z* Q3 a) o
/* Start the clocks */! H; p* c& e. t* B  y
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
( A4 o& A( M( L( S( |% X+ vMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */" Q7 C3 A6 k. C. w1 T3 u
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
, H# Y  e: z% ~/ S) K0 h& NEDMA3_TRIG_MODE_EVENT);
6 F% h! }) y1 T6 J9 ?& qEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, & t. X0 _3 r6 X# [
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */! |$ ]# f0 h, r3 O4 A8 D
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);) R) x% D, d7 d! P& d8 B
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
$ n- `" E- r9 E0 I' v- Xwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */5 q* b6 R( O0 F! o1 k  x8 r) Y9 l/ i) T" p, K
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);9 k: T4 k# S* U% P- ]
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
0 A+ @5 P0 i5 ^5 e9 `% h}

; `9 U: K) g- n/ a7 G; o! h
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

' n+ p) Z. Z' o$ S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-24 00:27 , Processed in 0.047939 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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