Комментарии 10
Программное обеспечение проекта организовано по блочно-модульному принципу.
Звучит немного архаично для программного обеспечения даже микроконтроллера. А что считается за программный блок в вашем случае?
Коллега! Я с радостью приму Вашу помощь в разработке ПО для проекта любыми неархаичными методиками.
В 1989 году в рамках курса по микропроцессорной технике меня ознакомили с модульным принципом организации ПО на примере ОС UNIX. С тех пор я стараюсь его придерживаться.
Модуль в этой концепции выполняет одну функцию. Блок выполняет требования назначения, для реализации которых может содержать несколько модулей. Блок удобно реализовать неким "ядром" с интерфейсом связи с подчинёнными модулями и другими функциональными блоками для создания системы, которую тоже можно рассматривать как блок и т.д.
Поскольку, помощи в создании ПО я не получал, то действовал, как меня учили в институте
Да вы не обижайтесь. Я так и понял что вы действуете как учили. И это правильно. Я спросил про блоки главным образом потому что что мои embedded programmers не могут ясно изложить, или разложить, физическую архитектуру программного обеспечения на блоки и модули. На инструментальной или системном уровне модулем можно назвать сущность с минимальным числом детерминированых связей выполняющую определенную функцию. Изъятие такой сущности не должно приводить к нарушению функционирования системы.
Радиотракт трансивера и синтезатор «развязаны» по питанию от MCU через дроссели
Не уверен на сколько это правильно, но в своих схемах всегда ещё и на VDD сразу около МК помимо ставлю дроссель, что бы ничего не расползалось по плате. В единичных поделиях это не напрягает. Но специально каких то измерений не делал. В старой бытовой технике схемы которые люблю рассматривать, некоторые цифросигналы уходящие "в аналог" ещё и специально замедляли RC или 20-30 Ом.
Во вторник будет заключительная часть, где описано, как я потратил год на развязки и экранирование :(
Из забавного: по требованиям ST развязка по питанию быть должна, но для того, чтобы развязать VDD от помехи от PLL на выводе VDDA
Vdd от PLL, не наоборот? Просто всегда Vdd воспринимается как наиболее шумный домен, а на VDDA висит АЦП, в малоногих еще и Vref, и подсознательно это всегда воспринимается как что-то, что нужно фильтровать от Vdd, а не наоборот. Ваше сообщение заставило над этим задуматься...
Вот картинка из datasheet от stm32f411. Весь "тактовый домен", включая PLL, запитан от VDDA:
![](https://habrastorage.org/getpro/habr/upload_files/03d/72a/b10/03d72ab10f77fd48c9e0414ca80be847.png)
Ещё: между VDDA и VSSA по требованиям ST должны стоять "в параллель" керамические конденсаторы 1 мкФ и 0.1 мкФ, обычно так делают для развязки по питанию именно PLL
Не так давно натолкнулся на интересное видео "Земля в печатных платах...". Анотация к видео:
"Перевод интереснейшей лекции Рика Хартли, которую он делал для компании Altium. Рик рассказывает о природе электрической энергии, о её поведении на высоких частотах и о том, как проектировать печатные платы, зная и понимая как перемещается и где находится энергия. В лекции очень много практической инфы и совершенно нет никакого загруза матаном, так что она вполне может быть полезна и начинающим и продвинутым радиолюбителям."
Ролик длится два часа, но я смотрел его как самый захватывающий блокбастер, многократно останавливая и пересматривая самые интересные моменты! И, хотя вся "физическая кухня" рассказанная в видео была мне известна, автор буквально заставил взглянуть на мир по новому.
Надеюсь ссылка на этот ролик будет вам полезна.
Проект «Селенит». Часть 5: Контроллер, встроенное ПО и квадратурный модулятор