This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

有人能帮我解决:关于在DM8127的vpss m3核上实现UART的问题



以下是我对于uart1的设计过程,请帮我分析并解决其中的问题:

    1、注册中断服务程序:

     修改ipnc_mcfw\mcfw\src_bios6\cfg\ti814x\BIOS_m3vpss.cfg文件,在Programe.heap段添加一个中断服务程序(响应中断),添加到注释段“/* CSI2 interrupt */”的上面一行。添加的内容如下:

var   uart_hwi_param_0=  new  Hwi.Params;

uart_hwi_param_0.arg   =  0;

Hwi.create(44,  ‘&uart1_isr_callback’,  uart_hwi_param_0);

2、初始化uart1:

设计一个函数Uart1Init(),该函数可以考虑放在 ipnc_rdk\ipnc_mcfw\mcfw\src_bios6\links_m3vpss\system\System_m3vpss.c文件中的System_init()函数体内,对uart1进行初始化。

设置步骤,参考TI 8148手册:

步骤一:UART软件重置

  LCR=BFh;   使EFR寄存器可被操作。

      EFR[4] = 1; 使IER、MCR寄存器可被操作。

      LCR[7] =0;  使IER、MCR寄存器可被操作。

      IER=0;        使中断无效。

      MCR=0;      使moden无效。

      LCR[6] = 0; 使信号无效。

      MDR1=7h;   使UART重置或无效。

步骤二:UART  FIFO配置

      MCR[6] = 1;使TLR、TCR可被操作,EFR[4]在上面已被置成1,这里略去。

      设置需要的值到TLR、TCR、FCR三个寄存器中,在本次设计中:

TLR[7:4] = 0;

TCR=0;

SCR[7] = 0;

DLL=0;

DLH=0;

FCR[0]=1;

FCR[3]=0;

FCR[7:6]=0

      设置完成后,为防止被其他程序修改,设置:

            LCR=BFh;

EFR[4]=0;

LCR[7]=0;

MCR[6]=0。

步骤三:波特率设置并退出设置状态

             LCR[7] = 1;使DLL、DLH寄存器可被操作。

             波特率采用57600bps,查8148参考手册,如果时钟不同,需要计算,(方式:

波特率发生器模块时钟源为VPB时钟(pclk);分频值(Fdiv);Baud Multiple(16x)Fdiv=Fpclk/(16*baud),上面的值是时钟源为48-MHz 情况下的值)

DLL=34h;

DLH=00h;设置波特率为57600bps。

            LCR[7]=0;使DLL,DLH不可被操作。

            IER[0]=1;允许接收UART信号中断

            MDR1[2:0]=0;设置UART为16x模式,而不是自动波特率模式

到这里,UART模块可以被使用了。

??数据位、停止位、校验位、流控在哪些寄存器中设置??

3、中断服务程序实现:

经过以上步骤,是否可以接收到中断信号??

在中断服务函数中,我应该如何获取RHR寄存器的fifo数据??

4、uart寄存器的定义,是否可以使用iss_02_80_00_00\packages\ti\psp\iss\hal\cred_cram\cred\inc\cortexm3_sys_ape\Uart_cred.h

中的定义?并且在Uart_cred.h中无法找到如下的寄存器定义:

EFR,IER,TLR,TCR,DLL,DLH?我在8148和8127的datasheet上都没有找到。

参考的文档为:

DM8127_DM_f9_09_15_11_DATED9072011.pdf

tms320dm814x Davinci digital media processor (sprugz8).pdf

请帮我分析上面的设计思路,并给出建议和解决方法。

谢谢!