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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1212

积分

金牌会员

Rank: 6Rank: 6

积分
1212
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,* i4 d# o; U9 \/ E) D  m) U
input mcasp_ahclkx,
# V4 ]& ]) P# @. |7 I" w, x0 oinput mcasp_aclkx,
/ `* f& F0 O/ T' K6 T! J! Linput axr0,
& F- Y: y) g" K8 b0 X
! m/ \' p( Y( `output mcasp_afsr,6 E1 Q& B3 b$ u- K3 l: `
output mcasp_ahclkr,
) y! }  h9 C$ F9 e% G$ q3 Moutput mcasp_aclkr,  [8 N& C' [$ C5 ?: d0 b9 s
output axr1,5 c) x' w" \/ b: ~5 W- _4 h# }
assign mcasp_afsr = mcasp_afsx;
3 U6 q3 l  u8 z2 U: q3 {assign mcasp_aclkr = mcasp_aclkx;4 Y1 V/ |, y& v4 j$ y. ?
assign mcasp_ahclkr = mcasp_ahclkx;
7 X6 W% _- [4 `/ u9 q8 ]assign axr1 = axr0;

9 y: _) J( |* j5 H7 W+ x+ l1 g" c/ y0 }
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。
  b# v0 _2 D. c% i% _0 B: `  P" j
static void McASPI2SConfigure(void)- Q5 e& t  t/ W* ~" Q! ?& }7 [2 S7 K
{
8 @7 l( ~0 M% W3 F4 p7 x1 H* IMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
( a1 Z% ?+ x' l9 YMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
" X; L! a9 F+ ~) O& Q  X# F, d1 v# ZMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
9 f, Q  X9 f4 l, c9 Q% @McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
2 t* K; B0 e; b# x- M0 K! DMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
1 q4 D# Y3 @- n" n* nMCASP_RX_MODE_DMA);7 Q8 N& |0 M5 I% h8 J
McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
* Q: ?  Z4 n# F% [( p, ?MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */6 @7 `4 D: s/ z: U6 `( o. E
McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD,
1 B7 |+ f4 K3 C2 y8 [; [MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
  I) d4 ?5 r) b  {0 y( i' D" |McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, " W) ]( `2 Q. n% [# ~$ a
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */
' F/ ~# o9 S# g5 a6 WMcASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
9 a) P% D' {- |, |# F4 uMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); : s9 i- \6 h0 N) l; }6 J; N& R
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
4 m! N$ p4 q& a" }5 f0 v, l0x00, 0xFF);
/* configure the clock for transmitter */. O6 Q5 f7 S$ f. @+ B* i0 ]9 k1 {$ o* V% L
McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);
9 Y5 }& a* w# u- |  u! bMcASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
  @5 ?6 _  }4 q% |7 lMcASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,, ?; ~1 f/ K0 m
0x00, 0xFF);1 ~8 b# S# C& L8 a6 \5 a

$ B) L0 E+ S1 Z* k3 P7 w" ?0 _6 P/* Enable synchronization of RX and TX sections */ - a! t9 b  b$ q& u  t2 f+ d8 B1 Z
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */, N  |3 T0 F' p
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);# y/ ^! q$ a& [% f4 \
McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/** N, s1 U  ~1 p% a0 f9 U
** Set the serializers, Currently only one serializer is set as
; u3 N% a7 h  x4 ^3 ?3 m" w6 K** transmitter and one serializer as receiver.) [( H. U. ]3 p5 K, d& n- H% l; Q) ~
*/
6 Z/ R  y& `  ]; N6 zMcASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
. ~1 [8 g8 Y1 u! _2 m0 G$ |3 bMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
! \# c7 W3 M- U3 p( X** Configure the McASP pins
" `6 b/ o' k1 i9 q7 ?** Input - Frame Sync, Clock and Serializer Rx/ m+ h; e0 f+ D2 b) F
** Output - Serializer Tx is connected to the input of the codec 4 D/ W) W9 x/ C
*/7 \( Q, j" G$ e3 I* P5 z
McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
4 `! G5 [9 u! A& h% J" U" Q7 dMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));1 {5 p- U" Z- n
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX1 w# Y. {8 B. I* @' `# i* I4 n9 Q
| MCASP_PIN_ACLKX( d- j3 Q9 E  `9 k' P* V" v: T
| MCASP_PIN_AHCLKX. ~8 I8 K: L4 O3 |
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */! ~7 m. f% R: h0 t. L, p
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
5 R4 D8 ^# _) \% Z9 B| MCASP_TX_CLKFAIL
9 C. }  N# A, S| MCASP_TX_SYNCERROR7 y  v  i. c( r$ |1 s- D
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
) s& U2 B* q4 ?) V| MCASP_RX_CLKFAIL
" j. H9 Z6 D3 Y% t) J" `$ J3 g| MCASP_RX_SYNCERROR
& h+ Q+ N/ E' M! Y0 D% e; N; G| MCASP_RX_OVERRUN);& _# C: y! }0 d+ p) d4 E' g9 }  q
}
static void I2SDataTxRxActivate(void)
& ~8 l3 o/ c2 d" P  H9 \{
& l- u, i% `6 K( j/ L. t6 {4 Y/* Start the clocks */
0 e4 _0 w; T  E! P$ YMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);% c+ A, F3 G* }
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */& y/ H! v& j2 [- O
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,
+ \' H# Y. _& FEDMA3_TRIG_MODE_EVENT);( N# t" H6 Z9 {* T. A' U
EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
$ n2 k# ]* |3 |9 O4 J7 W7 _EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */* J4 ?6 Z0 i+ ~9 P: `0 j: q
McASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
5 d: |, r) @7 |: L9 u6 YMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */* ^  r" o3 a/ [5 l3 H. I
while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */' @0 e  _+ J! d; q* Z; g  U4 K
McASPRxEnable(SOC_MCASP_0_CTRL_REGS);+ p+ C; @! B3 k- M5 f
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
. X2 H; R8 g/ n3 ?}
4 ~# X8 u/ ]' _% s
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
2 U% r$ i& _* e# @9 f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-9 15:56 , Processed in 0.043410 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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