- Помогите нерусей понять IBAH(551 знак., 22.06.2023 14:54 - 15:04, MCU, полностью)
- Господа-бояре, кто работал с интерфейсом внешней памяти у
STM32F407? Укажите дураку, запутавшемуся в 3 соснах, сигнал
FSMC_CLK это вход или выход? Не могу найти место в datasheet где
это явно указано. reZident(1 знак., 05.06.2023 15:42, MCU, ссылка, полностью)
- Кто как переходит из загрузчика в приложение (Cortex-M)? Хочу более
менее универсальный вариант, чтобы и стек настраивался, и чтобы для
разных компиляторов, и чтобы с включением/выключением прерываний
была определённость. Что нашёл кто как делает: yни(120 знак., 22.06.2023 08:30, MCU, ссылка, ссылка, полностью)
- И ещё один с magic'ом yни(1 знак., 22.06.2023 12:05, ссылка)
- мне кажется не получится, М0, М3, М4, М7 сильно разные. М0 не умеет
переопределять таблицу векторов, надо ее копировать в RAM, у других
не надо. М7 со своими шинами и кэшами, там вообще отдельная магия.
В общем делал под все, основа одна, но именно переход везде разный.
А еще от хранилища прошивки зависит, внутренняя флэш, внешняя и
т.д. - AVF(22.06.2023 09:59)
- Да, так и есть. В OpenBLT, например, есть отдельные порты под это
всё, но почему-то указатель стека не настраивается перед переходом,
хотя не всё смотрел. Не знаю задумано так или что. Ещё ищу способ
минимальных изменений в проекте приложения, чтобы удобно было
отлаживать. Думается, что всё-таки надо отлаживать совместно с
загрузчиком. В принципе, можно и без него, но тогда надо править
файлы, которые изменять не желательно. - yни(22.06.2023 10:07)
- Ещё один интересный вариант yни(1 знак., 22.06.2023 09:17, ссылка)
- вот так: SciFi(692 знак., 22.06.2023 09:15)
- Хочу в VSCode+STM32 при отладке прыгать на смещённую таблицу
векторов. Как это сделать по аналогии с CubeIDE, где можно в
проекте для конфигурации отладчика указать адрес таблицы (поле
Specify vector table (hex))? - yни(16.06.2023 12:08, MCU, полностью)
- Решил взяться за старую задачку. Пиковый детектор (асимметричный
ФНЧ), в целых числах без потери точности. Чем больше думаю на эту тему, тем больше прихожу к выводу что это
невозможно. IBAH(456 знак., 19.06.2023 18:17, MCU, полностью)
- Какая сволочь писала С-компилятор под IAR? st256(447 знак., 18.06.2023 12:39, MCU, полностью)
- не в тему, так, разглагольствования: кстати если вспомнить
ассемблер х86, то тоже вроде регистры общего назначения, но у
каждого таки свои функции были в контекстах команд - RED_DRAGON(19.06.2023 22:45)
- Думаю IAR следует рекомендациям ARM. При вызове функций, регистры
R0..R3 даются в пользование вызываемой функции. Они же используются
и для передачи параметров. Заботиться о сохранеинии этих регистров
должна вызывающая функция. - BlackMorda(19.06.2023 19:55)
- Help->Development guide->Assembler language interface - Bill(19.06.2023 08:08)
- Проблема возникает потому что в вызывающей функции в регистрах
лежали какие-то полезные значения, которые asm вставка или функция
перетерла. Все это можно переписать не замарачиваясь сохранением
регистров вообще. Для этого звать свой asm или какую другую
эзотерику вызовом отдельной void-функции. Между вызовами отдельных
void-функций, втч asm-кода ничего сохранять не надо, никаких
регистров. Компилятор не предполагает сохранение рон-ов между
функциями которые их не RxTx(11 знак., 18.06.2023 22:35)
- У верблюда спросили: почему у тебя шея кивая? - А что у меня
прямое? - В ответ спросил верблюд? - Kpoк(18.06.2023 21:16)
- Мнение насчет ABI от самого ARM. IAR, скорее всего, ни при чем. Evgeny_CD(1 знак., 18.06.2023 15:30, ссылка)
- Я заходя в прерывание не сохраняю регистры в стеке. За меня все
делает IAR. Sl(106 знак., 18.06.2023 15:18)
- "Читайте доки, они рулез" - LightElf(18.06.2023 14:31)
- Кто не в состоянии найти папку arm/doc/ или хотя бы кнопку
<F1> нажать? - ЫЫyкпy(18.06.2023 13:41)
- r11, r7 описаны как frame pointer, syscall number. хотя вроде как
по р12 general purpose registers. - RED_DRAGON(18.06.2023 13:26)
- Господа, делаем приблуду на FPGA. Заказчик требует туда вводить
данные на скорости 10Гбит/с. Я не согласен, считаю это завышенными
требованиями, по разным причинам. Например, что вразумительную
обработку на таких скоростях получить невозможно. Да и такой поток
данных с одного нормального процессора получить нельзя. Поправьте,
если ошибаюсь. - st256(15.06.2023 15:43, MCU, полностью)
- Ну например целеуказание о сверхзвуковой вундервафле. Почему нет? - max(15.06.2023 22:55)
- Разговор ни о чем. Необходимо озвучивать цели, задачи и камни. А
заказчику очень полезно приводить несколько существующих решений от
чего он отталкивается дабы исполнитель мог с ними ознакомиться и
понять почему скажем делают так а не иначе. - RxTx(15.06.2023 22:44)
- The AD9213 from Analog Device is a single 12-bit, 10.25 GSPS RF
analog-to-digital converter (ADC) with a 6.5 GHz input bandwidth. USSR(81 знак., 15.06.2023 21:19,
, ссылка)
- Задачи разные бываю , 10 Гб в 128 бит шину это 80 МГц, вполне можно
работать, но памяти надо много - garry_(15.06.2023 17:17)
- Несжатый видеопоток в разрешении 4K при 60 кадрах в секунду уже
вылазит за 10Гбит/с. А жмут его в реальном времени, в том числе и
софтверно. - LightElf(15.06.2023 17:04)
- радар с АФАР. либо слежение по видеокамерам за быстрым объектом. - Alex68(15.06.2023 16:37)
- без ТЗ бессмысленный разговор. Не оговорено что за входные данные,
входной физический интерфейс, вид обработки, допустимая задержка,
выходная информация и выходной интерфейс. можно расходиться. - Zoro(15.06.2023 16:11)
- А за FPGA что висит - intel core i3? - Eddy_Em(15.06.2023 15:46)
- Не могу совладать с опросом трёх АЦП. У МК есть только два SPI,
посему SS сделал дрыг-ногой. Хотелось бы использовать готовые
модули без изменений, но вот проблема - тактовые генераторы
отличаются частотой и nDRDY "плывут" по времени относительно друг
друга. то есть битовые маски могут быть 111, 101+010, 100+011(для
примера). Частота выставления готовности в несколько раз выше
требуемой частоты поступления сэмплов. Радикально - тактировать все
три АЦП от одного генератора. А Dingo(538 знак., 14.06.2023 11:58, MCU, полностью)
- Вариантов тьма. Ralex(782 знак., 14.06.2023 16:00)
- Частота выставления готовности в несколько раз выше требуемой
частоты поступления сэмплов. - т.е. оцифровка идет быстрее, чем требуется? О какой частоте
вообще идет речь? Может там и прерывания не нужны, все опросом
можно решить? - 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)
- Да, плевать на тактовые модулей. Стартуем по команде, а не
автоматически. Забирать в разнобой. Лучше, всё же, по срабатыванию
последнего. А то дадите SYNC, когда он не завершил - и кто знает,
что будет с результатом. Впрочем, если кварцы нормальные, к концу
выборки разбежка будет в пределах 24% от одного внутреннего цикла
1/4 тактовой АЦП. Nikolay_Po(174 знак., 14.06.2023 12:23)
- Здравствуйте! Я тут человек новый. Повангуем? Вводные данные: alexem(707 знак., 13.06.2023 22:26 - 22:36, MCU, полностью)Evgeny_CD
- В слове "посвингуем" две ошибки. - Kpoк(14.06.2023 13:51)
- Нашли баг в подключении (слева источник, справа приёмник): alexem(310 знак., 14.06.2023 09:12)
- Расшифруй ник... он провакционный для off - max(13.06.2023 23:57)
- Правильно выбирай раздел при отправке сообщения! Это не 0xFF, это
нормальная тема. - Evgeny_CD(13.06.2023 23:43)
- и еще - тут принято, обычно, что АЦП - это микросхема, а не модуль,
да еще и с процессором. потому и непонятки у читающих сей вопрос.
нужна схема, хотя бы на тряпошке. - Alex68(13.06.2023 22:52)
- Что будет если Tyмблep(140 знак., 13.06.2023 22:48)
- Да-с. Кто на ком стоит? То, что очевидно для Вас, для нас -
абсолютная новость. - Toчкa oпopы(13.06.2023 22:46)
- Нифига не понятно. А что показывает чтение потока данных? Там есть
отсчеты? - Evgeny_CD(13.06.2023 22:38)
- схемку покажи, да? частота внешней синхронизации контролируется
ГДЕ? - Alex68(13.06.2023 22:36)
- В nRF24LU1P кто-нибудь "поднимал" USB? Интересует виртуальный
COM-порт на этой штучке. Точнее проброс по радиоканалу. Вроде бы во
многих мышках и клавиатурах присутствует, в продаже давно есть, а
проектов в Интернете всего 2-3 штуки - sniffer, crazyradio,
mouseJack. Уже лет 10 лежит модуль, а никто ничего толком не
написал для него. Реально ли поместить VCom в 16 кБ флеша? Costic(1 знак., 13.06.2023 19:39, MCU, картинка, полностью)
- Сегодня пришла в голову мысль, что дифференцируя по n отсчетам
точность повышается в (n-1)! чувствую какая-то лажа, нападки на
второй принцип термодинамики. Где-то читал про многоточечное
дифференцирование, где не помню. Кажись книга какого-то Еврей
Евреича, годов 70, "практическая цифровая обработка" или как-то
так. Не напомните? - IBAH(13.03.2023 16:06, MCU, полностью)
- Дифференцировать последовательность нельзя. Можно только
приближаться к желаемому результату, используя все больше и больше
отсчетов. При этом, дифференциатор дает хорошие результаты не во
всей полосе, а только в заданной. То есть: расширяете полосу -
снижается точность. Увеличиваете точность - сужается полоса. Хотите
и то, и другое - увеличиваете количество отсчетов. Коэффициенты
считаются в Матлабе, команда filterDesigner . - st256(13.06.2023 14:16)
- Я тут поигрался формулами. Коэф. усиления по производной гораздо
лучше поднимать за счет увеличения количества точек, чем за счет
увеличения шага дифференцирования (не вводим задержку). Но должна
быть какая-то засада, иначе бы все так делали. - IBAH(13.03.2023 16:37)
- в факториал раз? фантастишь. - Kpoк(13.03.2023 16:15)
- Странная мысль. И вообще, гугел в помощь... SciFi(1 знак., 13.03.2023 16:09, ссылка)
- Господа! Жестокая судьба заставила меня снова сесть на IAR. И я
снова забыл, как размещать данные в памяти. Пробовал директивы
.data и .word - все без толку. Помогите, пожалуйста. - st256(12.06.2023 07:43, MCU, полностью)
- Для данных флеш, нужно переключать секцию - "DATA", для кодов
"THUMB". Данные объявляют DSB, DSW, DCD. BlackMorda(212 знак., 12.06.2023 21:22)
- Блин, в хелпе все расписано в подробностях. - Codavr(12.06.2023 14:19)
- ИАР умеет компилировать в асм файл. Project>Options>C/C++
Compiler>List>Output assembler file. Я использую эту фишку как справочник - IBAH(12.06.2023 14:18)
- Просто забить на прошлое умничание - freememcopy с ? да и сделать
навека красиво - bnb62(12.06.2023 08:53)
- Попробуй почитать \doc\EWARM_AssemblerReference.ENU.pdf, должно
помочь. - ЫЫyкпy(12.06.2023 08:37)
- Смотря какой именно IAR (архитектра МК, версия). Способы,
работающие для EWAVR в EWARM в лоб не срабатывают, например.
+подход зависит от количества данных. - AlexG(12.06.2023 08:33)
- Вот это не то? Alt@ir(1 знак., 12.06.2023 08:05, ссылка)
- Нужно тестировать пленочную клавиатуру - не помогут ли благородные
доны советом? VLT(1216 знак., 08.06.2023 08:55 - 09:04, MCU, картинка, полностью)
- Может дядьку робота с "пальцем"? ;) Make_Pic(1 знак., 09.06.2023 06:50, картинка)
- Видели примочку к стиралке 70 г: валик с прижимом для отжима белья,
ну ряд кнопок нажмется, не вернется одна, это же программно опросом
клавы можно отследить. Проще чем гемор с пьезиками. - Visitor(08.06.2023 16:18)
- Усилие 6-8кгс IBAH(1 знак., 08.06.2023 15:43, ссылка)
- отлить из силиконового герметика пластину с выпирающими сосками и
давить все кнопы одним усилием:) Vit(8 знак., 08.06.2023 15:27, youtube)
- Не слипающиеся купольные пружины. Toчкa oпopы(2 знак., 08.06.2023 14:42, ссылка, ссылка)
- Идёшь в автомагазин и покупаешь электропривод центрального замка.
Стоит копейки, усилие при долбёжке, примерно как у пальца. Ресурс -
ого-го. - Звepoящep(08.06.2023 14:02)
- А не пробовал вариант обойтись без механики? Если конечно задача
стоит только различить "сдвоенные" и одинарные мембранки... Я бы
попробовал изменение резонансной частоты колебательных контуров,
расположенных вплотную. Ибо, имхо, 2 бронзовых колпачка, будут
шунтировать контур сильнее, чем один... И в реализация была бы
предельно простая - 1 шт MSP430Gxxx + дроссели-гантельки под
"кнопками". У MSP "G" есть отличная фишка - каждый пин может
служить генератором на TШ... - Гyдвин(08.06.2023 12:01)
- Я бы пневматикой сделал из готовых покупных компонентов. Сила
регулируется редуктором, скорость натекателями, ресурс - миллионы
циклов(если воздух не забыть замаслить), простота, надежность.
Нужно будет сделать только крепление и ложемент для платы. - БAPMAЛEЙ(08.06.2023 10:59)
- Двойной купол удваивает силу нажатия, нужную для срабатывания, нет?
То есть если бы был актуатор с датчиком силы нажатия, способный
нажимать на каждую кнопку... - SciFi(08.06.2023 10:22)
- Моторчик к этой штуке приколхозить. Бapбoc(1 знак., 08.06.2023 10:16, картинка)
- В сверлильный станок в патрон вставить нужную площадку и нажимать
все кнопки одновременно, в продаже есть под дрель - zov(08.06.2023 10:07,
)
- 3Д фрезер (или что-то подобное), ездит над кнопками, нажимает. Если
надо сразу несколько нажимать, тогда любой линейный привод, на
который закрепить пластину, на которую наклеить столбики, они будут
нажимать на кнопки. Привод можно сделать из моторчика с валом,
веревки/нити и блока над платой, получится что-то типа подъемного
крана, который поднимает-опускает плиту, на которой выступы,
нажимающие на кнопки, либо она просто плоскостью нажимает. - AlexBi(08.06.2023 10:01)
- Нежизнеспособная клавиатура: эти колпачки быстро оторвутся и
вылетят куда-нибудь. Если по ней будут долбить по 10 раз в сутки,
вряд ли больше месяца проживет. Eddy_Em(210 знак., 08.06.2023 09:01)
- ЦОС на atmega8. Без плавающей точки. Пролетел с блоком питания и
теперь имею на входе сигнал с характерным "кивком" почти на 10%
вниз, на 2-3ms, в каждом периоде сети (20ms). Как вычистить? Cкpипaч(303 знак., 24.05.2023 18:37, MCU, полностью)
- А ничего не делайте. И так сойдёт. Оставьте простор для
улучшайзинга на период когда у клиента денег прибавится. - =AlexD=(26.05.2023 08:55)
- Winfilter RxTx(2 знак., 26.05.2023 00:14, ссылка, картинка)
- Если DSP и без потусторонних методов, то вырезать 50Hz IIR bandstop
он же режекторный фильтр. Bandstop/режектор получается сложением
результата двух фильтров LowPass + HighPass RxTx(142 знак., 25.05.2023 23:46, ссылка)
- Тут не оверсэмплинг надо, а наоборот, до 8 бит. Про атмегу8 не
знаю, но обычно есть возможность выбрать источник опоры.
Попробовать разные и выбрать тот, который колеблется с "линией
партии". Ну, и таймер синхронизовать сначала на 50 Гц. - Costic(25.05.2023 15:27)
- Если бы ТС сжжог свой паспорт, я бы порекомендовал ему КИХ с нулями
в точках 50, 100, итд герц. IBAH(1 знак., 25.05.2023 11:43, картинка)
- Сигнал простой - попробуй линейное сглаживание по 5 точкам.
Арифметика элементарная - сложение и деление на константы Питoн(1 знак., 25.05.2023 10:48,
, ссылка)
- Ну вы, батенька, и оптимист. У AVR хороший АЦП, но не до такой же
степени, чтобы увеличивать его точность в 16 раз! :)) Ну а по теме,
все верно предлагают: генерить у себя 50-герцовые "окна запрета
рабочих отсчётов", синхронизировав их с 10% просадками от
среденамеренного в АЦП. Для этого не нужен 16-ти кратный
оверсэмплинг. - vpv.vpv(25.05.2023 07:37)
- но, всё же, слова критики скажу - если используется внешний
термодатчик с внешним , возможно нестабильным, питанием и
стабильная и никак не связанная с питанием сего датчика опора ацп -
то енто косяк разработчика однозначный)) - Alex68(24.05.2023 21:42)
- Не понял. Есть обычный Pt1000. На него, через токозадающий резистор
подан 1мА. В обычной ситуации, на худо-бедно стабилизированном
питании, напряжение на Pt1000, нормально измеряется по отношению к
встроенной опоре atmega8. Cкpипaч(82 знак., 24.05.2023 21:49)
- А в цепь с термосопротивлением между нолём и термосопротивлением
поставить точный резистор (опорный) и вычислять ток, а потом
значение термосопротивления уже? - symbions(25.05.2023 00:42)
- ток великоват для pt1000, по докам рекомендуется 0,1 - 0,3 мА.
ошибка измерения меньше градуса с большой натяжкой, реально будет
1,5-2. имхо тебе лучше бы подошла lm35, да и дешевле. - m16(25.05.2023 00:14)
- Критика справедлива. Чтобы что-то измерить, лучше всего иметь общую
опорную величину. Иначе ваш 1мА плывёт по-своему, а встроенный ИОН
АЦП - по-своему. В итоге, получаем ошибку и восприимчивость к
помехе. А вот если бы в качестве опорного АЦП завели бы (через
делитель и повторитель) ваше 24В, питающее термосопротивление, то
даже при пульсациях питания не было бы такой ошибки. Nikolay_Po(163 знак., 24.05.2023 22:56)
- такое измерительное делал не раз, но всегда брал опору ацп с
питания либо (термо или тензо) моста либо RTD. и дельта-сигма ацп. - Alex68(24.05.2023 21:51)
- Синхронизнуться от сети и пропустить скока-то выборок. - mse homjak(24.05.2023 20:57)
- Конструкция готовая. Нет датчика перехода через ноль или подобного.
Нужно использовать имеющееся. Сделать ФАПЧ на частоту сети по
просадкам полезного сигнала на мега8 - та ещё задача. Можно проще,
медианным фильтром. - Nikolay_Po(24.05.2023 21:00)
- Ничего сложного в том, чтобы ловить (и после предугадывать)
просадки - нет. Таймер 16-битный, с прескалером, режим СТС,
прерывания по OCRx. Величина в OCR динамически "следит" за
серединой просадок. Если ширина окна запрета равна N попугаев
таймера, то начало окна будет, когда таймер досчитает до OCR-N/2, а
конец окна наступит. когда в таймере будет 0+N/2. - vpv.vpv(25.05.2023 07:56)
- Если изменение сигнала много больше, чем период сети, задаться
доверительным интервалом и отбрасывать значения, не попадающие в
него, относительно длинного среднего. Да и "ФАПЧ" там будет такой
себе, есличо. Сеть у нас боле-мене стабильна по частоте. Формируй
одно окно таймером для нормального усреднения, а другое окно, для
синхронизации с провалом. - mse homjak(24.05.2023 21:18)
- Вообще ничего не понял... Кого чистить? От чего чистить? Почему АЦП
- результат, а не микросхема? - st256(24.05.2023 20:37)
- Чё придираешься? Результат Аналого-Цифрового Преобразования, при
чём тут микросхема? - Nikolay_Po(24.05.2023 20:38)
- Я не придираюсь. Я не понимаю. - st256(24.05.2023 20:40)
- Отвыкли за время отсутствия... Человек сделал оцифровку сигнала, у
которого опорное напряжение - с дефектом, провалы из-за недостатка
питания на переходе тока промышленной частоты через ноль тдт что-то
около того. Выборка с передискретизацией, период осреднения 2мс.
Нужно подавить помеху, действующую каждый период, примерно 2мс из
20мс. - Nikolay_Po(24.05.2023 20:43)
- Помеха в спектре сигнала? - st256(24.05.2023 20:45)
- Можно сказать, что
нет да - сигнал - постоянный ток. Время реакции, как я понял, считай,
время установления, 5 секунд устраивают. Проблема в том, что помеха
одной полярности - провал. Амплитуда помехи и её ширина -
переменные (зависят от величины питающего стабилизатор напряжения).
Поэтому просто усреднение не подходит - помеха попадёт в сигнал.
Нужна нелинейная фильтрация. - Nikolay_Po(24.05.2023 20:57)
- Хотя, если пляшет опора и просечки по питанию, она
мультипликативная. Причем тут 2 мс усреднения? Какая частота
дискретизации? - st256(24.05.2023 20:48)
- Да, мультипликативная. Осреднение, или что там ещё, используется
для даунсэмплинга. Фактически, выборка идёт быстрее, допустим, с
периодом 125мкс и в выходной отсчёт с периодом 2мс, попадает 16
отсчётов. Так получается 14 бит каждые 2мс. Ладно, пусть будет не
осреднение, а суммирование. И 14 бит не настоящих, но по факту,
сумма 16ти 10ти-битных отсчётов. - Nikolay_Po(24.05.2023 20:54)
- Там есть участки чистого сигнала, когда нет просечек и опора
стабильна? - st256(24.05.2023 21:14)
- Именно. - Nikolay_Po(24.05.2023 21:24)
- Ну и работайте только с ними. В чем проблема? Их можно обнаружить
как-то? - st256(24.05.2023 21:32)
- Проблема - сделать это с минимумом затрат времени, напряжения
мозгов и минимальной квалификацией программиста. Ищется простое и
эффективное решение, которое было бы подсилу реализовать
вопрошавшему без привлечения специалистов за деньги. - Nikolay_Po(24.05.2023 22:58)
- Так что Вы хотите сделать с чистым сигналом? - st256(25.05.2023 05:39)
- Его ещё нужно выделить. Частота помехи плавает (допустим, питание
от генератора или перегруженной промышленной сети). Контроллер
слабенький, квалификация программиста ограничена, бюджет в том
числе, времени на доработку ограничен. Делать по-настоящему, когда
окно выборки чистого сигнала следит за фазой помехи - слишком
затратно (по времени, по квалификации). Поэтому предлагаются
простые методы фильтрации без изменений выборки, без формирования
окон. - Nikolay_Po(26.05.2023 10:46)
- А полезный сигнал сильно быстро изменяется? - st256(26.05.2023 19:33)
- Температура. Желают 5сек время реакции. Контроль температуры в
линиях установки кондиционирования. - Nikolay_Po(26.05.2023 19:45)
- А частота дискретизации? - st256(26.05.2023 20:12)
- 125мкс период выборки, 8кГц, получается. Но результаты выборок
суммируются по 16шт. И фильтр на вход получает отсчёты с периодом
2мс (500Гц). - Nikolay_Po(26.05.2023 21:44)
- В принципе есть и еще проще вариант. Как я понял, помеха
периодическая и все, созданные ей гармоники - далеко справа.
Поэтому, можно применить звено вида y(n)=x(n)+y(n-1)*A, где A -
число очень близкое к 1. Например, 0.9999. Только там разрядность
нужно учитывать, ибо сигнал будет усилен в 10000 раз. Как раз
пореже гармоники и оставит только постоянку. Если, конечно, у самой
помехи нет постоянки. - st256_нa_paбoтe(27.05.2023 07:51,
)
- Ну я понял примерно так. Ищите участок сигнала с минимальным
отклонением. Просто берете несколько отсчетов , допустим 8,
суммируете и сдвигает вправо на 8 бит. Потом находите на этом
интервале максимальное отклонение. Если оно, допустим, менее трех
младших значащих разрядов, вы попали в место, неповрежденное
просечками. Если отклонение больше, то сдвигаетесь на один отсчет и
по новой. - st256_нa_paбoтe(27.05.2023 07:41,
)
- Образно выражаясь, это не выкинуть муху из вина, а суспензировать
блендером. :))) - bnb62(25.05.2023 10:06)
- Это тот случай, когда "кроилово" ведёт к "попадалову"? - Nikolay_Po(24.05.2023 19:54)
- Угу :) Но меня оправдывает то, что серийно выпускаемого БП из
24Vac, в 24Vdc с общим нулем в природе не обнаружено. Пришось импровизировать) - Cкpипaч(24.05.2023 20:27)
- Ток потребления какой? Может поставить удвоитель на двух диодах и
двух конденсаторах, а после него DC-DC или даже линейный
стабилизатор? Масса будет общая. Создавать самому себе трудности,
чтобы потом героически их преодолевать, так себе затея. - Yurasvs(25.05.2023 19:48)
- в изделии 24 вольта переменки одними концом об землю включено?? - Alex68(24.05.2023 20:34)
- Нет. Нужно чтобы обощий 24Vac был общим и для 24Vdc. Там в
существующем оборудовании многое на это завязано. - Cкpипaч(24.05.2023 20:46)
- Стеб такой? В одном варианте возможно: если с переменки удвоитель
сделать на электролитах и диодах:-) Только при небольшой нагрузке в
таком режиме кондеры вспучатся за 3 года. - Visitor(24.05.2023 20:59)
- никогда такого не видел. всегда есть три фазы, из них БЖТ делает 24
переменки и уж потом ее подают на всякие локальные блоки, кои ея
сами и преобразують в потребное им. и все ето развязано от земли. - Alex68(24.05.2023 20:51)
- Три фазы, толщиной в руку, есть на каждой установке. Но кроме этого
на каждой установке есть маленький трансформатор 24Vac бортовой
сети. Cкpипaч(285 знак., 24.05.2023 21:03 - 21:08)
- Алекс к тому, что, может, стоит внимательно изучить схемы включения
нагрузок и убедиться, что заземление не требуется и выполнено
формально, чтобы не накапливать статику. И, должно быть, есть одна
точка, в которой можно легко эту землю оторвать и тогда спокойно
подать питание через мост на вход обычного DC/DC со сквозным нулём
Вольт. Nikolay_Po(93 знак., 24.05.2023 21:10)
- Речь не в заземлении. Речь в контрольных и управляющих сигналах,
часть из которых идет на реле с обмоткой переменного тока, часть на
"большую плату", часть просто "куда-то во внутрь". - Cкpипaч(24.05.2023 21:18)
- Вам-то что от этих сигналов надо, что конкретно заставляет вас
привязывать 0В ваших 24В к одному из проводов ~24В? - Nikolay_Po(24.05.2023 21:29)
- Мне нужно считывать и формировать эти сигналы. Мы сняли (ладно,
выкусили) "их" электронный блок и поставили свой. Свой общий к их
общему их выходы, к нам на плату, на их входы - часть с платы,
часть с промежуточных реле. - Cкpипaч(24.05.2023 21:40)
- понятно. промышленное оборудование переделывал, свое управление
заместо родного, которого постигла хиросима, ставил, но, как и
сказал, меня не ограничивали в расходах, потому в таких случаях
ставил хорошие твердотельные реле. именно потому, что понятия не
имею, как и куда провода тянутся, а бороться с землями не имею
желания. проще все развязать. - Alex68(24.05.2023 22:08)
- ясненько. но это некошерный кибуц)) - Alex68(24.05.2023 21:24)
- я про то и сказал. но оно развязанное. всегда. иного никогда не
видел. - Alex68(24.05.2023 21:07)
- Очевидно же :) Но и решить просто. Если валидных данных больше
инвалидных, то по дифференциалу принимаем валидное или прошлое
значение за истину. (Запоминаем данное, сравниваем со следующим.
Если результат больше назначенных попугаев, то это измерение
игнорируем и заменяем прошлым). - bnb62(24.05.2023 20:21)
- Простейший а-ля медианный фильтр. Инициализируешь 32-х битную целую
переменную "Фильтр" первым измеренным значением АЦП, умноженным на
2^10, к примеру. Каждый период отсчётов, берёшь значение "Фильтра"
и делишь его на 2^10. Сравниваешь полученное значение и значение
свежего отсчёта АЦП. Если код АЦП больше делённого значения
фильтра, то инкрементируешь "Фильтр". Если мешьше -
декрементируешь. Если равно - ничего не делаешь. Выход фильтра -
величина "Фильтр" поделённая Nikolay_Po(551 знак., 24.05.2023 19:52)
- Спасибо! Cкpипaч(401 знак., 24.05.2023 22:58 - 29.05.2023 08:53)
- Ссылочку на источник бы. - RxTx(26.05.2023 00:28)
- Спасибо! Красивое! Dingo(354 знак., 25.05.2023 05:27)
- Думать лень про написаное.. но разве это не то же самое y = y*k +
x*(1-k)... для целочисленного коэффициента 2^n всё решается
сдвигами и суммированием. - POV(24.05.2023 22:48)
- Брр. Вроде бы врубился. Посмотри, правильно ли я понял идею? Cкpипaч(204 знак., 24.05.2023 21:57)
- Фраза "инкрементируешь фильтр" - опечатка? Можно попросить вас
формулу написать? (сейчас как-раз пытаюсь "изобрести БИХ в целых
числах", похоже вы описываете именно его, но как-то не сходится). - Cкpипaч(24.05.2023 20:52)
- А классика, то ли Титце и Шенк, то ти Хоровитц и Хилл так
статанализ для какой то установки делали, я по мотивам разбор
однотональных частот процем сделал, инкремент, если в зону
временную попала, декремент, если нет. И штук 8 таких фильтров в
ПИКе, работало. - Visitor(24.05.2023 20:07)
- Скользящее среднее имеет нуль в передаточной характеристике (АЧХ)
на частоте 1/T, где T - длительность накопления. То есть, если
копить в буфере семплы в течение 20 мс, то 50 Гц будет подавлена. - Xaoc(24.05.2023 19:39,
)
- Оконный компаратор на выход из диапазона с прерыванием к АЦП в
проце есть? Тогда просто, отсчет через 10 мс. Если нет, то можно в
цифре экпоненциальный фильтр сделать, 2 строки кода на С,
фильтрация сдвигами и сложением делается за период равный 1/ на
частоту дискретизации и умножить на 2 в степени сдвига. - Visitor(24.05.2023 19:08)
- По-пионерски просто (т.е. хуже воровства): 1. Перед вычислением
среднего выкинуть min и max отсчёты. 2. Медианный фильтр из 3-х
последних средних. Вобще-то период отсчётов и желаемая постоянная
времени не озвучены. - Chum_A(24.05.2023 19:02)
- синхронизировать запуск ацп с помехой? - Alex68(24.05.2023 18:39)
- Как говорится "компилятор глючит" ))) [keil51]... POV(1284 знак., 04.06.2023 11:20 - 11:26, MCU, картинка, картинка, полностью)
- Ну да, ну да.. олух-программист понадеялся на наследование, так
сказать, банка регистров. А оно вон оно как ))... POV(108 знак., 05.06.2023 13:57, ссылка)
- Кейл умеет дизассемблер показывать и в нём шагать? Может стоит
попробовать? Или он вам неинформативен будет? Тут ещё где-то
пролетала тема, что в версии для х51 может одна и та же область под
разные переменные использоваться, вроде как using или подобная
директива лечила. Dingo(445 знак., 05.06.2023 05:03)
- 1) temp где нибудь ранее инициализировалось явно в "ноль" ? и далее
по алгоритму (иначе переполнение) Zoro(127 знак., 04.06.2023 18:49)
- Как я понимаю речь про SiLabs C8051F120 или что-то 100 серии (твой
любимый, не помню). Плавающая точка _очень_ медленная. За время
пока вычисляется выражение может набежать переполнение счётчика.
Прерывание/счётчик остановлены? t16 объявлена volatile? Обязательно
ли умножать на 0.12, может быть разделить на 8 (*0.125) достаточно
и сделать это сдвигом (t16 >> 3)? У меня в F380 нет
регистра PCA0_T, вместо него PCA0L и PCA0H, которые надо читать в
нужной Costic(106 знак., 04.06.2023 14:06, картинка)
- Я бы попробовал для начала запретить прерывания. Может призрак
коммунизма бродит в твоей программе, и совсем не там где ты ищешь. - il-2(04.06.2023 12:55)
- Бывали МК с приветом. На старой работе, в сейфе, как артефакт,
лежал 580-й, который неправильно выполнял какую-то команду. - mse homjak(04.06.2023 11:22)