PriBoris 0 20 апреля, 2014 Опубликовано 20 апреля, 2014 (изменено) · Жалоба Дано 1) процессор ADSP-BF548, есть 2 свободных SPORT 2) ацп ADS1278, работают все 8 каналов, режим TDM, формат FRAME SYNC, тактируется от 25MHz (картинка 1) 3) гальваническая развязка Задача Подключить используя минимум дополнительных вещей Здесь видится несколько трудностей и мешающих взаимозависимостей: 1) На SCLK нужно непрерывно подавать тактовый сигнал 25 или 12.5Мгц (меньше уже нельзя т.к. тогда не успеть все 8 каналов вычитать) На FSYNC ацп нужно подавать строб чтения каждые 512(или 256) тактов SCLK 2) Очевидно придется использовать режим SPORT Multichannel mode. Этот режим имеет кучу взаимозавязок между приёмником и передатчиком, поэтому придется использовать оба доступных SPORT, один тактирует, другой принимает 3) ацп даёт задержку между FSYNC и DOUT до 20нс (tMSBPD) т.е. почти пол периода 25MHz, следовательно лучше считывать данные на частоте 12.5MHz 4) внутренняя частота периферии процессора 131.25MHz, следовательно 25MHz "изнутри"-SPORT не получить, поэтому 25MHz будет браться от "внешнего" источника (кварцевого генератора) В результате всех измышлений родилась вот такая схема (картинка 2) Деление частоты требует 1 триггер - возьму из одногейтовой логики (SN74LVC1G... в SOT23) Может что-то не учел ? Может лучше как-то по другому ? Главное чтобы без ПЛИС. ЗЫ Для меня это семейство новое, но раньше много работал с MsBSP в TMS320 и поэтому примерно представляю физику процесса. SPORT после изучения мануалов показался менее гибким чем MsBSP, поэтому закрались сомнения. Изменено 20 апреля, 2014 пользователем PriBoris Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 52 20 апреля, 2014 Опубликовано 20 апреля, 2014 · Жалоба перестарались что-то со схемой подключения, особенно с с клоками и fsync который зачем-то туда-сюда через развязку таскаются. там же обычный SPI, его кстати и использовать даже можно, а не SPORT. АЦП дергает за прерывание блэкфин, тот в прерывании настраивает DMA на 24 байта и данные забираются по SPI. чтобы процессор не дергать на каждый сэмпл АЦП, у SPORT есть multichannel режим когда от единственного fsynca забирается сколько надо подряд данных (см. регистр SPORTx_MCMC). так что можно обойтись лишь одним SPORTом и 4мя каналами развязки, клоки 25МГц последовательному порту блэкфина не нужны их можно целиком со стороны АЦП оставить, а RSCLK блэкфина могут быть выходом для SCLK ацп. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
PriBoris 0 21 апреля, 2014 Опубликовано 21 апреля, 2014 · Жалоба перестарались что-то со схемой подключения, особенно с с клоками и fsync который зачем-то туда-сюда через развязку таскаются. там же обычный SPI, его кстати и использовать даже можно, а не SPORT. АЦП дергает за прерывание блэкфин, тот в прерывании настраивает DMA на 24 байта и данные забираются по SPI. чтобы процессор не дергать на каждый сэмпл АЦП, у SPORT есть multichannel режим когда от единственного fsynca забирается сколько надо подряд данных (см. регистр SPORTx_MCMC). так что можно обойтись лишь одним SPORTом и 4мя каналами развязки, клоки 25МГц последовательному порту блэкфина не нужны их можно целиком со стороны АЦП оставить, а RSCLK блэкфина могут быть выходом для SCLK ацп. SPI и прерывания на каждый сэмпл это очень накладно Клоки и fsync таскаются туда-сюда т.к. задержка в изоляторе только в одну сторону 18...32нс групповая плюс 10нс разброс между каналами (учитывая что прибор с расширенным температурным диапазоном мне показалось это важным) - все эти цифры уже не совместимы с 12.5Mhz, а тем более с 25Mhz SPORT на приём как раз и будет работать в multichannel режиме, на один fsync приходят 8 слов по 24 бита, это понятно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 52 21 апреля, 2014 Опубликовано 21 апреля, 2014 · Жалоба может просто развязку более подходящую подобрать тогда, среди тексасовских ISO74x вроде есть с <10нс задержками. ну или поставить какой-нибудь самый мелкий МК между блэкфином и АЦП, который для блэкфина будет полноценным spi мастером, чтобы все критичные по задержкам сигналы через развязку в одну сторону направлены были, чтобы групповая задержка не мешала. какой-нибудь MSP430F5131 или STM32F0 будет дешевле пары каналов развязки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 24 апреля, 2014 Опубликовано 24 апреля, 2014 · Жалоба SPI и прерывания на каждый сэмпл это очень накладно Клоки и fsync таскаются туда-сюда т.к. задержка в изоляторе только в одну сторону 18...32нс групповая плюс 10нс разброс между каналами (учитывая что прибор с расширенным температурным диапазоном мне показалось это важным) - все эти цифры уже не совместимы с 12.5Mhz, а тем более с 25Mhz SPORT на приём как раз и будет работать в multichannel режиме, на один fsync приходят 8 слов по 24 бита, это понятно Что-ж Вы от тексаса отказались? Пару лет назад делал очень похожую схему: тоже подключение 8-канального АЦП (только ADS1298), тоже через ADUM-ы, только частота пониже (~2МГц) и CPU техасовский - OMAP-L137. Подключал на McASP (аналог McBSP, только многоканальный). Только я задержку ADUM обратил себе во благо - на этих задержках как раз и построил интерфейс. Т.е. - без задержек фронт тактового сигнала попадал как раз на момент переключения линии данных, а за счёт неё фронт такта сдвигался на неск. десятков нс и попадал на установившееся значение бита данных. Так что - обошёлся только одним McASP и одним набором ADUM-ов. А сдвиг сигналов управления относительно сигналов данных сделал выбрав разные ADUM-ы для сигналов данных и сигналов управления с разными задержками. Прерывания от DMA обслуживающего McASP у меня не на каждый сэмпл конечно, а на блок из 64 сэмплов. И один этот McASP обслуживает сразу 3 таких ADS. Так что - считываются сразу 3*8=24 канала АЦП одним McASP. И DMA с автоинициализацией. И ещё этот-же McASP обслуживает исходящий поток на 2-канальный ЦАП. И всё это - на одном McASP + 2 канала DMA. И конфигурится эта связка только один раз - при старте работы. Так что - очень хорошая это вещь - McASP :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
PriBoris 0 25 апреля, 2014 Опубликовано 25 апреля, 2014 (изменено) · Жалоба ну или поставить какой-нибудь самый мелкий МК между блэкфином и АЦП, который для блэкфина будет полноценным spi мастером, чтобы все критичные по задержкам сигналы через развязку в одну сторону направлены были, чтобы групповая задержка не мешала. какой-нибудь MSP430F5131 или STM32F0 будет дешевле пары каналов развязки. А вот действительно, на цену я и не посмотрел. Изоляторы на большую скорость стоят недешево. Тогда уж не МК, а самый простой max3000a в 44-ногом корпусе. Им выгребать по SPI и преобразовывать в SPORT проще чем МК. Жалко что появляется лишняя операция по флэшеванию, но в целом идея кажется оптимальной, спасибо! Что-ж Вы от тексаса отказались? ... Прерывания от DMA обслуживающего McASP у меня не на каждый сэмпл конечно, а на блок из 64 сэмплов. И один этот McASP обслуживает сразу 3 таких ADS. ... Так что - очень хорошая это вещь - McASP :) Ну обсуждать почему от тексаса отказался - это целая тема с холиворами и метанием нечистотами друг в друга. Лучше не надо =) Запустил SPORT+DMA , всё нормально работает со всеми блочными автоинициализациями, всё как у McBSP, просто настройки непривычные. Изменено 25 апреля, 2014 пользователем PriBoris Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться