tonyk_av
Участник-
Постов
1 151 -
Зарегистрирован
-
Посещение
-
Победитель дней
4
Весь контент tonyk_av
-
Не такая уж и узкая и специфическая. Дело в другом. Если кто-то выполняет вычисления на FPU в задачах управления, то перед выдачей управляющих воздействий он должен проверить достоверность результата хотя бы с точки зрения математики, а то получит NaN и фиганёт его в виде 0xFFFFFFFF на ЦАП.
-
Практическая потребность. Реализую рантайм ПЛК. В нём есть флаги, показывающие результат выполнения математических операций. Я ведь не знаю, какую формулу напишет пользователь и какие данные он будет по ней обсчитывать, поэтому для рантайма деление на ноль и корень из отрицательного числа это нормальные ситуации. А есть ведь ещё ситуации, когда в результате вычислений результат потеряет значимую часть или превысит разрядную сетку. Такие ситуации невозможно выявить проверками до начала вычислений, они выявятся только в процессе вычислений, поэтому для рантайма наличие ошибок вычислений в пользовательской программе не должно быть чем-то неожиданным.
- 31 ответ
-
- 1
-
Я про то, что конденсаторы могут быть сделаны прямо на кристалле. При малых токах потребления и высокой частоте коммутации это рабочий вариант. По такой схеме реализован ряд R2R ОУ.
-
В прерывании- никак. Но в прерывании будет выставлен флаг, сигнализирующий пользователю о том, что в процессе вычислений была ошибка и результат вычислений недостоверен. Готов поспорить, что в МК вы не проверяете статус FPU после вычислений. Наоборот, именно в прерывании я исправлю результат работы операции, вызвавшей сбой и пропущу её, чтобы остальные команды не дёргали прерывание. Ессно. Самое главное, что взведён флаг недостоверности, а там уж пользователь пусть сам решает, что делать.
-
В общем, как обычно, всё оказалось проще и описано у самой СТМ в PM0214. Там же есть и список исключений, который может возбуждать каждая команда FPU. Странно, что люди выполняют расчёты, но даже не знают, как проверить их достоверность, иначе сразу бы отослали меня к этому РМ.
-
Что мешает сделать умножители и инверторы напряжения на коммутируемых конденсаторах? MAX233 как пример реализации идеи.
-
Можно теперь послушать тех, кто изучал математику ЭВМ, численные методы и знает, как обрабатывать ошибки вычислений FPU?
-
Работаю с STM32F446. Данные идут от человека, поэтому возможные деления на ноль, переполнения и тому подобные неприятности, по которым CPU улетает в Hard fault. Понятно, что попав в обработчик, можно посмотреть флаги FPU, чтобы понять причину попадания и выставить флаги ошибки в пользовательской программе. Вопрос: как правильно восстановить состояние FPU? Как правильно вернуться к выполнению пользовательского кода? Ткните пальцем в пример или где почитать. P. S. Вспомнил, что где-то на форуме Миландра описывалась что-то подобное, поищу. Но, думаю, где-то должны быть описания и примеры обработки.
-
Изучай, тут всё есть.
-
Начинаем как GPIO, продолжаем как вход таймера. Зачем ногодрыг? Что мешает использовать SPI DMA?
-
Производят такие расширители для того, чтобы его можно было сконфигурировать под конкретное применение и не плодить номенклатуру микросхем. Тут в одной из тем у людей вызвало бурю эмоций моя сентенция о том, что это нормально менять функцию вывода у МК на ходу. Но там речь шла о переключении функции, но не направления передачи. Вот у _pv много было схем с МК или ПЛИС, в которых приходилось на ходу переключать направление передачи с входа на выход? Кстати, а ТСу требуется менять направление передачи?
-
У меня нигде нет не двунаправленных линий ввода-вывода, или ввод, или вывод.
-
Почему ужас? SPI для всего этого нужен будет один, переплата в виде одного-двух сигналов для защелкивания данных в/из буферные регистры практически мизерна. Уже при 16DI+16DO такое решение выглядит вполне симпатичным, особенно с учётом цены и доступности 165 и 595.
-
Немного оффтоп, простите. Подобное было на платах контроллеров от Fastwell. Там стояла ПЛИС, в которую программно можно было загрузить прошивки для разных чипов, например, 8255 или 8251. Помню, грузил в такую ПЛИС то ли 2, то ли 3 "чипа" 8255, после чего обращался к ним через IN-OUT. Удобно и очень быстро. Так и просится подобное, но через SPI. Недавно трассировал плату, которая была узкая и длинная. Еле-еле развёл на ней 16DI по этой причине. Будь там чё-нить а-ля MCP23S017 было бы намного проще разводить, хоть 64DI развелось на раз-два. Поэтому поддержу вопрошающего:
-
Не заметил, пардон. Согласен. Начнутся конкретные вопросы, тогда всем интересней станет. Хм, а как тогда ваша контора разрабатывает высоковольтные источники питания? Видимо, их разрабатывает Тогда источники соответствующие.
-
Я дико извиняюсь за не очень вежливый ответ, но неужели в вашей компании, которая нет людей, способных объяснить их назначение? Так же как и назначение резистора R34 на моей схеме. У меня такое ощущение, что показанную мной картинку из траковской мурзилки ТС видит впервые, иначе сначала разобрался бы с типовой схемой от производителя, прежде чем рисовать свою. Предлагаю в выходные почитать книжки по ссылкам выше, а потом вернуться к обсуждению, ибо P. S. Подтяните свою грамотность в этом вопросе хотя бы для того, чтобы понимать ответы на свои вопросы. Просто мало кому приятно распинаться перед людьми, которые не хотят напрягаться для поиска ответов на свои же вопросы, а хотят тупо получить готовый рецепт.
-
Странный вопрос. Вы документацию и рекомендации производителей читаете? Исходя из опыта и специфики получаются примерно такие схемы (замечание: на входе не стаб, а TVS):
-
А что за DC-DC? Подозрительно мало деталей в цепях защиты даже в сравнении с рекомендуемыми производителями схемами. И с DI и DO то же самое.
-
Было именно предупреждение, а не ошибка, я потому и запомнил, что вот ведь, она, переменная, используется в цикле, а компилятор пишет, что она не используется, причём после цикла присваиваю переменной другое значение для промежуточных вычислений- на тебе. Копипаст сделал и зацепил повторное определение.
-
Нифига подобного Вот прям сегодня по ошибке написал такое, так g++ ткнул во вторую строку с предупреждением о неиспользуемой переменной. Надо смотреть на версию стандарта, поддерживаемую компилятором и на то, какие предупреждения разрешены или запрещены. Последние версии gcc стали более строже отслеживать подобное, а g++ на подобное всегда ругался, поэтому собирайте ваши программы g++, и будет вам Щастье.
-
Это про какие стандарты речь идёт? Не надо забывать, что помимо стандартов есть ещё и требования к питанию потребителей, которые необходимо учитывать при выборе схемы обеспечения бесперебойного питания потребителей. Я в самом начале писал, что АВР вредно быстро переключать. Для ответственного оборудования проблема решается просто: между АВР и нагрузкой ставится онлайн ИБП с не большим временем поддержания нагрузки. В этом случае нагрузка даже не заметит переключений. Когда в шкафу электроники на несколько миллионов, добавить ИБП, даже за сотню тысяч, не проблема.
-
А ФНЧ на входе АЦП по какой частоте рассчитывают? Буржуи называют её частотой Найквиста, которая равна половине частоты дискретизации, то есть применительно к AD7953 это будет 1.024 МГц, и далее по тексту пишут, что DSP у AD7953 выдаёт результаты измерений (не отсчётов!) с частотой 8 кГц. Есть ведь ещё оверсэмплинг, например, в Н7 (про F7 не помню, возможно, тоже есть) он реализован аппаратно, поэтому логично, что частота выборки и частота поступления отсчётов это в общем случае две разные частоты. Делал контроллер, который измерял среднее, СКЗ, минимум, максимум, активную и реактивную мощности и период на STM32F7. Было 12 каналов, по каждому каналу частота выборки была 12 кГц. Вычисления выполнялись каждый период. Использовалась 32 и 64-битная арифметика, загрузка ЦП была около 3-4%, если память не изменяет. P. S. Я просто хочу разобраться в терминологии, потому что, как мне показалось, тут есть разночтения в русскоязычной литературе и буржуйской.
-
Ну так сами посмотрите на картинку. Чёрным по белому написано, что частота выборки 895 тысяч выборок в секунду. ade7978_7933_7932_7923.pdf
-
Уважаемый jcxz не пробовал найти ответ на вопрос, для чего микросхемы, ориентированные на измерения токов и напряжений в одно- и трёхфазныйх сетях, имеют частоту дискретизации до миллиона выборок на канал? Если прочитать теоретические основы работы таких микросхем, которые подробно излагают фирмы-производители, например, AD то, становится понятным, что возможностей АЦП, имеющихся у STM32H7xx, едва хватит для более-менее точных измерений. Возможностей MSP430 хватит для домашних поделок, но не для промышленного оборудования.
-
Для этого у меня включена синхронизация с Облаком. Удобно, когда на всех рабочих компах последние версии файлов.