Миландр
http://forum.milandr.ru/

Убрать паузу между словами SSP/SPI
http://forum.milandr.ru/viewtopic.php?f=33&t=3691
Страница 1 из 1

Автор:  LinuxFanatic [ 2017-мар-25 18:26 ]
Заголовок сообщения:  Убрать паузу между словами SSP/SPI

Делаю проект на базе K1986BE92QI, нужно управлять устройством, которое требует строгой длительности и последовательности единиц и нулей (их может быть три подряд 1/0 или единичные 1/0). Работаю через SSP/SPI, правильной длительности бита я добился, на приведенном рисунке показано как я использую 16-битные слова SSP_SendData(MDR_SSP2, 0x5555).

Так вот в рамках этих 16-ти бит всё идеально. А вот между этими пакетами я вижу паузу, которая убивает полностью всю задумку. Как только SSP_FLAG_BSY становится 0, я пишу пачку из четырех 0x5555. У меня была надежда что я смогу подкачивать туда новые слова из большого массива, и так выдать длинную последовательность, и ни одного лишнего бита.

Нельзя допустить лишний бит, поэтому сразу отказался от PWM, а realtime-управление не знаю, возможно ли? Еще мысль - UART, но надо нулевой уровень между большими паузами, а у UART единица висит, и к тому же старт-бит всё портит, его нельзя ведь отключить?

Посоветуйте, пожалуйста, где настраивается эта пауза между словами SSP/SPI? Я в FIFO сразу N слов помещаю, по идее не требуется крутить такты программы перед выдачей следующего слова.
А может есть иной способ решить задачу?

Вложения:
Комментарий к файлу: Пауза SPI
ssp_pause.png
ssp_pause.png [ 3.61 КБ | Просмотров: 2216 ]

Автор:  prostoRoman [ 2017-мар-27 08:51 ]
Заголовок сообщения:  Re: Убрать паузу между словами SSP/SPI

Наверное лучше работать по RFF/RNE флагам.
Ещё нужно выбрать самый простой режим работы SPI - Моторола.

Автор:  vasili [ 2017-мар-27 09:35 ]
Заголовок сообщения:  Re: Убрать паузу между словами SSP/SPI

LinuxFanatic писал(а):
... А может есть иной способ решить задачу?

Если Вам нужен "Кусок Меандра из N импульсов" :
На одном таймере - 50% шим, на другом таймере единичный строб длиной N импульсов синхронно с шим (например с помощью CCR,CCR1).
Выходы таймеров объединить внешним вентилем.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/