ATMEGA644P + UART/SPI

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Родился
Сообщения: 2
Зарегистрирован: Чт июн 04, 2009 21:58:38

Сообщение 0-range »

Есть микроконтроллер atmega644p и соединённый с ним bluetooth-модуль spkebm001a. Установлено соединение между ноутбуком и bluetooth-модулем. На модуль данные вроде как приходят (моргает светодиод) но вот до контроллера они не доходят. Пробовали UART и SPI, результат один и тот же. При попытке сохранения полученного символа в eeprom контрллера, сохранятеся либо 00 либо ничего вообще. В чём проблема непонятно. Также пробовали ещё и соединение по COM-порту через схемы собранную на max232.Результат тот же.
Листинг для SPI

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

void SPI_MasterInit(void)

{

  DDRB = (1<<DDB5)|(1<<DDB7)
  SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);

}

void SPI_MasterTransmit(char cData)

{

  SPDR = cData;

  while(!(SPSR & (1<<SPIF)))

    ;

}


void SPI_SlaveInit(void)

{

  DDRB = (1<<DDB6);

  /* Enable SPI */

  SPCR = (1<<SPE);

}

char SPI_SlaveReceive(void)

{

  while(!(SPSR & (1<<SPIF>>8);

  UBRRL0 = (unsigned char)baud;

  UCSR0B = (1<<RXEN0)|(1<<TXEN0);

  /* Set frame format: 8data, 2stop bit */

  UCSR0C = (1<<USBS0)|(3<<UCSZ00);

}


void USART_Transmit( unsigned char data )

{

  while ( !( UCSR0A & (1<<UDRE0)) )

       ;

  UDR0 = data;

}


unsigned char USART_Receive( void )

{

  while ( !(UCSR0A & (1<<RXC0)) )

       ;

  return UDR0;

}


void main()
{
  USART_Init(9600);
  while (1)
  {
    char vh =  USART_Receive();
    eeprom_write(0x00, vh);
  }
}
[/code]
Реклама
Опытный кот
Аватара пользователя
Сообщения: 703
Зарегистрирован: Вс янв 18, 2009 21:12:49

Сообщение asteroid7 »

На БТ модуль документация есть? Скиньте посмотреть.
Он что, не требует никакой инициализации?
Реклама
Родился
Сообщения: 2
Зарегистрирован: Чт июн 04, 2009 21:58:38

Сообщение 0-range »

asteroid7 писал(а):На БТ модуль документация есть? Скиньте посмотреть.
Он что, не требует никакой инициализации?
ftp://ftp.efo.ru/pub/SPK/SPK-EBM001A.pdf
Сказать что модуль документирован слабо, значит ничего не сказать. Но судя по тем описаниям, которые имеются, то никакой дополнительной инициализации не требуется. Но мы можем ошибаться. :(
Нашел транзистор. Понюхал.
Сообщения: 167
Зарегистрирован: Вт июл 10, 2007 23:15:17
Откуда: Магнитогорск

Сообщение ipkin »

чтобы убрать все сомнения по поводу прошивки мк
подключи свой модуль к com порту и посмотри в терминалке что он выдаёт.
я вот работаю с blue giga wt32 так тоже сперва подкдючал к com смотрел что он выплёвывает ну а потом прошку писал
да вот ещё посмотрел а шит на этот модуль
он питается 3в , а max ты какой использовал для связи по ком порту просто 232 не идёт я использовал 3232
Реклама
Эиком - электронные компоненты и радиодетали
Опытный кот
Аватара пользователя
Сообщения: 703
Зарегистрирован: Вс янв 18, 2009 21:12:49

Сообщение asteroid7 »

0-range писал(а):...Сказать что модуль документирован слабо, значит ничего не сказать...
Вы где эти модули покупали? Пробовали там документацию спрашивать? Если в efo, то трясите их.

Гугля и сайт SPK выдают ноль! информации.

В характеристиках модуль уже имеет какие то порты в/в. Значит, имеются регистры. Следовательно, есть протокол обмена. Без документации на протокол его не запустить.
Реклама
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»