Bagaimana cara Fungsi Atur Ulang Otomatis Arduino Deumilanove?

8

Saya ingin mendengar beberapa penjelasan tentang bagaimana Arduino Duemilanove mereset ATMega328P melalui USB melalui transceiver FTDI FT232R.

Saya tahu itu melibatkan IDE memainkan beberapa game dengan sinyal handshaking serial DTR. Setelah melihat skema, yang saya benar-benar tertarik untuk mendapatkan pegangan yang lebih baik adalah bagaimana rangkaian ini bekerja:

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

10k resistor adalah pull-up yang biasa di garis reset. Jadi apa yang dicapai kapasitor dalam rangkaian ini?

Sebagai sidenote, saya menggunakan ini sebagai alasan untuk mencoba dan belajar / menggunakan LTSPICE, jadi saya tidak pro pada alat ini. Saya memodelkannya dalam LTSPICE sebagai berikut, tetapi bagi saya sepertinya sinyal / RESET hanya cocok dengan sinyal DTR, yang sebenarnya tidak masuk akal bagi saya. Saya memodelkan sinyal DTR sebagai sumber Pulse Voltage, mungkin itu model yang salah. Apakah sifat driver DTR FTDI (mis. Mungkin itu kolektor terbuka) atau internal / pin RESET pada MCU yang tidak ada di sirkuit yang saya gambar yang membuat ini semua menggantung bersama secara elektrik?

teks alternatif

Juga, berikut adalah beberapa tautan yang relevan ke lembar data dan skema untuk referensi.

vicatcu
sumber

Jawaban:

6

IIRC tutup kabel ke / RTS bukan DTR.

Ketika / RTS tinggi ada 0V di tutupnya. Ketika / RTS menjadi rendah tutupnya tidak dapat mengubah tegangan secara instan sehingga saluran reset menjadi rendah. Tutup mengisi melalui resistor 10K. Setelah garis reset di atas ambang reset, program UC memulai.

@LouisDavis mereferensikan halaman ini , yang menyatakan

ATmega168 diatur ulang dengan menggeser pin reset ke GND. ... dengan mengatur garis DTR ke RENDAH ... pin reset akan tersedot ke RENDAH sampai kapasitor diisi melalui resistor pull up internal dan R1 - yang mengatur ulang chip.

Disimulasikan:

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) adalah DTRatau /RTSdan V (2) adalah/RESET
teks alternatif

jluciani
sumber
@ jluciani, Di mana Anda melihat batasan pada RTS? Ada resistor tidak diisi pada RTS. Kapasitor (C13) dihubungkan antara DTR (FT232L pin 2) dan pin reset MCU ...
vicatcu
@ jluciani, Penjelasan Anda masuk akal. Saya suka penjelasan Anda tentang tidak ada perubahan tegangan pada kapasitor secara instan. Itu prinsip dasar yang berguna untuk diingat. Bagian dari saya bertanya-tanya mengapa kedua belah pihak harus turun ke nol kemudian mengisi satu sisi, daripada sisi DTR hanya mengeluarkan melalui resistansi internal pin DTR? Juga mengapa Anda menggunakan sumber PWL dan bukan sumber PULSA dalam sim?
vicatcu
@vicatu, saya tidak tahu periode atau siklus tugas pulsa, dan penurunan sederhana ke 0V memverifikasi semua asumsi dengan baik.
tyblu
@tyblu, ya saya sepenuhnya berniat untuk menerima jawaban ini, saya hanya berharap untuk beberapa perincian dalam menanggapi komentar saya di atas.
vicatcu
@vicatcu resistansi input dari setiap input digital sangat tinggi. Tidak banyak arus akan mengalir. Arus pengisian hanya dapat berasal dari output digital atau 10K.
jluciani