Tôi không thể tìm thấy sơ đồ nội bộ cụ thể cho phần của NXP trong Hướng dẫn sử dụng , vì vậy tôi sẽ giải thích bằng cách sử dụng sơ đồ được tìm thấy trong ATMEL ATMega328 , nhưng chúng sẽ trông giống nhau.
Hình ảnh cho thấy sơ đồ nội bộ cho một pin duy nhất. Phần nổi bật là phần pin hướng cổng. Khi Cổng được đặt thành đầu ra (thông qua cơ sở dữ liệu, trong đó người ta có thể đặt từng pin riêng lẻ thành Đầu vào hoặc Đầu ra và thông qua tín hiệu Điều khiển bên trong WDx, "ngăn chặn" dữ liệu trên bus dữ liệu sang flip-flop), bộ đệm được kích hoạt và bắt đầu đưa pin đến các mức logic (điện áp) trên chân đầu ra *.
Khi chân được đặt làm đầu vào, chân kích hoạt trên bộ đệm đó được định cấu hình để bộ đệm là đầu ra Trở kháng cao, do đó không đưa chân đến bất kỳ mức điện áp cụ thể nào. Điều đó trở thành một nhiệm vụ cho các mạch được kết nối với pin đó trong mạch bên ngoài vi điều khiển. Lưu ý, trong trường hợp của Atmel, việc đọc trạng thái logic của pin (phần dưới cùng của sơ đồ) luôn đọc trạng thái thực tế của pin đó, không quan trọng nếu đó là pin đầu vào hoặc đầu ra. Cấu hình một pin làm đầu vào cũng cho phép người dùng kích hoạt điện trở kéo lên bên trong vi điều khiển.
*: Tôi đang bỏ qua colector mở và các loại ghim khác vì tôi nghĩ nó không liên quan đến câu hỏi này. Các hoạt động nên được tương tự, mặc dù.
Cách cài đặt / xóa mã pin làm cho nó là đầu ra / đầu vào. Tôi nghĩ rằng đó là do các bóng bán dẫn kéo lên và kéo xuống nhưng tôi không thể kết luận một lý do cụ thể.
Lưu ý rằng bạn đặt thanh ghi hướng, không phải chính trạng thái pin. Chúng là những thứ khác nhau. Cài đặt / xóa chân cho phần cứng biết điện áp nào sẽ được đặt vào đầu ra của bộ đệm đầu ra (khi được bật bởi chân kích hoạt), trong khi cài đặt / xóa hướng của pin sẽ báo cho micro biết nếu bộ đệm đầu ra sẽ kích hoạt hoặc vô hiệu hóa tất cả.