В продолжение темы. Когда изделие уже готовилось к выпуску первой
партии в продажу, вдруг обнаружился неприятный баг. С вероятностью
примерно 10% при включении устройство начинало принимать помехи.
Разбирался почти неделю. Оказалось, что не все так просто с высокой
скоростью захвата данных с пинов через DMA. Корректный захват
возможен лишь с частотой не менее, чем в 4,5 раза ниже частоты
ядра. Иначе DMA вываливает ошибку переполнения (overrun DMA) и
данные имеют пропуски. Причем, непонятно от чего результат может быть допустимым для расчета, а может быть нет. Пока частично решил проблему путем кратковременного разгона ядра на время захвата данных до 150 мипс (то есть в 1,5 раза выше даташита). Кроме этого, на время захвата увел код на выполнение repeat-nop, пытаясь выключить потребность ядра в шине данных. Хотя не очень понятно влияет ли это на диаграмму работы ядра с шиной. Не хочется опускать частоту дискретизации АЦП ниже нынешних 33,33 МГц, то есть только в 3 раза ниже документированной максимальной частоты ядра... Грел феном МК на ощупь примерно до 50 градусов СРЕДЫ (сам МК ощутимо теплее). Сбоев не наблюдал. Будем дальше посмотреть... )))