Chức năng tự động đặt lại Arduino Deumilanove hoạt động như thế nào?


8

Tôi muốn nghe một số giải thích về cách Arduino Duemilanove đặt lại ATMega328P qua USB thông qua bộ thu phát FTDI FT 232R.

Tôi biết nó liên quan đến IDE chơi một số trò chơi với tín hiệu bắt tay nối tiếp DTR. Sau khi xem sơ đồ, điều tôi thực sự quan tâm để có cách xử lý tốt hơn là cách thức hoạt động của mạch:

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

Điện trở 10k là mức kéo lên thông thường trên dòng thiết lập lại. Vì vậy, các tụ điện thực hiện những gì trong mạch này?

Là một sidenote, tôi đã sử dụng nó như một cái cớ để thử và học / sử dụng LTSPICE, vì vậy tôi không chuyên nghiệp về công cụ này. Tôi đã mô hình hóa nó trong LTSPICE như sau, nhưng có vẻ như tín hiệu / RESET chỉ khớp chính xác với tín hiệu DTR, điều này thực sự không có ý nghĩa với tôi. Tôi đã mô hình hóa tín hiệu DTR như một nguồn điện áp xung, có thể đó là mô hình sai. Đây có phải là bản chất của trình điều khiển DTR của FTDI (ví dụ: có lẽ đó là trình thu thập mở) hoặc phần bên trong của pin / RESET trên MCU không có trong mạch mà tôi đã vẽ để làm cho tất cả được kết nối với nhau bằng điện?

văn bản thay thế

Ngoài ra, đây là một số liên kết có liên quan đến datasheets và sơ đồ để tham khảo.

Câu trả lời:


6

IIRC nắp được nối với / RTS chứ không phải DTR.

Khi / RTS cao, có 0V trên nắp. Khi / RTS xuống thấp, nắp không thể thay đổi điện áp ngay lập tức để đường dây đặt lại xuống thấp. Các nắp sạc qua điện trở 10K. Khi dòng đặt lại vượt quá ngưỡng đặt lại, chương trình uC sẽ bắt đầu.

@LouisDavis đã tham khảo trang này , trong đó nêu rõ

ATmega168 được đặt lại bằng cách đặt chân thiết lập lại thành GND. ... bằng cách đặt dòng DTR thành THẤP ... chân thiết lập lại bị hút về mức THẤP cho đến khi tụ được sạc qua điện trở kéo lên bên trong và R1 - thiết lập lại chip.

Mô phỏng:

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) là DTRhoặc /RTSvà V (2) là/RESET
văn bản thay thế


@jluciani, Bạn đang thấy một chiếc mũ trên RTS ở đâu? Có một điện trở không dân cư trên RTS. Tụ điện (C13) được nối giữa DTR (chân FT 232L 2) và chân đặt lại của MCU ...
Abbeyatcu

@jluciani, Giải thích của bạn có ý nghĩa tốt. Tôi thích lời giải thích của bạn về việc không có sự thay đổi tức thời về điện áp trên các tụ điện. Đó là một nguyên tắc cơ bản tiện dụng cần ghi nhớ. Một phần của tôi tự hỏi tại sao cả hai bên nên giảm về 0 sau đó nạp lại một bên, thay vì phía DTR chỉ đơn giản xả qua điện trở bên trong của pin DTR? Ngoài ra tại sao bạn sử dụng nguồn PWL thay vì nguồn PULSE trong sim?
Abbeyatcu

@vicatu, tôi không biết chu kỳ hoặc chu kỳ nhiệm vụ của xung và việc giảm xuống 0V đơn giản xác minh tất cả các giả định độc đáo.
tyblu

@tyblu, vâng tôi hoàn toàn có ý định chấp nhận câu trả lời này, tôi chỉ hy vọng một số chi tiết để đáp lại những bình luận của tôi ở trên.
Abbeyatcu

@vicatcu điện trở đầu vào của bất kỳ đầu vào kỹ thuật số nào là rất cao. Không có nhiều hiện tại sẽ chảy. Dòng sạc chỉ có thể đến từ đầu ra kỹ thuật số hoặc 10K.
jluciani
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.