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

 
 
 
Reply to this topicStart new topic
> SPI в ChibiOS (stm32f4), не могу понять про назначение пинов ...
billidean
сообщение Oct 6 2014, 05:50
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925



Добрый день всем.
Разбираю проект testhal/STM32F4xx/SPI.
В целом все понятно. Настраиваем SPI-контроллер (структура, порт, ...).
НО совсем непонятен один вопрос:
1. Инициализируем структуру
Код
static const SPIConfig hs_spicfg = {
  NULL,
  GPIOB,
  12,
  0
};
Здесь видно, что для SPI-контроллера будет использован порт B, где вывод 12 будет использован как CS(ЧипСелект)
2. В одном из потоков будет использоваться SPI-контроллер 2, и он будет использовать вышеуказанную структуру SPIConfig:
Код
spiStart(&SPID2, &hs_spicfg);

3. В майне есть такие строки:
Код
  /*
   * SPI2 I/O pins setup.
   */
  palSetPadMode(GPIOB, 13, PAL_MODE_ALTERNATE(5) |
                           PAL_STM32_OSPEED_HIGHEST);       /* New SCK.     */
  palSetPadMode(GPIOB, 14, PAL_MODE_ALTERNATE(5) |
                           PAL_STM32_OSPEED_HIGHEST);       /* New MISO.    */
  palSetPadMode(GPIOB, 15, PAL_MODE_ALTERNATE(5) |
                           PAL_STM32_OSPEED_HIGHEST);       /* New MOSI.    */
  palSetPadMode(GPIOB, 12, PAL_MODE_OUTPUT_PUSHPULL |
                           PAL_STM32_OSPEED_HIGHEST);       /* New CS.      */
  palSetPad(GPIOB, 12);
И вот здесь я в ауте... Как SPI-контроллер 2 узнает, что пин 13 порта В должен использоваться именно как SCK??? И про все остальные пины также.
А если мне нужно будет другие пины назначить на SCK или на MOSI? Например на пине 14 чтобы был SCK, а на 13 MISO.

Просмотрел все файлы ОСи и как-то не нашел нигде этого момента, как SPI-контроллеру указать какой именно пин за какую функцию должен отвечать (SCK, MISO, MOSI). Только про CS описано, что он указывается в структуре SPIConfig.

ПЛЗ. Помогите разобраться.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Oct 6 2014, 09:18
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(billidean @ Oct 6 2014, 11:50) *
Как SPI-контроллер 2 узнает, что пин 13 порта В должен использоваться именно как SCK???

Это аппаратные ноги SPI2. Они жёстко приделаны.
Когда вы конфигурируете эти ноги под альтернативную функцию SP (PAL_MODE_ALTERNATE(5)), они подключаются к периферийному устройству SPI2.
Произвольные ноги в аппаратном SPI использовать нельзя.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
billidean
сообщение Oct 6 2014, 09:40
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925



Т.е. получается, когда указываем, что порт В (например) будет использоваться SPI-контроллером, то к этому контроллеру SPI можно подключить только определенные ноги порта В, конечно при условии использования АФ(5)?

Тогда не подскажите, где про эти взаимосвязи выводов портов и SPI-контроллеров (да и не только SPI, но и всех остальных) посмотреть? Т.е. где узнать, какие выводы портов будут задействованы при подключении всяких контроллеров периферии?
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Oct 6 2014, 09:43
Сообщение #4


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

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Как ни странно, в даташите на контроллер. Не в reference maulal.
Go to the top of the page
 
+Quote Post
billidean
сообщение Oct 6 2014, 10:17
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925



Что-то как-то в ДШ я так и не глянул.

Спасибо большое за помощь.
Go to the top of the page
 
+Quote Post
billidean
сообщение Oct 10 2014, 06:16
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925



Еще один вопрос.
Кто может подсказать, как во время отладки в ChibiStudio контролировать состояние портов?
У меня есть возможность делать это снаружи анализатором, но хотелось бы это делать прям в Студии.
Go to the top of the page
 
+Quote Post
billidean
сообщение Oct 11 2014, 03:30
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925



Всё, нашел.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 10:03
Рейтинг@Mail.ru


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