r16721853

    1. OMAPL138平台串口uart0的问题,请大侠帮忙 4/6734 DSP 与 ARM 处理器 2011-10-08
      DSP是可以出波形的,但是在ARM下 linux中就是发送无波形 DSP中寄存器配置如下: uint32_t divisor;        // enable the psc and config pinmux for the given uart port.    switch ((uint32_t)uart)    {       case UART0_REG_BASE:          EVMOMAPL138_lpscTransition(PSC0, DOMAIN0, LPSC_UART0, PSC_ENABLE);          EVMOMAPL138_pinmuxConfig(PINMUX_UART0_REG, PINMUX_UART0_MASK, PINMUX_UART0_VAL);          break;                 case UART1_REG_BASE:          EVMOMAPL138_lpscTransition(PSC1, DOMAIN0, LPSC_UART1, PSC_ENABLE);          EVMOMAPL138_pinmuxConfig(PINMUX_UART1_REG_0, PINMUX_UART1_MASK_0, PINMUX_UART1_VAL_0);          EVMOMAPL138_pinmuxConfig(PINMUX_UART1_REG_1, PINMUX_UART1_MASK_1, PINMUX_UART1_VAL_1);          break;                 case UART2_REG_BASE:          EVMOMAPL138_lpscTransition(PSC1, DOMAIN0, LPSC_UART2, PSC_ENABLE);          EVMOMAPL138_pinmuxConfig(PINMUX_UART2_REG_0, PINMUX_UART2_MASK_0, PINMUX_UART2_VAL_0);          EVMOMAPL138_pinmuxConfig(PINMUX_UART2_REG_1, PINMUX_UART2_MASK_1, PINMUX_UART2_VAL_1);          break;       default:          return (ERR_INIT_FAIL);    }    // put xmtr/rcvr in reset.    uart->PWREMU_MGMT = 0;    // set baud rate...assumes default 16x oversampling.    divisor = SYSCLOCK2_HZ / (baud_rate * 16);    uart->DLH = (divisor & 0x0000FF00) >> 8;    uart->DLL = divisor & 0x000000FF;    // enable xmtr/rcvr fifos.    uart->FCR = 0;    SETBIT(uart->FCR, FIFOEN);    SETBIT(uart->FCR, RXCLR | TXCLR | DMAMODE1);    // disable interrupts, flow control, and loop back.    uart->IER = 0;    uart->MCR = 0;    uart->MDR = 0;    // config LCR for no parity, one stop bit, 8 data bits, no flow control.    uart->LCR = 0;    SETBIT(uart->LCR, WLS_8);    // take xmtr/rcvr out of reset.    SETBIT(uart->PWREMU_MGMT, UTRST | URRST | FREE);        return (ERR_NO_ERROR); }
    2. OMAPL138平台串口uart0的问题,请大侠帮忙 4/6734 DSP 与 ARM 处理器 2011-10-08
      根据上面的DATASHEET我做的配置就是把PINMUX3的RX和TX使能了  内核启动信息显示了   还有就是因为流控制线没接,所以就把CTS和RTS也屏蔽了。 但是发送就是没波形,read的perror显示   Resource temporarily unavailable 而用DSP测试显示有波形,且收发正常。 测试程序如下:     fd1=open("/dev/ttyS0",O_RDWR|O_NOCTTY|O_NDELAY);//防止任何终端输入影响程序,不关心DCD信号线电平     printf("fd1=%d\n",fd1);     tcgetattr(fd1,&opt);     cfmakeraw(&opt);     cfsetispeed(&opt,BAUDRATE1);     cfsetospeed(&opt,BAUDRATE1);     if(tcsetattr(fd1,TCSANOW,&opt)!=0)     {         perror("tcsetattr error");         return -1;         }         opt.c_cflag&=~CRTSCTS;     opt.c_cflag|=CS8;     opt.c_cflag&=~CSTOPB;     opt.c_cflag|=(CLOCAL|CREAD);//确保程序不被其他端口控制和信号干扰,同时串口驱动将读取进入的数据     opt.c_iflag|=IGNPAR;//忽略真错误和校验错误     opt.c_oflag=0;     opt.c_lflag=0;     //    tcflush(fd1,TCIOFLUSH);     while(1)     {     sprintf(buf,"AT\r");     n=write(fd1,buf,strlen(buf));     printf("write %d\n",n);     sleep(3);     memset(buf,0,10);     if(read(fd1,buf,5)
    3. OMAPL138平台串口uart0的问题,请大侠帮忙 4/6734 DSP 与 ARM 处理器 2011-10-08
      [ 本帖最后由 r16721853 于 2011-10-8 10:57 编辑 ]
    4. 嵌入式linux系统开发和入门笔记 71/16605 Linux开发 2011-09-27
      支持下  不错不错

最近访客

< 1/1 >

统计信息

已有759人来访过

  • 芯积分:--
  • 好友:--
  • 主题:3
  • 回复:4

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言