-
Постов
5 701 -
Зарегистрирован
-
Посещение
-
Победитель дней
12
Arlleex стал победителем дня 25 января
Arlleex имел наиболее популярный контент!
Репутация
122 Очень хорошийИнформация о Arlleex
- Сейчас Просмотр темы: Неопределенное состояние детектора фронтов, как победить?
-
Звание
Гуру
Контакты
-
ICQ
Array
Посетители профиля
17 370 просмотров профиля
-
Исключающее ИЛИ с триггером Шмитта
Arlleex ответил Arlleex тема в Схемотехника
Какое-то катастрофичное количество опечаток получается тогда🙂 Потому что внутри одного и того же техпроцесса-серии LVC1G могут как быть, так и не быть эти самые триггеры. И таких микросхем - много. Да и даташиты производителей-компаньонов скопированы почти в букву. У Diodes и т.д. Output current это ток во внешнюю цепь. А я о внутреннем токе полуоткрытых верхнего и нижнего плеча, а наличие и длительность этого состояния зависит от входного напряжения. -
Исключающее ИЛИ с триггером Шмитта
Arlleex ответил Arlleex тема в Схемотехника
Ну я бы не сказал что это прям бриллиант... Микросхемы не редкие весьма. Одно дело, когда их мешок в каждом продуктовом, другое - когда это какой-то специализированный кейс, которого завтра след простыл... -
Исключающее ИЛИ с триггером Шмитта
Arlleex ответил Arlleex тема в Схемотехника
У нас "ходовыми" были LVC1G97, я посмотрел что он умеет - и хватило всего что нужно, кроме XOR. Поэтому особо больше ничего не искал, поставив отдельный XOR. 58 не подходит (нет обычного AND), а 99 на Элитане сроки не вменяемые🙂 Вот эту наскальную живопись нужно изобразить логикой))) -
Исключающее ИЛИ с триггером Шмитта
Arlleex опубликовал тема в Схемотехника
Есть простейшая схема "блокировки" неправильных или промежуточных положений галетника, выполненная на логике. Сами сигналы с галетника я задавил RC-цепочками, чтобы переходные процесссы при переключении лишний раз не переключали исполнительное реле. Так вот, когда выбирал серию микросхем логики, открыл даташит на нужный мне компонент 2-И с одним инвертированным входом, увидел нужный мне триггер Шмитта по входам в наличии. Серия SN74LVC1G. И такой же серии заложил корпус 2-Исключающего ИЛИ. И только щас (исправить все не поздно) заметил косяк: в выбранном SN74LVC1G86 нет триггера Шмитта по входам. Печаль. В даташите на LVC1G86 прям написано, мол, если сигналы ваши медленные, надо ставить или внешние триггеры, или микросхему со встроенными. Рисуют вот такую табличку Почему указаны максимальные скорости фронтов, а минимальных нет? Минимальные ведь тоже надо знать, чтобы не допустить выгорания выходного каскада транзисторов. Ищу корпус-замену. Нахожу SN74AHC1G86. У него только в рекламном блоке упоминание Лезу ниже - ищу такую же табличку Вот здесь как раз можно опустить минимальное время входных переходных процессов и указать максимальное. Как понять-то, вообще этот компонент точно имеет входной триггер Шмитта или реклама - брехня? -
Обычный микроконтроллер. В каждом первом программаторе с али МК и внешняя I2C/SPI Flash🙂
-
портирование проекта (IAR-STM32IDE)
Arlleex ответил addi II тема в Программирование
Да, от куба много полегло. -
IAR вроде так и остался при своем. Т.е. генерит варнинг и пустой код. На LLVM сделан Keil, вернее его ARM Compiler 6 основан на LLVM, а от нативного ARMCC они отказались года 4-5 назад))
-
Я говорю про начальные условия (состояния регистров), при которых будет работать формирование импульса заданной ширины в One Pulse Mode. Привел цитату из RM. Естественно, сами компараторы срабатывают по ==.
-
Да, все соответствует в т.ч. моему описанию выше. Ширина импульса будет равна ARR - CCR (при OCxFE == 0) или ARR - начальный CNT (при OCxFE == 1). Задержка до начала импульса будет равна CCR - CNT или 3 такта соответственно. Проблема в том, что это точно будет работать при запуске от внешнего триггера, но не факт (я не проверял), что при ручном запуске таймера.
-
Вообще все эти RCREG4; или (void)RCREG4; или через вызов фиктивной функции - сугубо на усмотрение конкретного компилятора И языка программирования. Си-шный стандарт сразу говорит, что понятие "доступа" в отношении к volatile-объектам отдается на усмотрение реализации: ISO/IEC 9899:201x: Открыл референс на свой компайлер и читаю: В Си строчка RCREG4; является выражением и это выражение должно оцениваться компилятором. А оценка невозможна без доступа. А вот в C++ доступ к volatile в этом отношении несколько другой: он вполне вправе считать, что такое выражение не имеет смысла, о чем может выкинуть варнинг "Expression has no effect". Так что все несколько запутано и нужно проверять конкретно "у себя". А еще ссылка по теме, кому интересно: https://embeddedgurus.com/stack-overflow/2010/03/reading-a-register-for-its-side-effects-in-c-and-c/. Тут подверждается, что даже "правильная" для конкретного языка C/C++ конструкция - не гарантия.
-
Вы не правильно понимаете суть замысла бита OCxFE. А суть очень проста. Есть таймер. У него есть режим активации (например, включения счета) от внешнего события. Также предусмотрен режим генерации PWM, а режим одновибратора есть частный его случай (генерация одного периода). В CCR записывается задержка до формирования первого фронта импульса, а в ARR - значение, при котором будет сформирован второй (задний) фронт импульса и выключится таймер. Так вот, для того, чтобы эта шайтан-машина работала правильно, начальные условия должны удовлетворять CNT < CCR <= ARR. Отсюда видно, что с момента получения сигнала включения таймера от внешнего триггера до генерации первого фронта должно пройти минимум CCR + (5, вроде, по документации) циклов синхронизации. А теперь представьте ситуацию, когда импульс должен начать формироваться максимально быстро после получения триггера запуска таймера. Никаких задержек в виде отсчета CCR до первого фронта импульса не должно быть. Поэтому: при установленном OCxFE таймер при получении триггера старта немедленно (а если точнее, всего лишь строго 3 цикла) формирует первый фронт на выходном пине (как будто произошло событие равенства CNT == CCR). Затем, при достижении счетчиком CNT значения CCR, ничего не происходит. А потом счет доходит до ARR, ножка формирует второй фронт и таймер выключается. P.S. Если у Вас вопрос только в том, почему требуется запись в CCR == 1, то я выше привел требование документации насчет запуска режима OPM для генерации импульса:
-
Тогда рекомендую поставить Win10 IoT. Там под корень выпилены виндовые магазины, службы не пойми чего, и т.д. Чистая голая винда для работы без лишних приложений.
-
Вот с их сайта😉 Device_limitations_of_GD32F45x_F40x_Rev1.2.pdf
-
Понял. Спасибо. Это, правда, требования к преобразователям, но все равно интересно почитать.