реклама на сайте
подробности

 
 
> LPC2131 SPI через SSP
Laptop
сообщение Jul 6 2006, 14:48
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 142
Регистрация: 19-11-05
Пользователь №: 11 103



Пытаюсь настроить передачу через SSP. Реакция нулевая...

void SSP_Init(void)
{
PINSEL1 |= 0x88; // configure SPI0 pins
SSPCR0 = 0x0007; // 8 bit
SSPCR1 = 0x02; // enable, master
SSPCPSR = 20; // SCK = 7.5 MHz, counter > 2 and even
}

unsigned char SSP_write (unsigned char data)
{
volatile unsigned char result;

result = SSPDR;
SSPDR = data; // send next SPI channel 0 data
while ((SSPSR & 0x10)) ; // wait for transfer completed
return result;

}
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Romario
сообщение Jul 6 2006, 16:57
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 92
Регистрация: 26-06-04
Пользователь №: 192



Цитата(Laptop @ Jul 6 2006, 18:48) *
Пытаюсь настроить передачу через SSP. Реакция нулевая...

void SSP_Init(void)
{
PINSEL1 |= 0x88; // configure SPI0 pins
SSPCR0 = 0x0007; // 8 bit
SSPCR1 = 0x02; // enable, master
SSPCPSR = 20; // SCK = 7.5 MHz, counter > 2 and even
}

unsigned char SSP_write (unsigned char data)
{
volatile unsigned char result;

result = SSPDR;
SSPDR = data; // send next SPI channel 0 data
while ((SSPSR & 0x10)) ; // wait for transfer completed
return result;

}


да собственно всё верно. у меня такая же инициализация, правда для 38 и все работает. Правда
MISO в PINSEL1 я все таки разрешил, хотя по идее передача и без него должна быть.

требуется доп. информация типа :
- как смотрите что нет реакции? осциллом? случаем не на SPI0 ноги смотрите?smile.gif
- немного смущает SSPCPSR = 20; и SCK=7.5М - это же какая тактовая должна быть?smile.gif) м.б. развертку у осцилла "сжать"? smile.gif
- объявлены ли регистры SSP как volatile (правильные ли у них адреса наконецsmile.gif


больше ничего придумать не могу


p.s.
ну и логика работы у меня немного другая

Код
#define SPI_WAIT_BSY0()  do {} while (  SPI12138->SSPSR & 0x10)
#define SPI_DR                          SPI12138->SSPDR


static u8_t   spi_mov1  (u32_t b) {
            SPI_DR = b;
            SPI_WAIT_BSY0();
    return SPI_DR;
}


Сообщение отредактировал Romario - Jul 6 2006, 17:04
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 23:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01493 секунд с 7
ELECTRONIX ©2004-2016