Очевидно, что для ШИМ требуются вычислительные ресурсы (и, следовательно, они не могут быть выполнены одновременно с другими процессами), но если бы мне пришлось установить вывод в качестве выхода 5 В или 0 В, остаются ли эти состояния постоянными или они постоянно «обновляются», так как микроконтроллер работает с другими процессами ?
Это трудно объяснить в тексте, поэтому я подумал об аналогии с моим вопросом. Представьте, что у меня в руке стакан, и я получил указание поставить его на стол. Затем я получил указание сесть в кресло.
Стекло на столе это состояние. Я оставляю стакан на столе, или я поднимаю его на место, сажусь и повторяю очень быстро, чтобы вы не понимали, что стакан когда-либо был снят со стола?
Или, может быть, проще - микроконтроллер «забывает», если хотите, о состояниях своих выводов, если вы явно не запрограммировали изменение состояния?
Надеюсь, я сделал это как можно более запутанным.
источник
Ответы:
То, как я интерпретирую вопрос, не имеет никакого отношения к ШИМ, извините, если я далеко от базы, но похоже, что вы использовали его в качестве примера.
Почти все типы микроконтроллеров и устройств с вводом / выводом используют защелки / FF для управления своими выходными цепями. Это означает, что когда вы устанавливаете состояние, оно остается в этом состоянии. Это не похоже на DRAM, где выходная статистика должна постоянно обновляться, чтобы оставаться в своем состоянии.
На вашем примере со стеклом я никогда не видел оборудования, которое бы неоднократно брало и ставило стекло на стол. Он только поставит стекло на стол и оставит его там до тех пор, пока не будет запрошено изменение состояния.
Возвращаясь к ШИМ (на тот случай, если вы на самом деле спрашивали о ШИМ). Независимо от того, используете ли вы этот бит или ваш микроконтроллер имеет выделенное оборудование, как указано в других сообщениях, доступ к блоку ввода-вывода и его изменение возможен только в том случае, если изменение состояния запрашивается при запуске кода или периферийного устройства ШИМ.
источник
Микроконтроллер не должен обновлять выходы. Как только они установлены, они сохраняют свое состояние в течение неопределенного времени (до тех пор, пока власть не будет снята). В то время как в старых процессорах для поддержания состояния процессора требовались часы, современные процессоры называются полностью статичными. Это означает, что часы действительно могут быть остановлены, и все останется в своем текущем состоянии. Это потому, что все регистры (включая ввод / вывод) создаются с использованием триггеров.
источник
Большинство современных микроконтроллеров имеют выделенную аппаратную периферию PWM, которая заботится о PWM, очень грубая аналогия может быть:
Ядро процессора сообщает периферийным устройствам: «переключайте этот вывод на частоте 10 кГц и 50% -ном рабочем цикле, пока я не скажу иначе». Тогда ядро может свободно заниматься другими делами. Он может установить прерывание, то есть попросить периферийное устройство сообщить ему, когда происходит что-то интересное.
Вы можете думать о ядре как о «начальнике», а о периферии - как о специалистах. Ядро управляет всей программой (читает каждую инструкцию и действует по ней) и «просит» периферийные устройства выполнять различные задачи и уведомлять об этом, когда они их выполнили.
По вашей аналогии, это будет похоже на то, как если бы другой человек держал стакан, вы велели ему поставить его на стол, пока вы можете свободно сидеть на стуле.
Если у микро не было выделенного периферийного устройства, то ему пришлось бы делать это «вручную» (т.е. самому) и отслеживать состояние выводов и время между переключениями. Это будет означать множество циклов, посвященных довольно мрачным вещам, которые легко обрабатываются простым периферийным устройством.
Вот схема компоновки популярного 8-битного микроконтроллера PIC16F690 . Обратите внимание на периферию, расположенную внизу:
источник
Вы делаете некоторые предположения, которые не совсем верны. Кроме того, да, вы сделали вопрос как можно более запутанным. Шутки в сторону.
ШИМ может выполняться одновременно с другими процессами. Если это сделано программно, вы используете прерывания по таймеру для генерации ШИМ-сигнала на выводе GPIO. Другие прерывания могут выполняться, и основной процесс - это делать не связанные вещи. Кроме того, многие MCU могут выполнять ШИМ непосредственно в периферийном устройстве таймера, освобождая MCU для других целей.
Что касается выводов ввода / вывода, они мультиплексированы. Но вы контролируете, как они мультиплексируются, так что это не проблема.
источник
Большинство выводов ввода / вывода на микроконтроллерах являются многофункциональными, но я бы не назвал их мультиплексными.
Например, несколько контактов AVR могут использоваться в качестве цифрового входа, цифрового выхода или аналогового входа. Обычно вы выбираете желаемую функцию как часть инициализации программы, а не изменяете ее позже (хотя я мог бы найти причину изменить аналоговый вход на цифровой вход для просмотра того же сигнала.)
Для цифровых выходов, после того, как выводы установлены как выходы, они будут хранить последнее значение, записанное им процессором, - нет необходимости периодически «обновлять» их.
источник
В простом примере аппаратного ШИМ периферийного устройства микроконтроллера 8-разрядный счетчик может быть подключен к 8-разрядному цифровому компаратору. Микроконтроллер будет загружать число в компаратор и увеличивать счетчик системными часами или какой-либо его предварительно разделенной версией. затем счетчик будет работать в автономном режиме, отсчитывая от 0 до 255 и возвращаясь к нулю несколько раз. Компаратор будет иметь вывод, указывающий, является ли значение счетчика большим или меньшим, чем значение компаратора. Это станет выходом ШИМ. Период ШИМ будет означать, сколько времени потребуется счетчику для завершения цикла счета, а рабочий цикл будет равен доле общего счета, представленной значением компаратора. Код микроконтроллера не будет иметь ничего общего с первоначальной настройкой аппаратного обеспечения и изменением данных компаратора при желании изменить шим. ШИМ будет выводить непрерывный поток импульсов ШИМ без внимания процессора.
источник