|
SSP на LPC2220:кто-нибудь смог запустить? |
|
|
|
May 7 2009, 05:41
|
Участник

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

|
Цитата(zltigo @ May 6 2009, 18:29)  Питание SSP в PCONP не включили, либо не выбрали режим SSP в SSPCR1, либо то и другое. Четвертого не дано  . В 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
|
|
|
|
|
May 7 2009, 06:33
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(zltigo @ May 7 2009, 11:15)  И совет - никогда не используйте всякие мутные 0x........... Цитата SSPCR0 = 0x090F; //16 bit. SPI frame format, CPOL=CPHA=0 Здесь что ли не использовать? А что, лучше устанавливать поля регистра по отдельности с пустой тратой времени?
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
May 7 2009, 06:49
|

Гуру
     
Группа: Свой
Сообщений: 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
|
|
|
|
|
May 7 2009, 07:09
|

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

|
Цитата(GetSmart @ May 7 2009, 09:58)  А это из какой оперы? Из какого файла? Сам написал  Код // 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
|
|
|
|
|
May 7 2009, 14:45
|
Участник

Группа: Участник
Сообщений: 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 бит, но этого не происходит
|
|
|
|
|
May 7 2009, 15:30
|

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

|
Цитата(Sasha75 @ May 7 2009, 17:45)  Работа с продуктами от NXP, конечно, изрядно подточила мои умственные способности, но не настолько: Телепатически оценить трудно, как и отвечать на вопросы уровня "Я все сделал правильно, но не работает. Что делать". Вы полагаете, что вытягивать по строчке из Вас инициализацию и вычитывать с мануалом в руках значения разных магических чисел кому-то очень интересно? Лично мне расхотелось
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 7 2009, 15:33
|
.
     
Группа: Участник
Сообщений: 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
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
May 14 2009, 13:47
|
Участник

Группа: Участник
Сообщений: 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.  Из предыдущего опыта с LPC2210 я знаю, что даташит у них не обязательно совпадает с реальностью
|
|
|
|
|
May 14 2009, 14:53
|
Участник

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

|
Цитата(GetSmart @ May 14 2009, 18:01)  Это вроде новый проц. В новых появилось ещё управление клоком индивидуально для каждой перифирии. Ещё могли появиться какие-нибудь навороты. В начале описания SSP обычно есть блок схема, на которой всё важное нарисовано. А что не так с LPC2210 ? Рассказывайте, не стесьняйтесь. Народ хочет знать  Я вот только один косяк припоминаю, который у них в последнем мануале на LPC213х не соответствует действительности - это в RTC в регистре тиков кварца младший бит не используется, а используются следующие 15 бит. В LPC2210 был заявлен 16-битный SPI, я безуспешно пытался его запустить, после 3х недельной переписки из NXP пришел ответ, что при составлении даташита были перепутаны абзацы, никакого 16-битного SPI в этом проце нет, зато он есть в LPC213x, приносим извинения и пр. До этого они присылали отписки в духе "читайте даташит внимательно" или "обратитесь к местному дистрибьютору"
|
|
|
|
|
May 15 2009, 09:22
|
Участник

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

|
Цитата(KRS @ May 15 2009, 01:02)  так у них в даташите написано что 2210 его и нет, есть только в 2210/01 у LPC часто даташиты меняются, я первым делом, если что то не работает проверяю, а не вышел ли новый даташит! В LPC2210/01 его тоже нет, проверено  Даташит они исправили, когда мы им ткнули пальцем в ошибку. У LPC часто даташиты меняются, потому как бардак
|
|
|
|
|
May 15 2009, 10:00
|
Местный
  
Группа: Свой
Сообщений: 272
Регистрация: 3-06-06
Пользователь №: 17 737

|
Цитата(GetSmart @ May 15 2009, 12:41)  Небольшой такой бардак с документацией. Но зато сами проци хорошие. Эт чтооо. Вот рааааз  )) пол года назад: уезжаю и говорю практиканту - ты разведи платку с LPC2387 USB/HOST и CAN выведи. Приезжаю через пару недель, приходит плата. Запаял проц и о чууууудо : The USB host controller is available on the LPC2388 only. Ну тут и посыпались трёхэтажные ......  )) Так самое главное у меня есть краткое описалово в котором написано, что у 87-го есть HOST,я практиканту и сказал не задумываясь. Так тот же ещё умудрился и плату состряпать, там ножек не хватало, но как-то он их завёл. Не проверял, вроде новые 87-е тоже имеют HOST. Бойтесь практикантов
|
|
|
|
|
May 25 2009, 08:55
|
Участник

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

|
Цитата(KRS @ May 15 2009, 01:02)  так у них в даташите написано что 2210 его и нет, есть только в 2210/01 у LPC часто даташиты меняются, я первым делом, если что то не работает проверяю, а не вышел ли новый даташит! Проблема решилась. У LPC2220 ошибка в даташите с адресом бита PCSSP. Он 21 бит, а не 23, как указано в таблице на стр. 77. На форуме уже обсуждалось для других процессоров из этой серии: http://electronix.ru/forum/index.php?showt...mp;#entry466381Цитата(GetSmart @ May 7 2009, 19: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 не установили? Проблема решилась. У LPC2220 ошибка в даташите с адресом бита PCSSP. Он 21 бит, а не 23, как указано в таблице на стр. 77. На форуме уже обсуждалось для других процессоров из этой серии: http://electronix.ru/forum/index.php?showt...mp;#entry466381
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|