12
Подключаемые резисторы (как внутренние, так и внешние), необходимые только для контактов MCU INPUT? Напротив, контакт MCU, сконфигурированный как OUTPUT, «знает, на каком уровне он находится», потому что он управляет - «плавающий» вывод MCU OUTPUT, привязанный к некоторому входу другой схемы, не имеет смысла, поскольку состояние вывода MCU может быть только высоким или низким... у меня это право? Теперь, при загрузке или сбое MCU, может оказаться выгодным, чтобы привязка к линии ввода «MCU output to IC input» была привязана к этому каналу, чтобы гарантировать, что вход в какой-либо IC никогда не плавает.
Может быть, я просто ответил на свой вопрос здесь... резисторы pull-up/down могут использоваться как на входных, так и на выходных контактах, в зависимости от приложения?
Сортировка:
Активность
16
Вытягивание и выталкивание обычно используются для обеспечения того, что линия имеет определенное состояние, а не активно. Они используются на входах для предотвращения плавающих линий, быстрого переключения между высоким и низким и средним «неопределенным» регионом. Выходы обычно не нужны.
Но большинство контактов mcu являются GPIO, а иногда при запуске определяются как входы вместо выходов. Как вы уже сказали, иногда вы не хотите, чтобы входной сигнал IC-штыря плавал при запуске, особенно как штырь сброса, который вы обычно будете использовать с вашим GPIO вашего микроконтроллера.
Это когда вы используете Weak Вытягивание или выключение на линии. Поскольку они слабы, и вы выбираете состояние по умолчанию, они не создают помех для вашей схемы (если входной сигнал всегда должен быть низким, а затем вытягивается высоко, вы выбираете слабое выключение и наоборот), но они потребляют немного тока. Вот почему вы выбираете резистор слабый (более высокий, более слабый), достаточный для работы.
Других нормальные настройки вывода, который использует подтягиваться (или отжимания, реже) является Open Drain или открытого коллектор соединения. Они только приводят к низкому соединению или освобождают линию, оставляя ее плавающей. Подтягивания используются, чтобы привести линию в высокое логическое состояние.
0
Вы упомянули соединения Open Drain и Open Collector, они не применяются к микроконтроллерам, не так ли? Просто Моссеты используются для установки логического уровня? Я хотел уточнить, может ли микроконтроллер управлять линией с высоким сопротивлением выталкивания. - genericpurpleturtle 16 окт. 17 2017-10-16 12:00:41
7
У вас есть это право; обычно вам не нужны подтягивания на выходах, но они могут быть полезны для обеспечения безопасности во время загрузки и т. д.
Еще одна причина использования подтягивания на выходе: если к каждому подключению подключено несколько выходов нескольких MPU другой, вы действительно не хотите, чтобы один вождение VCC и еще один вождение 0V по тому же проводу! Таким образом, вы либо набираете 0V на выходе, либо отключите выход (возможно, настроив его как вход). Когда все выходы отключены, провод подтягивается до «1» (Vcc). Это называется «проводным И» сигналом. (Вы можете сделать то же самое вождение «1» или выключить, с выпадающим R, тогда он называется проводным OR).
Этот шаблон имеет несколько применений, в том числе позволяет любому одному MPU сигнализировать об ошибке или включать светодиод или позволять им по очереди передавать сообщения друг другу по одному проводу.
2
Ответ: это зависит от семейства микроконтроллеров и от того, что по умолчанию является положением Power On Reset. Если микроконтроллер может быть сконфигурирован только для «выхода» или «ввода» на штырь, это обычно означает, что для вывода используется драйвер тотема-полюса, что означает, что это, по сути, выход CMOS-затвора, и в этом случае выход всегда приводится к рельсу, поэтому нет причин пассивно влиять на него. Единственный случай, когда имеет смысл использовать pull-ups/pull-downs на выходе, когда он настроен как Open Collector/Open Drain топология. Гораздо чаще встречаются внутренние параметры pull-up/pull-down, которые применимы только тогда, когда контакт сконфигурирован как вход. Если вы можете гарантировать, что в вашей системе вход всегда управляется чем-то, это отнимает немного энергии.
3
Как вы заявили, использование резисторов pullup/pulldown на выводах, которые, как ожидается, выводятся, могут быть там, чтобы гарантировать входное состояние.
Это делается для уменьшения прошивки/отказа MCU, но будет работать только для защиты от состояния высокого импеданса (в основном штырь сконфигурирован как вход случайно).
Сисадмин (он же на английском языке sysadmin , system administrator ) - сокращенное наименование профессии, полное название которой на русском языке звучит как системный администратор . Данная профессия в последнее время стала очень популярной для большинства молодых, и не очень, людей, ей обучают, по ней работают, за неё получают хорошие деньги. Связано это с бурным развитием различных компьютерных технологий и их проникновением во все сферы человеческой жизни. Слово сисадмин часто используется в разговорной речи, в вакансиях и резюме при поиске работы, одним словом - везде. Ниже пойдет речь о том, что же представляет из себя профессия системного администратора.
В современных реалиях, системным администратором может называться фактически любой человек, который занимается обслуживанием и поддержанием работы определенной компьютерной сети, включая все её аппаратные и/или программные компоненты, в которую могут входить:
Так же в определенных случаях, на плечи системного администратора могут лечь обязанности по обеспечению должной информационной безопасности.
В зависимости от своей специализации, системный администратор может заниматься следующими видами деятельности:
За бортом описанных выше занятий системного администратора остались такие возможные вещи, как администрирование баз данных (Microsoft SQL, MySQL и его множественные ответвления, Oracle и т. д.), администрирование 1C (не путать с "программист 1C"), АТС и многое другое.
В одном из ранних уроков мы узнали, что при помощи ШИМ можно изменять скважность сигнала. Тем самым регулировали яркость свечения светодиода. Однако есть более интересный способ, использования широтно-импульсной модуляции.
Итак… Если пропустить генерируемый сигнал через фильтр низких частот, то получится постоянное напряжение.
Так как скважность изменяется от 0 до 0xFF(255), значит у нас будет 255 уровней постоянного напряжения. Проще говоря, есть диапазон напряжения, допустим от 0 до 5В, этот диапазон разбивается на 255 значений. С шагом 5/255=0,0196В можно выставить любое напряжение.
Используя в определенном порядке эти значения, можно получить практически любую форму сигнала. Например, увеличивая заполнение от 0 до 255, а потом уменьшая от 255 до 0 получим пилообразный сигнал.
Теперь перейдем к конкретной цели: получить синусоиду с частотой 50Гц с помощью микроконтроллера Atmega8. Глобальная задача — выставлять через определенные промежутки времени напряжение на выходе ШИМ, по синусоидальному закону.
Разберемся с первой частью задачи. Для того, получить определенные промежутки времени воспользуемся таймером. Допустим таймер настроен на частоту 8МГц, т.е. он будет тикать 8000000 раз в секунду. Синусоида колеблется 50 раз в секунду, значит на один период может приходиться 8000000/50=160000 тиков максимум. Раз у нас 256 уровней напряжения, то и максимальное разрешение синусоиды будет равняться 256.
Что же такое разрешение синуса? В данном случае это количество точек за период по которым построена синусоида. Для примера я построил в Excel, то как будет выглядеть синусоида для разного разрешения.
Для синуса с разрешением 4:
Для синуса с разрешением 8 точек:
Для синуса с разрешением 16 точек:
Думаю «эволюция» синуса наглядно видна — чем больше точек(разрешение), тем меньше угловатостей и тем больше он похож на нормальную синусоиду. В итоге я решил остановиться на разрешении синуса в 128 точек.
Теперь объединяем все сказанное ранее, 160000 тиков делим на разрешение 128 получаем 1250 — через столько тиков должно сработать прерывание, чтобы выставить следующий уровень напряжения. Значение 1250 нужно пихать в регистр сравнения OCR1A
OCR1AH=0x04;
OCR1AL=0xE2;
Вторая часть глобальной задачи — как построить синусоиду. Вспомним математику:D… Синус изменяется от -1 до 1. ШИМом сгенерить отрицательное напряжение не получится. Поэтому нужно сместить график над осью Х — sin(x)+1. Теперь он будет изменяться от 0 до 2, тоже не вариант, т.к. у нас 256 значений напряжения, поэтому умножим на 127, чтобы максимальным было значение 256. В итоге откопал такую формулу:
128 — разрешение синуса, х — номер точки по (от 0 до 128). Сосчитал в Excel, получился массив sin из 128 значений, которые по очереди подставляются в OCR2.
Последнее о чем стоит упомянуть — фильтр низких частот, возможно в ближайшее время появится урок по фильтрам. В данный момент, формулы для его расчета не имеет смысла приводить, т.к. есть сайты с возможностью онлайн расчетов, достаточно набрать «фнч» в гугле.
Файл прошивки и протеуса
SPI (Serial Peripheral Interface) – последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом.SPI является синхронным протоколом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI.
В SPI используются четыре цифровых сигнала:
В зависимости от комбинаций полярности и фазы синхроимпульсов возможны четыре режима работы SPI.
Режим SPI | Временная диаграмма |
Режим SPI0
|
|
Режим SPI1
Активные уровень импульсов — высокий. |
|
Режим SPI2
Сначала защёлкивание, затем сдвиг. |
|
Режим SPI3
Активные уровень импульсов — низкий. Сначала сдвиг, затем защёлкивание. |
|
В таблице принято:
Мастеру приходится настраиваться на тот режим, который используется ведомым.
При обмене данными по интерфейсу SPI микроконтроллер может работать как ведущий (режим Master) либо как ведомый (режим Slave). При этом пользователь может задавать следующие параметры:
Соединение двух микроконтроллеров по структуре ведущий – ведомый по интерфейсу SPI осуществляется по следующей схеме.
Выводы SCK, CS для ведущего микроконтроллера являются выходами, а ведомого микроконтроллера – входами.
Передача данных осуществляется следующим образом. При записи в регистр данных SPI ведущего микроконтроллера запускается генератор тактового сигнала модуля SPI, и данные начинают побитно выдаваться на вывод MOSI и соответственно поступать на вывод MOSI ведомого микроконтроллера. После выдачи последнего бита текущего байта генератор тактового сигнала останавливается с одновременной установкой в «1» флага «Конец передачи». Если поддерживаются и разрешены прерывания от модуля SPI, то генерируется запрос на прерывание. После этого ведущий микроконтроллер может начать передачу следующего байта либо, подав на вход SS ведомого напряжение уровня логической «1», перевести его в состояние ожидания.
Одновременно с передачей данных от ведущего к ведомому происходит передача и в обратном направлении, при условии, что на входе SS ведомого присутствует напряжение низкого уровня. Таким образом, в каждом цикле сдвига происходит обмен данными между устройствами. В конце каждого цикла флаг прерывания устанавливается в «1» как в ведущем микроконтроллере, так и в ведомом. Принятые байты сохраняются в приемных буферах для дальнейшего использования.
При приеме данных принятый байт должен быть прочитан из регистра данных SPI до того, как в сдвиговый регистр поступит последний бит следующего байта. В противном случае первый байт будет потерян.
Вывод SS предназначен для выбора активного ведомого устройства и в режиме Slave всегда является входом. Каждый раз, когда на вывод SS подается напряжение уровня логической «1», происходит сброс модуля SPI. Если изменение состояния этого вывода произойдет во время передачи данных, и прием, и передача немедленно прекратятся, а передаваемый и принимаемый байты будут потеряны.
Если микроконтроллер находится в режиме Master, направление передачи данных через вывод SS определяется пользователем. Если вывод сконфигурирован как выход, он работает как линия вывода общего назначения и не влияет на работу модуля SPI. Как правило, в этом случае он используется для управления выводом SS микроконтроллера, работающего в режиме Slave.
Если вывод сконфигурирован как вход, то для обеспечения нормальной работы модуля SPI на него должно быть подано напряжение высокого уровня. Подача на этот вход напряжения низкого уровня от какой-либо внешней схемы будет воспринята модулем SPI как выбор микроконтроллера в качестве ведомого (при этом ему начинают передаваться данные).
Пример использования интерфейса SPI для микроконтроллеров STM32 хорошо описан в
nanbaby.ru - Здоровье и красота. Мода. Дети и родители. Досуг. Быт. Дом