MCASP自环配置。 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 265|回复: 0

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1146

积分

金牌会员

Rank: 6Rank: 6

积分
1146
发表于 2018-11-7 13:28:07 | 显示全部楼层 |阅读模式 |文章模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,2 d) t2 R4 {# ]: n" x& ]+ v
input mcasp_ahclkx,
& h+ U( b2 Z5 b2 Z* M$ `input mcasp_aclkx,
% e& e$ J+ u" ^' C. ?# D4 |input axr0,
/ |, @7 ]; }7 K. l1 H( r$ Q
* l* T" u6 B) x  }- k0 p2 Xoutput mcasp_afsr,; E( n" L2 E! k# Y3 {% M4 A: N
output mcasp_ahclkr,5 g7 c; Y& O5 ]0 O
output mcasp_aclkr,
0 g$ M. y  I6 ?6 p- s6 koutput axr1,' N' X: W3 v' l5 L7 D$ Y
assign mcasp_afsr = mcasp_afsx;, h( g. S% i+ [) S
assign mcasp_aclkr = mcasp_aclkx;6 j/ O: ?- \: K+ h  d8 N4 E
assign mcasp_ahclkr = mcasp_ahclkx;
, k. q2 u5 V. M2 N, v% Y8 Massign axr1 = axr0;
& Z5 c2 c. M. \- }9 }/ o* l  d! c+ N
. L: ~8 w) {. ~2 X" m! U
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
- [% v; e3 Y- E3 \+ z+ C
static void McASPI2SConfigure(void)3 x2 H3 R  T5 }- Z6 c& k2 [
{
3 T5 g" }, ]" l" q7 ]McASPRxReset(SOC_MCASP_0_CTRL_REGS);
2 J: e( W% V: p7 g" Z# i. P. z1 _McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
) w, |5 u7 E" B' ?McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
$ p, Q1 f- d2 T- RMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
1 y4 G4 b1 u/ B1 I4 q' e# C# {2 [# wMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
2 n) B* C# v- U5 _3 h( ^$ P5 `MCASP_RX_MODE_DMA);
" U& p7 }' b9 W8 C$ n9 D" QMcASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,) [  F" p& D$ z5 `6 K/ a
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
8 O/ r6 l" ?/ S9 n/ {McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 7 a" c5 q5 |5 [  ]- Z' v
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
$ F+ ?( J2 P2 ^! tMcASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,
  E9 d$ F! w3 ZMCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */- E/ v% j/ u, o$ c9 E% t" B
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);+ [9 s+ |7 Q8 H
McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); ( {$ ^2 t  L' H( `5 @: g
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,$ h7 A: s3 a/ k6 ^, z
0x00, 0xFF);
/* configure the clock for transmitter *// [) o, J3 {6 L0 |: X" l
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);3 d# C# h$ v* Y  z" T8 [
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
9 v& z8 Q6 t8 g  U, a  s% GMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,0 z% t, b" o) ]% U4 `& m' i+ x
0x00, 0xFF);; \) N* v* t; U( V# h7 N

" h0 q3 Z  U. P( ~4 F2 o6 }8 C+ o/* Enable synchronization of RX and TX sections */ : ?8 n' s" \! K4 q2 L
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
9 ?% r' ^" ~1 s" rMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);) y3 l$ j1 i7 p  h. k) x) C3 |; P  Q
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
' n: a6 J% B+ M5 C3 P** Set the serializers, Currently only one serializer is set as) G  ]; S3 i  ?# l! f" F! R
** transmitter and one serializer as receiver., C1 U' b- b7 H2 T- S- n' }8 ]
*/" ?* v, n! S7 e3 J. g
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
$ T/ L$ |4 G) L. }3 SMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
# n- z( N# @' o7 C5 I- V$ E) K9 L** Configure the McASP pins 1 d. `( [4 W9 s! Y* R
** Input - Frame Sync, Clock and Serializer Rx2 C' N3 l  c5 p% a, b
** Output - Serializer Tx is connected to the input of the codec ( v7 \2 h' y& N% I% X" S, }5 d
*/8 n- I& N" P- C' u& c& w8 D* `
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);9 O5 t' b4 W+ n7 K' {# v# m& ^; O
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
& A5 S9 @) H, a$ l, ]3 cMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX6 \- K0 ]0 |- c# H" f4 }7 _; S
| MCASP_PIN_ACLKX
+ z- h! h) [7 p$ d% N& A7 o0 O4 X| MCASP_PIN_AHCLKX
& J! u7 j/ y- \7 p! p7 [, }: u7 p( ^4 {| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */5 W0 r& x( O- V1 D* r
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
0 X: D* ]$ e0 u/ h! v7 ?3 E| MCASP_TX_CLKFAIL
+ u5 N+ ~  d+ T! n| MCASP_TX_SYNCERROR
: N; Q) Y  ~6 P| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
1 M. Z9 w; E* h0 x| MCASP_RX_CLKFAIL
. C' t% J$ B1 D& ?| MCASP_RX_SYNCERROR - I7 x; W% M* F6 \* \
| MCASP_RX_OVERRUN);
: H5 h7 C5 k: \& ?" a- k}
static void I2SDataTxRxActivate(void)
3 u* g& V: d5 O6 \+ p{; R, d" e4 [# _3 v/ L8 f. i6 Y, A
/* Start the clocks */, c) \: v: [* O8 ^' t! o+ N
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
+ t- q1 Q9 f2 H/ [, b- AMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
7 v! |3 t, K* W9 Y+ G6 Y7 NEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
1 j0 Q8 L+ [% @7 u# cEDMA3_TRIG_MODE_EVENT);
! S8 h# `% B' `' q+ \EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
* M% f! d  S) D9 gEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers *// _0 ^6 b8 B' C3 J# m
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);9 I+ C4 K' o" x, F; ?" X+ p
McASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */2 h& C- I- X+ Q! ?5 E; i- K" L
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */+ Z# Y  [" `% c
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);
5 I1 I, M& S. W% b' BMcASPTxEnable(SOC_MCASP_0_CTRL_REGS);
, R  D: R9 [) @' _}
1 M  J# E& z6 O# Q4 v4 D* g6 Q
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
4 u: Y7 u6 C9 q0 H" [' Z
我知道答案 本帖寻求最佳答案回答被采纳后将获得系统奖励0 , 目前已有0人回答
最近访问 头像模式 列表模式
回复

使用道具 举报

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

本版积分规则  回帖提醒

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

GMT+8, 2019-1-18 17:55 , Processed in 0.184161 second(s), 32 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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