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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> SSP на LPC2220:кто-нибудь смог запустить?
Sasha75
сообщение May 6 2009, 15:18
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 20-11-07
Из: Израиль
Пользователь №: 32 499



Бьюсь второй день, никак не могу запустить сабж. Поиск по сайтам NXP и Keil ничего не дал. SPI1 на тех же выводах работает превосходно, но для проекта жизненно важно использовать именно 16 битный SSP с FIFO. Кто-нибудь сталкивался?
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 6 2009, 15:29
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Sasha75 @ May 6 2009, 18:18) *
Бьюсь второй день, никак не могу запустить сабж.

Питание SSP в PCONP не включили, либо не выбрали режим SSP в SSPCR1, либо то и другое. Четвертого не дано smile.gif. В User Manual все подробно описано.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Sasha75
сообщение May 7 2009, 05:41
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 20-11-07
Из: Израиль
Пользователь №: 32 499



Цитата(zltigo @ May 6 2009, 18:29) *
Питание SSP в PCONP не включили, либо не выбрали режим SSP в SSPCR1, либо то и другое. Четвертого не дано smile.gif. В User Manual все подробно описано.

Сделал, как рекомендует мануал:
PCONP &= ~0x00000400; //clear PSPI bit (PCONP.10)
PCONP |= 0x00800000; //set PSSP bit (PCONP.23)

Режим SSP выбран:
SSPCR0 = 0x090F; //16 bit. SPI frame format, CPOL=CPHA=0

как-то подозрительно, что не нашел в сети кусков кода SSP для данного процессора

Сообщение отредактировал Sasha75 - May 7 2009, 05:43
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 7 2009, 06:15
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Sasha75 @ May 7 2009, 08:41) *
Сделал, как рекомендует мануал:

Если трудно прочитать мануал, то прочитайте до полного понимания ОДНУ сторочку из предыдущего поста и выполните ВТОРОЕ условие. И совет - никогда не используйте всякие мутные 0x...........


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение May 7 2009, 06:33
Сообщение #5


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(zltigo @ May 7 2009, 11:15) *
И совет - никогда не используйте всякие мутные 0x...........

Цитата
SSPCR0 = 0x090F; //16 bit. SPI frame format, CPOL=CPHA=0

Здесь что ли не использовать? А что, лучше устанавливать поля регистра по отдельности с пустой тратой времени?


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 7 2009, 06:49
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(GetSmart @ May 7 2009, 09:33) *
Здесь что ли не использовать?

Нигде не использовать.
Код
    SSPCR0 = SSPCR0_DSS(8)|SSPCR0_SCR(1)|SSPCR0_FRF(0);


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение May 7 2009, 06:58
Сообщение #7


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(zltigo @ May 7 2009, 11:49) *
SSPCR0_DSS

А это из какой оперы? Из какого файла?


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 7 2009, 07:09
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(GetSmart @ May 7 2009, 09:58) *
А это из какой оперы? Из какого файла?

Сам написал smile.gif
Код
// SSP Control Register 0
#define SSPCR0_DSS_POS    (0)
#define SSPCR0_FRF_POS    (4)
#define SSPCR0_SCR_POS     (8)
#define SSPCR0_DSS(nbit)    (((nbit)-1)<<SSPCR0_DSS_POS)
#define SSPCR0_FRF(mode)    ((mode)<<SSPCR0_FRF_POS)
#define SSPCR0_CPOL        BIT6
#define SSPCR0_CPHA        BIT7
#define SSPCR0_SCR(divx)     (((divx)-1)<<SSPCR0_SCR_POS)

один раз потратил несколько минут и все


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Sasha75
сообщение May 7 2009, 14:45
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 20-11-07
Из: Израиль
Пользователь №: 32 499



Цитата(zltigo @ May 7 2009, 09:15) *
Если трудно прочитать мануал, то прочитайте до полного понимания ОДНУ сторочку из предыдущего поста и выполните ВТОРОЕ условие. И совет - никогда не используйте всякие мутные 0x...........


Работа с продуктами от NXP, конечно, изрядно подточила мои умственные способности, но не настолько:

SSPCR1 = 0x00; //Normal mode, master
<прочая инициализация>
SSPCR1 = 0x02; //SSP Enable
Начиная с этого места каждая запись в SSPDR должна приводить к посылке 16 бит, но этого не происходит
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 7 2009, 15:30
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Sasha75 @ May 7 2009, 17:45) *
Работа с продуктами от NXP, конечно, изрядно подточила мои умственные способности, но не настолько:

Телепатически оценить трудно, как и отвечать на вопросы уровня "Я все сделал правильно, но не работает. Что делать". Вы полагаете, что вытягивать по строчке из Вас инициализацию и вычитывать с мануалом в руках значения разных магических чисел кому-то очень интересно? Лично мне расхотелось sad.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение May 7 2009, 15:33
Сообщение #11


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Вот мой код инициализации для LPC213x
Код
void LPC213xInitSPI1Master()
{
    PINSEL1 = (PINSEL1 & ~0x3fc) | 0x0a8;   // for SCK+, MISO+, MOSI+, SSEL-
    SSPCR1 = 0x00;      // turn off SSP
    SSPCR0 = 0x07;      // SPI, 8 bit, mode 0, 1 - active level SCK
    SSPCPSR = 6;        // even only
    SSPIMSC = 0;        // interupt disabled
    SSPCR1 = 0x02;      // SSP enable in master
    SSPSR;
}

Может PINSEL не установили?

Сообщение отредактировал GetSmart - May 7 2009, 15:36


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
Sasha75
сообщение May 14 2009, 13:47
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 20-11-07
Из: Израиль
Пользователь №: 32 499



Цитата(GetSmart @ May 7 2009, 18:33) *
Вот мой код инициализации для LPC213x
Код
void LPC213xInitSPI1Master()
{
    PINSEL1 = (PINSEL1 & ~0x3fc) | 0x0a8;   // for SCK+, MISO+, MOSI+, SSEL-
    SSPCR1 = 0x00;      // turn off SSP
    SSPCR0 = 0x07;      // SPI, 8 bit, mode 0, 1 - active level SCK
    SSPCPSR = 6;        // even only
    SSPIMSC = 0;        // interupt disabled
    SSPCR1 = 0x02;      // SSP enable in master
    SSPSR;
}

Может PINSEL не установили?

Спасибо за код. Я попробовал, но не помогло. Придется опять вступать в переписку с NXP. sad.gif Из предыдущего опыта с LPC2210 я знаю, что даташит у них не обязательно совпадает с реальностью
Go to the top of the page
 
+Quote Post
GetSmart
сообщение May 14 2009, 14:01
Сообщение #13


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Это вроде новый проц. В новых появилось ещё управление клоком индивидуально для каждой перифирии. Ещё могли появиться какие-нибудь навороты. В начале описания SSP обычно есть блок схема, на которой всё важное нарисовано.

А что не так с LPC2210 ? Рассказывайте, не стесьняйтесь. Народ хочет знать smile.gif
Я вот только один косяк припоминаю, который у них в последнем мануале на LPC213х не соответствует действительности - это в RTC в регистре тиков кварца младший бит не используется, а используются следующие 15 бит.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
Sasha75
сообщение May 14 2009, 14:53
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 20-11-07
Из: Израиль
Пользователь №: 32 499



Цитата(GetSmart @ May 14 2009, 18:01) *
Это вроде новый проц. В новых появилось ещё управление клоком индивидуально для каждой перифирии. Ещё могли появиться какие-нибудь навороты. В начале описания SSP обычно есть блок схема, на которой всё важное нарисовано.

А что не так с LPC2210 ? Рассказывайте, не стесьняйтесь. Народ хочет знать smile.gif
Я вот только один косяк припоминаю, который у них в последнем мануале на LPC213х не соответствует действительности - это в RTC в регистре тиков кварца младший бит не используется, а используются следующие 15 бит.

В LPC2210 был заявлен 16-битный SPI, я безуспешно пытался его запустить, после 3х недельной переписки из NXP пришел ответ, что при составлении даташита были перепутаны абзацы, никакого 16-битного SPI в этом проце нет, зато он есть в LPC213x, приносим извинения и пр. До этого они присылали отписки в духе "читайте даташит внимательно" или "обратитесь к местному дистрибьютору"
Go to the top of the page
 
+Quote Post
KRS
сообщение May 14 2009, 21:02
Сообщение #15


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Sasha75 @ May 14 2009, 18:53) *
В LPC2210 был заявлен 16-битный SPI

так у них в даташите написано что 2210 его и нет, есть только в 2210/01
у LPC часто даташиты меняются, я первым делом, если что то не работает проверяю, а не вышел ли новый даташит!
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 17th June 2025 - 06:35
Рейтинг@Mail.ru


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