Câu trả lời ngắn
Không, bạn (gần như) không. Đó thực sự là một cách khác - bạn phải thiết lập chúng không phải là GPIO mà là để phục vụ mục đích đặc biệt của chúng. Ngoại lệ duy nhất là chân UART. Ngoài ra và chân I²C bằng cách nào đó đặc biệt.
Chân UART
Các chân UART được sử dụng bởi kernel cho console. Bạn sẽ phải cấu hình hệ thống không sử dụng chúng nếu bạn muốn chúng có sẵn cho việc sử dụng của bạn:
- chỉnh sửa
/boot/cmdline.txtvà loại bỏ console=ttyAMA0,115200và kgdboc=ttyAMA0,115200các tham số
chỉnh sửa /etc/inittabvà nhận xét (đặt #ký tự trước nó) dòng:
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
khởi động lại RaspberryPi của bạn
Bây giờ các chân không nên được sử dụng bởi hệ thống và bạn có thể sử dụng chúng
Chân I²C
Chân I²C có lắp đặt điện trở kéo lên 1,8k. Họ không thể bị vô hiệu hóa. Điều này giới hạn việc sử dụng ghim trong một số trường hợp (nhưng có thể có ích trong những trường hợp khác).
Giải pháp bổ sung
Nếu sắp hết chân GPIO, đôi khi bạn có thể dễ dàng mở rộng số của nó bằng cách sử dụng một số phần cứng bổ sung (nhưng đơn giản). Ví dụ, đối với đầu ra, bạn có thể sử dụng shift registershoặc I²C I/O expanders(còn gọi là bộ mở rộng bus I²C), cả hai đều dễ dàng mua và sử dụng. Bạn có thể tìm thấy ví dụ về việc sử dụng nó ở đây .
PFC8574(hoặc tương tự từ gia đình này) rất phổ biến đến nỗi có một mô-đun hạt nhân sẵn sàng xử lý tất cả các giao tiếp cho bạn ( nó không được kích hoạt trong kernel RaspberryPi chính thức, bạn sẽ cần phải biên dịch kernel của chính mình để sử dụng nó ). Mô-đun được gọi gpio_pcf857x, với điều kiện bạn đã tải nó modprobe(cùng với trình điều khiển I²C) và bạn có chip được kết nối với I²Cxe buýt, bạn có thể kích hoạt nó như thế này:
echo pcf8574 0x27 > /sys/class/i2c-adapter/i2c-0/new_device
nơi pcf8574là tên con chip thực tế của bạn (mô-đun này có thể xử lý vài chip khác nhau như pca967xvà max732x) và 0x27là địa chỉ của nó trên I²C(bạn có thể cấu hình địa chỉ của chip khi dây nó).
Điều này sẽ tạo các mục trong /sys/class/gpio/thư mục cho phép bạn sử dụng chúng giống như các cổng GPIO khác trong RaspberryPi, với điều kiện bạn đang sử dụng sysgiao diện (ví dụ như wiringPiSetupSys()trong WiredPi). Thật không may, RPi.GPIOmô-đun của Python không hỗ trợ chế độ này nên nó sẽ không thể sử dụng các chân này với thư viện này. Các chân sẽ có một số số cao như 248-255 hoặc tương tự.
Lưu ý: PCF8574 là sinking current- nó có thể cung cấp cho ổ đĩa (chấp nhận ở trạng thái thấp) nhiều như 20mA nhưng nó chỉ có thể nguồn 0,1mA ở trạng thái cao. Điều này có nghĩa là bạn thường sẽ sử dụng nó trong logic đảo ngược, tức là +3.3V -> LED -> RESISTOR -> PCF8574_PIN.