ЗАО «ЗЭО»

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

Автор Тема: SSP (SPI) на Тионе270  (Прочитано 4660 раз)

0 Пользователей и 1 Гость просматривают эту тему.

KDM

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 46
SSP (SPI) на Тионе270
« : 21 Ноября, 2011, 16:59:51 »

Здравствуйте. Вопрос по документации на интерфейс SSP.

В описании интерфейса SSP (http://www.zao-zeo.ru/media/files/docs/tion-270-v1.3.pdf стр.12) в ряде случаев на один сигнал указано несколько ножек GPIO. Что это обозначает?

Например, SSPRXD2 соответствует GPIO с номерами
86 - LLD16 (монитор)
11 - GPIO11_PWR_EN (управление питанием)
88 - USB_OC# (обратная связь по ограничению токов питания USB устройств)
40 - FF_DTR (COM1 LVTTL, RS-232)
в то же время для SSPSCLK3 указано:
40 - FF_DTR (COM1 LVTTL, RS-232)
52 - GPIO52 (не используется)
84 - PCD (CF)
34 - FF_DCD (COM1 LVTTL, RS-232)

Если я все правильно понимаю, на pxa270 3 аппаратных SSP. Сколько есть свободных (незадействованных) для реализации интерфейса SPI и какие из указанных в документации GPIO нужно использовать? Также вопрос про скорость (pxa270 manual): "Bit-rates from 6.3 Kbps (minimum) to 13 Mbps (maximum)" я правильно понимаю, что это индивидуально по каждому из каналов?
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: SSP (SPI) на Тионе270
« Ответ #1 : 21 Ноября, 2011, 19:21:48 »

Если я понял ваш вопрос, то:

В PXA, как и в любом современном микроконтроллере, сигнал каждого (или большинства) интерфейсов
может быть выведен на различные выводы (мультиплексирован), для удобства трассировки плат.
См. стр. ~1009 PXA27x dev manual, Table: GPIO Alternate Functions.

> Если я все правильно понимаю, на pxa270 3 аппаратных SSP.
> Сколько есть свободных (незадействованных) для реализации интерфейса
> SPI и какие из указанных в документации GPIO нужно использовать?

Они все свободные, если вы их не используете. Т.е. в соответствии с таблицей
GPIO Alternate Functions, например, решили использовать GPI86 как SSPRXD2,
значит LLD16 надо пожертвовать (отключить в конфигурации LCD-контроллер и,
вероятно, в загрузчике, изменить регистры GPIO alternete functions).


> Также вопрос про скорость (pxa270 manual): Bit-rates from 6.3 Kbps (minimum) to 13 Mbps
> (maximum)" я правильно понимаю, что это индивидуально по каждому из каналов?

Насколько я помню, да.
Записан

KDM

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 46
Re: SSP (SPI) на Тионе270
« Ответ #2 : 22 Ноября, 2011, 11:22:57 »

Спасибо. Лично у меня понимание на уровне пользователя, так что вопросы иногда могут быть не совсем корректными.

1. Мультиплексирование временное? Как будет работать, к примеру SSPRXD2 при наличии сигналов FF_DTR (предположим, идет постоянно) и USB_OC# (возникает периодически) и отсутствии сигналов на других линиях SSPRXD2? Особенно интересует, будет ли зависеть скорость от других линий SSP2 (SSPTXD2, SSPSFRM2); порт ведь по-факту один.

2. Зачем сигналы типа USB_PEN, USB_OC#, BL_ON подключены через GPIO для SSP? Может быть, подскажете, где можно посмотреть, какие из GPIO в и каком виде (как "простые" GPIO или через SSP) сейчас используются?

3. Нигде не увидел подключения LLD16 и 17 (только на раъем J42). Для чего они могут использоваться?

4. Что можете посоветовать для максимального использования скорости SPI? Сейчас на этапе проектирования стоит вопрос по достаточности имеющихся скоростей, желательно обеспечить резерв - он никогда не бывает лишним как в повседневной работе, так и при дальнейших модернизациях.

5. Исходя из каких принципов периферия "размазывалась" по 3 SSP? Очень уж хочется выгадать парочку SPI для каналов связи, а периферию в виде CF, RS-232, RS-485, USB отправить либо на выделенный SSP, либо на свободные GPIO. В худшем случае, надо освободить SSP1 (вроде бы менее всего загружен), и где-нибудь иметь один доступный SPI для CAN с сохранением CF, RS-232, RS-485, USB интерфейсов.
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: SSP (SPI) на Тионе270
« Ответ #3 : 22 Ноября, 2011, 12:59:00 »

> Мультиплексирование временное?
До тех пор, пока не измените Alternate functions регистры.

> Как будет работать, к примеру SSPRXD2 при наличии сигналов FF_DTR
> (предположим, идет постоянно) и USB_OC# (возникает периодически)
> и отсутствии сигналов на других линиях SSPRXD2

Как обычно. На один конкретный вывод процессора может быть назначена
одна конкретная функциональность. Т.е. вывод процессора в соотвестсвии
со значениями регистров Alternate functions соединяется внутри процессора
с соотв. сигналом какого-либо контроллера.

> будет ли зависеть скорость от других линий SSP2 (SSPTXD2, SSPSFRM2); порт ведь по-факту один.

Непонял.

> Зачем сигналы типа USB_PEN, USB_OC#, BL_ON подключены через GPIO для SSP?

Так сделано производителем процессора, mailto:marvel.com

> где можно посмотреть, какие из GPIO в и каком виде (как "простые" GPIO или через SSP) сейчас используются?

Если в таблицах (начиная со стр. 5) указан номер GPIO
http://www.zao-zeo.ru/media/files/docs/tion-270-v1.3.pdf
то этот вывод соединён напрямую с процессором и указанный в таблице номер GPIO соответствует
номеру GPIO в документации на процессор. Практически все они уже программно используются для разных
интерфейсов указанных в графе "Наименование". Если вы хотите от них другой возможной функии,
вам нужно отключить прежнюю.

> Нигде не увидел подключения LLD16 и 17 (только на раъем J42). Для чего они могут использоваться?

Стр. 6, http://www.zao-zeo.ru/media/files/docs/tion-270-v1.3.pdf, LCD-интерфейс.

> Что можете посоветовать для максимального использования скорости SPI?

32-х битный доступ, возможно DMA, если процессору есть чем заняться.

> Исходя из каких принципов периферия "размазывалась" по 3 SSP?

От процессора нужны были определённые интерфейсы, кроме того требовалась совместимость
с Toradex Colibri PXA270. Так и сделали.

> Очень уж хочется выгадать парочку SPI для каналов связи

Нарисуйте таблицу и пробуйте разные комбинации размещения функционала
по выводам.
Записан

KDM

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 46
Re: SSP (SPI) на Тионе270
« Ответ #4 : 22 Ноября, 2011, 14:30:11 »

> > Мультиплексирование временное?
> До тех пор, пока не измените Alternate functions регистры.
Благодарю. Это многое прояснило.
Записан

KDM

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 46
Re: SSP (SPI) на Тионе270
« Ответ #5 : 22 Ноября, 2011, 17:59:35 »

Собираюсь пробовать подключать так:
SSP1:
SSPSCLK - GPIO23 (SSP_CLK)
SSPSFRM - GPIO24 (SSP_FRM)
SSPTXD - GPIO57 (SSP_TXD)
SSPRXD - GPIO26 (SSP_RXD)

SSP2:
SSPSCLK2 - GPIO36 (EXT_IO2)
SSPSFRM2 - GPIO37 (EXT_IO1)
SSPTXD2 - GPIO13 (GPIO13)
SSPRXD2 - GPIO88 (USB_OC#)

SSP3-CAN:
SSPSCLK3 - GPIO52 (GPIO52)
SSPSFRM3 - GPIO105/GPIO108 (неиспользованные GPIO)
SSPTXD3 - GPIO35 (EXT_IO0)
SSPRXD3 - GPIO41 (USB_DET)

Возникает вопрос: если перепрограммировать выходы USB USB_OC# (обратная связь по превышению токов питания) и USB_DET (настройка хост-клиент) какие-нибудь проблемы следует ожидать (для самого USB [USB-клиент не нужен])?
Может быть, подскажете, где надо будет править для GPIO Alternate Functions?

P.S. Когда-то еще при освоении Тиона компилил с поддержкой SPI. Навскидку посмотрел содержимое /sys/class/spi-master и обнаружил там только 2 SPI. Так и должно было бы быть?
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: SSP (SPI) на Тионе270
« Ответ #6 : 22 Ноября, 2011, 18:17:13 »

> Возникает вопрос: если перепрограммировать выходы USB USB_OC# (обратная связь по превышению токов питания)
> и USB_DET (настройка хост-клиент) какие-нибудь проблемы следует ожидать (для самого USB [USB-клиент не нужен])?

Ожидать стоит, так как не известно в каком состоянии окажутся входы (например, USB_OC#).
Варианты решения: (1) вывод этого функционала на другой вывод, или (2) настройка
соотв. контроллера не использовать его, с USB_OC#, насколько я помню, такое можно сделать.

> Может быть, подскажете, где надо будет править для GPIO Alternate Functions?

В U-Boot, в include/configs/tion270.h
CFG_GAFR#_U_VAL, CFG_GAFR#_L_VAL, CFG_GPSR#_VAL, CFG_GPDR#_VAL
если у вас уже есть JTAG-адаптер.

Но это же можно сделать для пробы в Linux, потом уже рабочий вариант в U-Boot.

> посмотрел содержимое /sys/class/spi-master и обнаружил там только 2 SPI. Так и должно было бы быть?

Потому что в arch/arm/mach-pxa/tion270.c указаны только
platform_device pxa_ssp и pxa_ssp2. Вам надо будет добавить pxa_ssp3
Записан