"Падает" передача по SPI в MSP430

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Аватара пользователя
ftp27host
Открыл глаза
Сообщения: 74
Зарегистрирован: Сб июн 05, 2010 13:28:20

"Падает" передача по SPI в MSP430

Сообщение ftp27host »

У меня имеется МК msp430f425 и WiFi модуль SPB-106. WiFi я пока не трогал, а только припаял проводки синхроимпульса и MISO к MISO; MOSI к MOSI. Так же припаял к CS от WiFi к I/O порту МК и послал туда нолик.
И подготовил такой нехитрый код:

Код: Выделить всё

#include "msp430.h"

void main( void )
{
  WDTCTL = WDTPW + WDTHOLD; //Выключаю Watch Dog Timer
      //ACLK = 32768 Гц
    while(FLL_CTL0 & 3 ); 
 // ======= Инициализация SPI =======    
     P1SEL = BIT6 + BIT7;   
    P2SEL = BIT1;         
    P2DIR |= BIT2;         
    
    P1DIR |= BIT4;        // CS от Вай фая
    P1OUT &= ~BIT4;       // 
    
  U0CTL = CHAR+SYNC+MM+SWRST; // 8-bit SPI Master **SWRST**
  U0TCTL = CKPH+SSEL1+STC; // SMCLK, 3-pin mode +SSEL0
  U0BR0 = 0x002; // SPICLK = SMCLK/2
  U0BR1 = 0x000;
  U0MCTL = 0x000;
  ME1 = USPIE0;                             // Module enable
  U0CTL &= ~SWRST;                          // SPI enable
  IE1 |= URXIE0;                            // Receive interrupt enable
  _EINT();                                  // Enable interrupts
    
// ===============  
 unsigned char trn_word[6] = "Hello!";
 
  while (1) {
    for (int i=0; i<6; i++) {
       while (!(IFG1 & UTXIFG0));
        TXBUF0 = trn_word[i];
    }
  }
 }
Смотрю на осциллограф и вижу такое
Изображение
И такая характеристика постоянно повторяется. Если приглядеться, передается буква "H" и потом начинается следующая передача и что то падает. Как будто МК перезагружается, хотя WDT выключен.
Реклама
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: "Падает" передача по SPI в MSP430

Сообщение Ser60 »

Похоже, у Вас отсутствует обработчик прерываний от SPI модуля. Прерывания разрешены и когда таковое происходит, управление передается в никуда и происходит ресет.
Реклама
Аватара пользователя
ftp27host
Открыл глаза
Сообщения: 74
Зарегистрирован: Сб июн 05, 2010 13:28:20

Re: "Падает" передача по SPI в MSP430

Сообщение ftp27host »

Ser60 писал(а):Похоже, у Вас отсутствует обработчик прерываний от SPI модуля. Прерывания разрешены и когда таковое происходит, управление передается в никуда и происходит ресет.
UART у меня работал и без прерываний Оо Что то не особо вериться что SPI будет сильно отличаться
mas123
Потрогал лапой паяльник
Сообщения: 312
Зарегистрирован: Вс июл 29, 2012 16:25:39

Re: "Падает" передача по SPI в MSP430

Сообщение mas123 »

ftp27host писал(а):UART у меня работал и без прерываний Оо Что то не особо вериться что SPI будет сильно отличаться
С UART'ом могло быть "просто повезло" - чуть дальше точки вызова ISR-обработчика стоял RET.
Или, что более вероятно, в UART не были разрешены прерывания.
Попробуй не включать прерывания SPI, а лучше напиши обработчик прерывания.

ЗЫ: а SPI и UART отличаются сильно... на более другом процессоре с UART'ом никаких проблем нет и почти не было, а со SPI идет непрерывная война и падение всей системы :(
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
ftp27host
Открыл глаза
Сообщения: 74
Зарегистрирован: Сб июн 05, 2010 13:28:20

Re: "Падает" передача по SPI в MSP430

Сообщение ftp27host »

Тоочно. Теперь передается все слово. Юх экая красотища! Спасибо большое! :beer:
Реклама
Ответить

Вернуться в «Разные вопросы по МК»