Как работает функция автосброса Arduino Deumilanove?


8

Я хотел бы услышать некоторые объяснения относительно того, как Arduino Duemilanove сбрасывает ATMega328P через USB через трансивер FTDI FT232R.

Я знаю, что IDE играет в некоторые игры с последовательным сигналом рукопожатия DTR. Посмотрев на схемы, мне действительно интересно узнать, как работает схема:

        100nF           10kOhm
DTR -----||------+------^v^v^----- VCC
                 |
                 +--/RESET

Резистор 10 кОм - это обычная нагрузка на линии сброса. Так что же делает конденсатор в этой цепи?

В качестве sidenote, я использовал это в качестве предлога, чтобы попытаться изучить / использовать LTSPICE, поэтому я не профессионал в этом инструменте. Я смоделировал это в LTSPICE следующим образом, но мне кажется, что сигнал / RESET точно соответствует сигналу DTR, что на самом деле не имеет смысла для меня. Я смоделировал сигнал DTR как источник импульсного напряжения, возможно, это неправильная модель. Это природа драйвера DTR FTDI (например, возможно, это открытый коллектор) или внутренняя часть вывода / RESET на MCU, которые отсутствуют в схеме, которую я нарисовал, которая заставляет все это электрически соединяться?

альтернативный текст

Кроме того, вот некоторые из соответствующих ссылок на таблицы и схемы для справки.

Ответы:


6

IIRC крышка подключена к / RTS не DTR.

Когда / RTS высокий, на кепке есть 0V. Когда / RTS становится низким, крышка не может мгновенно изменять напряжение, поэтому линия сброса становится низкой. Крышка заряжается через резистор 10К. Как только линия сброса становится выше порога сброса, запускается программа uC.

@LouisDavis ссылался на эту страницу , где говорится

ATmega168 сбрасывается путем подачи его контакта сброса на GND. ... установив линию DTR на LOW ... вывод сбрасывается на LOW, пока конденсатор не зарядится через внутренний подтягивающий резистор и R1 - который сбрасывает микросхему.

Симуляция:

Auto-Reset
VDTR    1 0 PWL(0 5 0.5m 5 0.000500004 0 1m 0)
Vcc 3 0 5
C1  1 2 100n
R1  3 2 10k
.control
delete all
tran 10n 5m
plot v(1) v(2)
.endc
.END

V (1) является DTRили /RTSи V (2) является/RESET
альтернативный текст


@jluciani, где ты видишь шапку на РТС? На RTS есть не заселенный резистор. Конденсатор (C13) подключен между DTR (вывод 2 FT232L) и выводом сброса MCU ...
vicatcu

@jluciani, ваше объяснение имеет смысл. Мне нравится ваше объяснение относительно мгновенного изменения напряжения на конденсаторах. Это удобный базовый принцип, который нужно иметь в виду. Отчасти меня интересует, почему обе стороны должны упасть до нуля, а затем одна сторона перезарядки, а не сторона DTR, просто разряжающаяся через внутреннее сопротивление контакта DTR? Кроме того, почему вы использовали источник PWL вместо источника PULSE в симе?
Викачу

@vicatu, я не знаю период или рабочий цикл импульса, и простое падение до 0 В хорошо проверяет все предположения.
Тыблу

@tyblu, да, я полностью намерен принять этот ответ, я просто надеюсь на некоторые уточнения в ответ на мои комментарии выше.
Викачу

@vicatcu входное сопротивление любого цифрового входа очень высокое. Не много тока будет течь. Зарядный ток может поступать только от цифрового выхода или 10K.
Jluciani
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.