billidean 0 6 октября, 2014 Опубликовано 6 октября, 2014 · Жалоба Добрый день всем. Разбираю проект 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. ПЛЗ. Помогите разобраться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 14 6 октября, 2014 Опубликовано 6 октября, 2014 · Жалоба Как SPI-контроллер 2 узнает, что пин 13 порта В должен использоваться именно как SCK??? Это аппаратные ноги SPI2. Они жёстко приделаны. Когда вы конфигурируете эти ноги под альтернативную функцию SP (PAL_MODE_ALTERNATE(5)), они подключаются к периферийному устройству SPI2. Произвольные ноги в аппаратном SPI использовать нельзя. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
billidean 0 6 октября, 2014 Опубликовано 6 октября, 2014 · Жалоба Т.е. получается, когда указываем, что порт В (например) будет использоваться SPI-контроллером, то к этому контроллеру SPI можно подключить только определенные ноги порта В, конечно при условии использования АФ(5)? Тогда не подскажите, где про эти взаимосвязи выводов портов и SPI-контроллеров (да и не только SPI, но и всех остальных) посмотреть? Т.е. где узнать, какие выводы портов будут задействованы при подключении всяких контроллеров периферии? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 6 октября, 2014 Опубликовано 6 октября, 2014 · Жалоба Как ни странно, в даташите на контроллер. Не в reference maulal. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
billidean 0 6 октября, 2014 Опубликовано 6 октября, 2014 · Жалоба Что-то как-то в ДШ я так и не глянул. Спасибо большое за помощь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
billidean 0 10 октября, 2014 Опубликовано 10 октября, 2014 · Жалоба Еще один вопрос. Кто может подсказать, как во время отладки в ChibiStudio контролировать состояние портов? У меня есть возможность делать это снаружи анализатором, но хотелось бы это делать прям в Студии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
billidean 0 11 октября, 2014 Опубликовано 11 октября, 2014 · Жалоба Всё, нашел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться