-
- Вариантов тьма. Ralex(782 знак., 14.06.2023 16:00)
- Я уже от разочарования думал несколько раз на интервале поочерёдно
опрашивать все каналы по готовности, забирая последний результат.
Но такой способ совсем не нравится. Nikolay_Po предложил вариант со
спячкой, попрообую его реализовать. - Dingo(15.06.2023 05:18)
- Да это единственно верный вариант. Проходил похожее. - Nikolay_Po(15.06.2023 15:46)
- Я уже от разочарования думал несколько раз на интервале поочерёдно
опрашивать все каналы по готовности, забирая последний результат.
Но такой способ совсем не нравится. Nikolay_Po предложил вариант со
спячкой, попрообую его реализовать. - Dingo(15.06.2023 05:18)
- Частота выставления готовности в несколько раз выше требуемой частоты поступления сэмплов. - т.е. оцифровка идет быстрее, чем требуется? О какой частоте вообще идет речь? Может там и прерывания не нужны, все опросом можно решить? - reZident(14.06.2023 12:05)
- Что за АЦП? Я командами PDN/SYNC по SPI синхронизировал. Увеличьте
время выборки, если частота готовности много больше требуемой. - Nikolay_Po(14.06.2023 12:02)
- ADS1255/56. Надо 2 кГц(или выше), встроенный мультиплексор успевает
только до ~1400 Гц переключаться. Сейчас пробую на "по умолчанию"
30 кГц, но похоже на то, что события слишком быстро
происходят/обработчик длинный. - Dingo(14.06.2023 12:09)
- Тю. В документации всё написано. По готовности последнего АЦП,
даёте команду на остановку SYNC всем сразу. Они затыкаются.
Переключаете каналы, хоть всем сразу, хоть поштучно командами
записи регистра мультиплексора. Когда переключения выполнены, даёте
WAKEUP, всем сразу. Всё, пошла синхронная выборка. И уже после этих
манипуляций, забираете от каждого камня его предыдущий резултьат
преобразования выборки. Повторяете. Nikolay_Po(259 знак., 14.06.2023 12:16)
- А потом в разнобой забираю данные? Тактовые не точно совпадают.
Хотя... При такой синхронизации срабатывание любого будет значить,
что к моменту завершения обработки прерывания будут все готовы. Вы
про это? - Dingo(14.06.2023 12:16)
- Только тайминги между команд соблюдайте. Там нужно вдумчиво
прочитать и разложить - местами, нужны существенные, относительно
тактовой SPI, паузы. - Nikolay_Po(14.06.2023 12:27)
- Да, RDATA need 50 tau. - Dingo(14.06.2023 12:28)
- Там ещё есть, может, поменьше, но без специального оформления пауз
может быть нельзя. - Nikolay_Po(14.06.2023 12:39)
- Читал, помню; спасибо, что обратили внимание. - Dingo(14.06.2023 12:44)
- Там ещё есть, может, поменьше, но без специального оформления пауз
может быть нельзя. - Nikolay_Po(14.06.2023 12:39)
- Да, RDATA need 50 tau. - Dingo(14.06.2023 12:28)
- Да, плевать на тактовые модулей. Стартуем по команде, а не
автоматически. Забирать в разнобой. Лучше, всё же, по срабатыванию
последнего. А то дадите SYNC, когда он не завершил - и кто знает,
что будет с результатом. Впрочем, если кварцы нормальные, к концу
выборки разбежка будет в пределах 24% от одного внутреннего цикла
1/4 тактовой АЦП. Nikolay_Po(174 знак., 14.06.2023 12:23)
- 1) стартуем по команде. 2) ждём DRDY от всех, можно по ИЛИ с
проверкой, что все взведены. 3) опрашиваем в удобном порядке(с
манипуляциями CS) 4) спим до следующего преобразования. ? - Dingo(14.06.2023 12:28)
- Зависит от тербуемой скорости выборки. Для максимальной скорости: Nikolay_Po(510 знак., 14.06.2023 12:38)
- 1) стартуем по команде. 2) ждём DRDY от всех, можно по ИЛИ с
проверкой, что все взведены. 3) опрашиваем в удобном порядке(с
манипуляциями CS) 4) спим до следующего преобразования. ? - Dingo(14.06.2023 12:28)
- Только тайминги между команд соблюдайте. Там нужно вдумчиво
прочитать и разложить - местами, нужны существенные, относительно
тактовой SPI, паузы. - Nikolay_Po(14.06.2023 12:27)
- А потом в разнобой забираю данные? Тактовые не точно совпадают.
Хотя... При такой синхронизации срабатывание любого будет значить,
что к моменту завершения обработки прерывания будут все готовы. Вы
про это? - Dingo(14.06.2023 12:16)
- Тю. В документации всё написано. По готовности последнего АЦП,
даёте команду на остановку SYNC всем сразу. Они затыкаются.
Переключаете каналы, хоть всем сразу, хоть поштучно командами
записи регистра мультиплексора. Когда переключения выполнены, даёте
WAKEUP, всем сразу. Всё, пошла синхронная выборка. И уже после этих
манипуляций, забираете от каждого камня его предыдущий резултьат
преобразования выборки. Повторяете. Nikolay_Po(259 знак., 14.06.2023 12:16)
- ADS1255/56. Надо 2 кГц(или выше), встроенный мультиплексор успевает
только до ~1400 Гц переключаться. Сейчас пробую на "по умолчанию"
30 кГц, но похоже на то, что события слишком быстро
происходят/обработчик длинный. - Dingo(14.06.2023 12:09)
- Вариантов тьма. Ralex(782 знак., 14.06.2023 16:00)