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

 
 
> LPC2194 SSP
prgjz
сообщение Oct 20 2010, 12:40
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 3-01-07
Из: Germany
Пользователь №: 24 071



Уважаемые коллеги!
Заклинился я на имлементации кода для LPC1294/01 помогите пожалуста.
void ssp_init(void)
{
volatile unsigned int pconv = PCONP;
pconv &= ~(1 << 10); // SPI1 power off
pconv |= (1 << 23); // SSP power on
PCONP = pconv; // здесь не происходит включение питания для SSP

PINSEL1_bit.P0_17 = 2; // CLK
PINSEL1_bit.P0_18 = 2; // MISO
PINSEL1_bit.P0_19 = 2; // MOSI
PINSEL1_bit.P0_20 = 2; // CS

SSPCR0_bit.DSS = 7; // 8 bit transfer
SSPCR0_bit.FRF = 0; // SPI Mode
SSPCR0_bit.CPOL= 0;
SSPCR0_bit.CPHA= 0;
SSPCR1_bit.SSE = 1; // SSP Enable
}
Почему не происходит включение питания для SSP, или что я не правильно делаю?


Ошибочка, LPC2194/01 он называется.
Уж думал что с кристаллом но на другой платине такое же плачевное состояние дел...
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 16)
DpInRock
сообщение Oct 20 2010, 14:25
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



А зачем было умничать с PCONP?


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Oct 20 2010, 19:40
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



А самое любопытное, что в этом процессоре нету SSP.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 20 2010, 20:05
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(DpInRock @ Oct 21 2010, 01:40) *
А самое любопытное, что в этом процессоре нету SSP.
Откуда дровишки? В даташите в примечании на Fig 1.Block diagram указано
Цитата
SSP interface and high-speed GPIO are available on LPC2194/01 only.

У топикстартера
Цитата
Ошибочка, LPC2194/01 он называется.
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Oct 20 2010, 21:42
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



А я посмотрел юзер мануал. На всю серию. Там в PCONP SSP не значится.
За что я и люблю мануалы NXP. Если SSP там есть, то мануал надо пристегивать наручниками к батарее и не давать воды пока не скажет...


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 20 2010, 22:00
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(DpInRock @ Oct 21 2010, 03:42) *
За что я и люблю мануалы NXP. Если SSP там есть, то мануал надо пристегивать наручниками к батарее и не давать воды пока не скажет...
Угу. Есть такое дело. Недавно только обсуждали количество входов АЦП в LPC213x и выяснили, что в современной редакции и даташита и мануала имеется опечатка, внесенная туда копипастерами из мануала LPC214x. Причем мануал и даташит с опечатками числятся аж двухлетеней давности и никто их не правит. sad.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 20 2010, 23:06
Сообщение #7


Гуру
******

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



QUOTE (DpInRock @ Oct 20 2010, 23:42) *
то мануал надо пристегивать наручниками к батарее и не давать воды пока не скажет...

А может лучше себя,пока не скачаете свежий в котором PCONP, как и SSP описан???


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
segment
сообщение Oct 21 2010, 04:57
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 352
Регистрация: 10-08-06
Из: Санкт-Петербург
Пользователь №: 19 471



PCONP надо включать с '|=' чтобы остальные биты не затереть!
Go to the top of the page
 
+Quote Post
prgjz
сообщение Oct 21 2010, 08:58
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 3-01-07
Из: Germany
Пользователь №: 24 071



Во первых очень благодарен за отзывы!
У меня мануал Rev. 03 — 2 April 2008 в нём явно стоит что
новые серии кристала /01 имеют SSP и он подключен параллкльно к SPI1.
Что бы переключть на SSP нужнл сначала питание SPI1 в PCONP бит 10 отключить,
затем PCSSP бит 23 в PCONP включить. Описывается на странице 219 и 220 мануала.
Кстати на странице 219 пишется что это бит 21 а на странице 77 как бит 23:(

Пробовал и то и другое - результат тот же: SPI1 выключается а бит PCSSP остаётся нулевым.

pconv &= ~(1 << 10); // SPI1 power off
pconv |= (1 << 23); // PСSSP power on

Hi-Speed GPIO работает значит кристал не подделка настоящяя /01 версия.
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Oct 22 2010, 17:38
Сообщение #10


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Цитата
The PINMODE registers control the on-chip pull-up/pull-down resistor feature for all GPIO
ports.


Есть вот такая фраза в даташите на LPC2478. Типа, вот мол все порты регулируются.


Цитата
Remark: Pins P0.27 and P0.28 are dedicated I2C open drain pins without pull-up/down.
Pins P0.29, P0.30, P0.31 are USB specific pins without configurable pull-up or pull-down
resistors.


А это - спустя 10 страниц убористого текста.


Т.е. в единственном месте даташита тебе говорят, что ты зря не поставил резюки на порты.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 22 2010, 18:13
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(DpInRock @ Oct 22 2010, 23:38) *
Т.е. в единственном месте даташита тебе говорят, что ты зря не поставил резюки на порты.
Ничего подобного. В таблице Pin description расписаны все отличия для каждого пина, Нужно только не лениться кликать на циферки примечаний. В частности для пинов P0.27 и P0.28 примечание гласит
Цитата
[4] Open-drain 5V tolerant digital I/O pad, compatible with I2C-bus 400 kHz specification. It requires an external pull-up to provide output functionality. When power is switched off, this pin connected to the I2C-bus is floating and does not disturb the I2C lines. Open-drain configuration applies to all functions on this pin.
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Oct 22 2010, 18:26
Сообщение #12


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Цитата
Pad provides digital I/O and USB functions. It is designed in accordance with the USB specification, revision 2.0 (Full-speed and
Low-speed mode only).

Это в сноске для 30-го пина. И что, теперь заглянуть в спецификацию USB2.0? Чтобы узнать что там нет резюка? Далековато. Тем более, USB меня в данном случае вообще не интересовал.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 22 2010, 18:39
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(DpInRock @ Oct 23 2010, 00:26) *
Это в сноске для 30-го пина. И что, теперь заглянуть в спецификацию USB2.0? Чтобы узнать что там нет резюка? Далековато.
А вы хотите полноценно работать с кристаллом, прочитав только один раздел General description? rolleyes.gif
Go to the top of the page
 
+Quote Post
prgjz
сообщение Oct 25 2010, 08:21
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 3-01-07
Из: Germany
Пользователь №: 24 071



Проблема конкретно в том что питание для SSP не включается. Есть примеры исползования SSP но не для этого криставлла.
Вообщим написал письмо в NXP Support, надеюсь они поймут мой плохой английский и ответят.
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 25 2010, 16:41
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Можно было попробовать по-русски написать в МТ-Систем. Не быстро, но ответили бы. Или позвонить.
Go to the top of the page
 
+Quote Post
igorsk
сообщение Oct 28 2010, 21:28
Сообщение #16


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

Группа: Участник
Сообщений: 84
Регистрация: 22-03-10
Пользователь №: 56 131



Может дело вот в этом?
Цитата
To switch on the fly from SPI1 to SSP and back, first disable the active peripheral’s
interrupt(s), both in the peripheral’s and VIC’s registers. Next, clear all pending interrupt
flags (if any set). Only then, the currently enabled peripheral can be turned off in the
PCONP register. After this, the other serial interface can be enabled.
Go to the top of the page
 
+Quote Post
prgjz
сообщение Oct 29 2010, 11:33
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 3-01-07
Из: Germany
Пользователь №: 24 071



Спасибо всем за помощь! NXP Support ответил:
Try to use the follow line for the last instruction:
PCONP |=(1<<21); // PCSSP is on bit 21
В даташите ошибка на котороую и IAR прпался: PCONP_bit.PCSSP дефинирован как бит 23 а должен быть 21.
И в дибаггере EWARM при виде регистров не правильно показывает бит PCSSP поэтому я наверно и решил что
бит 21 тоже не идёт.
Go to the top of the page
 
+Quote Post

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

 


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


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