2010-04-08 31 views
5

Tôi có những gì tôi hy vọng là một câu hỏi đơn giản liên quan đến vi điều khiển Atmel AVR. Vì vậy, tôi muốn sử dụng bộ so sánh tương tự của ATTiny85 để xác định xem tín hiệu ở trên hay dưới ngưỡng. Tín hiệu này thường "nổi" và được kéo về phía mặt đất khi "hoạt động" (nghĩa là tín hiệu thu nhỏ mở đang hoạt động). Nếu tôi cho phép các pullup trên pin đầu vào (mà cũng là đầu vào so sánh) bằng cách thực hiện:AVR so sánh tương tự + nội bộ pullup?

DDRB = 0x00; // DDRB.1 = 0 = input 
PORTB = 0xFF; // PORTB.1 = 1 = internal pullup enabled 

Nếu tôi sử dụng các tín hiệu tương tự và chọn PORTB.1 như AIN1 sẽ các pullup nội bộ được áp dụng cho tín hiệu đầu vào của tôi ? Tôi hy vọng một người nào đó có kinh nghiệm cá nhân để xác minh hành vi này. Hy vọng câu hỏi này không phải là quá 'định hướng phần cứng' cho ngăn xếp tràn. Cảm ơn!

CHỈNH SỬA Để trả lời một số nhận xét dưới đây về hiệu ứng "tại sao không xử lý số", cảm biến của tôi được tạo ra bởi cảm biến IR. Tôi không thể chắc chắn rằng nó sẽ kéo xuống "đủ cứng" để được diễn dịch như là một số không, vì vậy tôi sẽ sử dụng tham chiếu 2.56V nội bộ như ngưỡng chuyển đổi của tôi. Tôi chỉ đang cố gắng chọn "sự kiện IR", vì vậy đây dường như là cách đơn giản nhất đối với tôi.

Ngoài ra, bằng cách sử dụng bộ so sánh tương tự, tôi có thể phát hiện sự kiện "không đồng bộ" bằng ISR. Cấp một số các chân có thể gọi một ngắt trên một cạnh kỹ thuật số, nhưng người ta không muốn dựa vào phản ứng để nhúng dưới V_IL.

Trả lời

4

Từ hình 01-hình 10-5 bạn có thể thấy đầu vào cho giai đoạn tương tự bị ảnh hưởng bởi việc kéo lên.

Vì vậy, bạn có thể sử dụng nội bộ kéo lên cùng với bộ so sánh. Như đã đề cập bởi biểu dữ liệu, bạn có thể muốn tắt giai đoạn đầu vào số của cổng đó để giảm mức tiêu thụ điện - tất nhiên chỉ khi bạn không sử dụng nó cho đầu vào kỹ thuật số.

Lưu ý: Chân nổi có thể gây ra mức tiêu thụ lớn hiện tại cho giai đoạn nhập kỹ thuật số. Cố gắng tránh chúng.

+0

+1 để chuyển anh ta đến biểu dữ liệu; luôn là nơi đầu tiên để xem xét. – Clifford

+0

Yea, đó là những gì tôi nghĩ, cảm ơn! – vicatcu

+0

Thật không may, tôi đã chấp nhận câu trả lời này trước khi dùng thử. Nó chỉ ra (mặc dù suy luận từ các thông số kỹ thuật) rằng nội bộ pullup * phải * bị vô hiệu hóa để sử dụng một pin như là một đầu vào để so sánh tương tự. – vicatcu

2

Tôi không thể nói một thực tế là nó sẽ hoạt động (tôi chưa bao giờ làm trường hợp bạn mô tả), nhưng nói điện tử lý do của bạn là âm thanh. Khi công tắc được mở, AIN1 sẽ thấy VCC thông qua pullup nội bộ, và khi switch được đóng lại, cả hai sẽ thấy 0V.

Nếu không đọc bảng dữ liệu cho bộ xử lý đó, bạn sẽ không thể sử dụng nội bộ kéo lên ghim được định cấu hình cho đầu vào tương tự; trong trường hợp đó, bạn có thể sử dụng một pin trên chip, cấu hình như một đầu vào kỹ thuật số, cho pullup:

VCC 
| 
100k(?) 
| 
Other---AIN1 
     | 
     /
     | 
     GND 

Nhưng nếu điện áp trên AIN1 là liên tục trong "không logic cao và cũng không logic thấp "phạm vi, điều đó có thể làm giảm mức tiêu thụ hiện tại của bạn khá cao.

+0

Trừ khi có điều gì đó khác xảy ra ở đây sử dụng một pin đầu vào kỹ thuật số với một kéo lên cho điều này, không có lý do để sử dụng so sánh. Với mức tăng sử dụng năng lượng của tín hiệu thu mở không nên xấu. Khi ghim đang nổi, nó sẽ rất gần 0. – Mark

+0

đã chỉnh sửa câu hỏi của tôi theo phản hồi này, cảm ơn! – vicatcu

+0

@Mark đã chỉnh sửa câu hỏi của tôi theo phản hồi này, cảm ơn! – vicatcu

2

Thông thường bạn sẽ sử dụng đầu vào số với tính năng kéo lên vì bạn dường như có tín hiệu đầu vào kỹ thuật số.

Có lý do nào để sử dụng đầu vào tương tự không?

+1

+1 để đặt câu hỏi rõ ràng "tại sao điều này cần một đầu vào tương tự khi chỉ có hai trạng thái quan tâm?". Âm thanh như một ứng cử viên cho một đầu vào kỹ thuật số với tôi. – Clifford

+0

đã chỉnh sửa câu hỏi của tôi theo phản hồi này, cảm ơn! – vicatcu

+0

@Michael đã chỉnh sửa câu hỏi của tôi theo phản hồi này, cảm ơn! – vicatcu

Các vấn đề liên quan