Подскажите пож-та, пытаюсь тактировать SPI по своему алгоритму:
1. настроил на таймере Output Compare на 1 секунду и режимом Toggle on match, на выходе получаю секундный меандр
2. соединил выход таймера с пином тактирования SPI, по идее теперь SPI должен сдвигать свой регистр с частотой в 1 секунду
3. пытаюсь передать 1 бит 01010100 в SPI и жду на выходе мигание светодиодом 3 раза с задержкой 1 секунда
----- проблема -------
1. диод мигает не с секундной задержкой, о несколько дольше.
2. передача повторяется циклично, т.е. передачей одного байта дело не заканчивается, он снова и снова передается, хотя HAL_SPI_Transmit я делаю сразу после инициализации, т.е. не в цикле.
Спасибо.
STM32: Свое тактирование SPI
STM32: Свое тактирование SPI
- Вложения
-
- spi.png
- (187.89 КБ) 400 скачиваний
- Реклама
Re: STM32: Свое тактирование SPI
В Кащенко день открытых дверей?
Re: STM32: Свое тактирование SPI
Ну зачем Вы так, все не так плохо.dosikus писал(а):В Кащенко день открытых дверей?
Данная реализация нужна только для визуальной проверки. Нет в наличие осциллографа.
По сути SPI - это сдвиговый регистр, размер я указал 8bit, помещаем туда эти самые 8bit, и на каждом такте выщелкивается на пин очередной бит.
Re: STM32: Свое тактирование SPI
Ну тогда так, - вы уверены, что подавая на выход тактовой SPI затактируете модуль SPI? Не торопитесь с ответом...
Re: STM32: Свое тактирование SPI
почему на ВЫХОД, SPI засетапен как slave. Соответственно SCK это вход, тактируется от мастера. SPI мастера - нет, есть только тактирование.dosikus писал(а):Ну тогда так, - вы уверены, что подавая на выход тактовой SPI затактируете модуль SPI? Не торопитесь с ответом...
Поэтому такты от таймера можно трактовать как такты от мастера.
не уверен, поэтому и спрашиваю совета, в чем накосячилdosikus писал(а):2. соединил выход таймера с пином тактирования SPI, по идее теперь SPI должен сдвигать свой регистр с частотой в 1 секунду
- Реклама
Re: STM32: Свое тактирование SPI
Ну то что модуль slave , надо было сразу писать а не в иероглифах калокуба ставить.
А то такое надумалось.
Если подождете до завтра, испытаю . Но не уверен что на такой низкой частоте будет работать.
Естественно все будет без калокуба.
И сразу вопрос- на хрена такие извращения?
А то такое надумалось.
Если подождете до завтра, испытаю . Но не уверен что на такой низкой частоте будет работать.
Естественно все будет без калокуба.
И сразу вопрос- на хрена такие извращения?
Re: STM32: Свое тактирование SPI
Буду признателен за результат испытаний.dosikus писал(а):Если подождете до завтра, испытаю . Но не уверен что на такой низкой частоте будет работать.
Естественно все будет без калокуба.
И сразу вопрос- на хрена такие извращения?
Вся тема завертелась из-за генерации видео сигнала, там в качестве тактирующего таймера был gate таймер выдающий на выход тактовый pwm на вход spi, все гналось через dma, фактически spi биты были видео пикселами, навскидку ничего не заработало. Поэтому разбил задачу на несколько простых и вот - пытаюсь разобраться с SPI и DMA.
Основная трудность на данном этапе - HAL, на Periph-е все как-то проще, сконфигурировал spi, dma, сказал откуда и куда, сделал enable для одного и второго и все, остальное делает проц (мне нужно гнать циклично данные из массива в периферию).
На hal не прослеживается такого четкого регламента, насколько я понял, в кубе конфигурируешь spi,dma и с помощью hal_spi_transmit_dma запускаешь настроенную в кубе цепочку (spi+dma). Т.е. на перифе
DMA_Cmd(DMA_StreamX,ENABLE); SPI_Cmd(SPIX, ENABLE); на hal - hal_spi_transmit_dma
Re: STM32: Свое тактирование SPI
Здесь на VGA правда для 103 - http://www.artekit.eu/vga-output-using-a-36-pin-stm32/
Здесь на STM32L https://sourcegate.wordpress.com/catego ... discovery/
Здесь на STM32L https://sourcegate.wordpress.com/catego ... discovery/


