а какие кварцы посоветуете заказать скажем так самые лучшие есть дип в металическом корпусе в виде столбика или лодочки большие такие 2 пин а есть смд керамические 3 пин и 4 пин
Всем мяу! Столкнулся я с обновлением прошивки через загрузчик, вопрос такой: допустим обновление не прошло до конца(допустим RS485), часть памяти успели записать а дальше допустим питание вырубили, а потом после подачи питания как понять сколько успели записать и верно ли всё записалось. Сейчас сделан самый примитивный вариант, тупо начинаем всё с начала, но как бы RS485 не самый быстрый интерфейс чтобы при любом чихе начинать всё с самого начала, пришла идея запроса "контрольной суммы" страницы, но опять же какова вероятность что запишется половина(или с ошибками) и каким то образом контрольная сумма совпадёт гипотетически. CRC использую - CRC-16 CCITT для каждой страницы в 512 байт. К чему такие заморочки: устройство будет находиться довольно далеко, чтобы просто прийти с программатором, а если окирпичится то по шапке напинают не только мне
...допустим обновление не прошло до конца(допустим RS485), часть памяти успели записать а дальше допустим питание вырубили...
При удалённом обновлении, лучше всего грузить в отдельную область. После загрузки всего обновления, проверки целостности можно уже и обновить. При этом можно проверить наличие резервного питания и прочих условий позволяющих не "окирпичиться" устройству. Конечно же для этого микроконтроллер должен иметь достаточный запас по объёму флешь памяти, но оно того стоит.
какова вероятность что запишется половина(или с ошибками) и каким то образом контрольная сумма совпадёт гипотетически. CRC использую - CRC-16
2^(-16)
_________________ [ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ] Измерить нннада?
Dismas, резервного питания не предусмотрено, пишется именно так, в отдельную область, и только после заливки всей прошивки запускается процесс обновления, при этом полностью переписываться как бут область так и основная прошивка, если же по какой то причине будет записан не тот байт то однозначно получаем кирпич который не будет выходить из рестарта Gudd-Head, согласен, логично, как только это соотнести к размеру массива, например 512 байт, тупо умножить?
часть памяти успели записать а дальше допустим питание вырубили, а потом после подачи питания как понять сколько успели записать и верно ли всё записалось
Всё давно придумано до нас. Записываемая инфа разбивается на блоки. Для каждого блока указывается его длина и проверочная сумма. Из этого формируется управляющий блок. Этот управляющий блок передаётся и записывается первым. Дальше всё просто. Перед стартом загрузчик вычисляет проверочные суммы каждого блока и сравнивает со значением из управляющего блока. Те блоки, у которого суммы не совпали, битые и их надо загрузить и прошить. Кроме того, имея управляющий блок данных, можно в процессе работы непрерывно проверять целостность данных в записанной памяти.
как только это соотнести к размеру массива, например 512 байт
Никак. Поскольку у вас CRC не зависит от длины массива, ложноположительная вероятность при наличии ошибки всегда будет зависеть только от длины CRC = 1/65536 при длине 16 бит.
_________________ [ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ] Измерить нннада?
Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт июн 01, 2023 11:39:02
Друг Кота
Карма: 67
Рейтинг сообщений: 1065
Зарегистрирован: Чт сен 18, 2008 12:27:21 Сообщений: 19867 Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения:0 Медали: 1
R4, R5, R6 ставить ближе к приёмнику сигнала. R5 подтянуть туда, где чаще чаще будет находиться трансивер (в каком состоянии).
_________________ [ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ] Измерить нннада?
Di123, при питании 3.3V и скажем зеленом или желтом LED c Vf~ 2V пуллапа фактически не будет (будет подтягивать к +1.3 V что оочень близко к порогу переключения входов, а иногда и недотягивает до H. синие и белые LED вообще Vf ~3+V. красные часто бывают 1.5V, но не все, и это тож на грани получается.
параллельно к пуллап резисторам можно LED+R (~300+ ohm) но, как заметил Dismas, это часто не имеет смысла из-за скорости сигналов.
насколько безопастно так оцыфровать макушку переменного напряжения в 50гц ?
в теории отрицательная полуволна будет давать чоткий 0 и у нас будет 10мс паузы далее через функцию фиксирую максимальное число ацп в положительной полуволне которое будет говорить нам о текущем напряжении переменки далее обнуляю максимальное ацп в течении отрицательного напряжения и всё по новой
Di123, безопаснее всего вместо диода поставить резистор 100..510k, тогда можно хоть 240V AC туда дать. отрицательная полуволна и превышение Vcc надежно отрежутся канальными переходами fet в gpio. чтоб при обрыве цепи была определеннось - еще ~ такой же резистор на землю.
имеете в виду такое в качестве проверки ? сомнительно конечно у транзистора же тоже есть напряжение пробоя а учитывая закрытый транзистор своим сопротивлением значительно превысит сопротивление R1 + R2 и на нём копится соответственно большее напряжение
Di123, на gpio не может быть напряжения за пределами Vss-0.7V, Vcc+0.7V пока высоким током не убили выходные fet gpio . резистор последовательно входу гарантирует что ток будет ограничен. единственное если напрямую 240V то скажем резистор размером 0603 может пробиться и тогда усе. 1206 - уже ок для таких напряжений.
если хотите именно измерять огибающую то нужен делитель из 2 резисторов, такой чтоб максимальное ожидаемое напряжение делилось до попадающего во входной диапазон ADC. напр для 240V AC (370V max) 330k и 2.4k от gpio на землю (можно подстроечный, но это несовресменно, лучше скорректировать софтом).
если просто детектировать переход через 0 например то 2 одинаковых резистора 330k и все.
какое предназначение низкоомных резисторов между мк и ads ?
Убирают высокочастотный звон цифровых сигналов (может быть одностороннее согласование линий или ФНЧ совместно с входными емкостями микросхемы). С ними звук лучше, сам пробовал.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения