Перейти к содержанию
    

AT91SAM7S256, влияние JETlink

Привет всем!!!

 

не могу понять странность: написал простенький проектик, в цикле моргает светодиод и отправляются данные по uart через ST232 на комп. если к МК подключен дэбаггер то все нормально работает. стоит отключить, так светодиод моргает, а данных по нет...

код работы с uart рабочий, на другой плате все ок, только там МК общается по uart с SIM300...

 

может у кого какие идеи есть, то подскажите, буду очень благодарен!!!!!!

 

void  BSP_USART_Init( void )
{
   CPU_INT32U  pclk_freq;
   CPU_INT32U  baud_rate = 9600;//115200;

   pclk_freq                  = BSP_CPU_ClkFreq();             /* Get the UART input clock frequency                       */

   AT91C_BASE_PIOA->PIO_PDR   = BSP_GPIOA_UART0;
   AT91C_BASE_PMC->PMC_PCER   = (1 << AT91C_ID_US0);           /* Enable the US0 peripheral clock                          */

                                                               /* ---------------------- SETUP US0 ----------------------- */
    AT91C_BASE_US0->US_MR      = AT91C_US_USMODE_NORMAL         /* RS232C mode selected                                     */
                              | AT91C_US_CLKS_CLOCK            /* USART input CLK is MCK                                   */
                              | AT91C_US_CHRL_8_BITS           /* 8 bit data to be sent                                    */
                              | AT91C_US_PAR_NONE              /* No parity bit selected                                   */
                              | AT91C_US_NBSTOP_1_BIT;          /* 1 stop bit selected                                      */
                              //| (0x2 << 14);                   /* !!!!!!!!!! LOOPBACK !!!!!!!!!                            */

   /* Set the USART baud rate                                  */
   AT91C_BASE_US0->US_BRGR    = (CPU_INT16U)(pclk_freq / baud_rate / 16)+1;

                                                               /* ---------------- INITIALIZE AIC FOR US0 ---------------- */
  /*pUS0->US_TPR = (AT91_REG)pUSBufferTX;
  pUS0->US_TCR = USBUFSIZE;
  pUS0->US_TNPR = (AT91_REG)0;
  pUS0->US_TNCR = 0;*/

  AT91C_BASE_US0->US_RPR = (AT91_REG)pUSBufferRX;
  AT91C_BASE_US0->US_RCR = USBUFSIZE;     
  AT91C_BASE_US0->US_RNPR = (AT91_REG)0;
  AT91C_BASE_US0->US_RNCR = 0;        
  AT91C_BASE_US0->US_PTCR = AT91C_PDC_RXTEN;

  AT91C_BASE_AIC->AIC_IDCR = (1<<AT91C_ID_US0);
  AT91C_BASE_AIC->AIC_SVR[AT91C_ID_US0] = (unsigned int)UsartHandler;
  AT91C_BASE_AIC->AIC_SMR[AT91C_ID_US0] = (AT91C_AIC_SRCTYPE_INT_POSITIVE_EDGE|0x4);
  AT91C_BASE_AIC->AIC_IECR = (1<<AT91C_ID_US0);

  AT91C_BASE_US0->US_RTOR = 0x00FF;  

  AT91C_BASE_US0->US_IER = AT91C_US_TIMEOUT;// | AT91C_US_RXRDY;// | AT91C_US_ENDRX;
  AT91C_BASE_US0->US_IDR = ~(AT91C_US_TIMEOUT);// | AT91C_US_RXRDY);// | AT91C_US_ENDRX);

  AT91C_BASE_US0->US_CR  = AT91C_US_RXEN | AT91C_US_TXEN;

}

void  BSP_Ser_WrByte (CPU_INT08U tx_byte)
{ 
   while ((AT91C_BASE_US0->US_CSR & AT91C_US_TXRDY) == 0){  /*  Wait for room in the transmit register.                 */
       ;
   }

   AT91C_BASE_US0->US_THR    = tx_byte;

}

void  BSP_Ser_WrStr (CPU_CHAR *tx_str)
{
   while ((*tx_str) != 0) {
       BSP_Ser_WrByte(*tx_str++);
   }
}

static  void  AppTaskRf (void *p_arg)

{
   . . .

 LED_On();  

 while (DEF_TRUE) 
 { 
     while(ind)
     {
       str[4 - ind] = ReadData();
       ind--;
     }
     Reset_Fifo();
     ind = 4;

     BSP_Ser_WrStr(str);

     if (Crc8(str, 3) == str[3])
     {
       LED_Toggle(); 
     }
     memset(str,0,5);

 }
}

 

shema.sch

Изменено пользователем aaarrr
Оформление цитаты исходника

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ни схемы, ни проекта, ни даже кусочка исходника ... опять задачка для телепатов? :twak:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

проблему решил. дело было в кабеле через который соединялись плата и комп, а именно плохо пропаянная земля, из-за чего уровень сигнала сдвинулся на 5В...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...