Pin tiêu đề 11 có thể được sử dụng làm GPIO17 trong Windows 10 IoT không?


7

Tôi có một bảng bổ trợ máy phát Energenie RF phù hợp với tiêu đề Raspberry Pi (để biết thêm chi tiết, xem https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf ). Bảng này cho phép Raspberry Pi điều khiển tối đa 4 ổ cắm điện điều khiển bằng radio Energenie. Tôi đã thành công khi nó hoạt động trên Raspberry Pi B chạy Raspbian, với một tập lệnh Python đơn giản để xoay vòng các chân GPIO 6x mà nó sử dụng. Các chân GPIO mà nó sử dụng là:

  • GPIO17 (pin tiêu đề 11)
  • GPIO27 (pin tiêu đề 13)
  • GPIO22 (pin tiêu đề 15)
  • GPIO23 (pin tiêu đề 16)
  • GPIO24 (pin tiêu đề 18)
  • GPIO25 (pin tiêu đề 22)

Tôi đã dùng thử Windows 10 IoT trên Raspberry Pi 2 và tôi đã thành công khi sử dụng đèn LED nhấp nháy cơ bản bằng GPIO5 (pin tiêu đề 29), điều này chứng tỏ GPIO hoạt động và xác nhận API GPIO của Windows sử dụng đánh số GPIO hợp lý thay vì đánh số vật lý.

Tôi hiện đang cố gắng sử dụng bảng Energenie với Windows 10 IoT và gặp sự cố khi sử dụng GPIO17 (pin tiêu đề 11). Tôi sử dụng mã sau đây để thử và mở mã pin:

private GpioPin openPinForOutput(GpioController gpioController, int pinNumber)
{
    if (gpioController == null)
    {
        Debug.WriteLine("GPIO Controller is null");
        return null;
    }

    GpioPin pin = null;
    GpioOpenStatus status = GpioOpenStatus.PinOpened;

    bool success = gpioController.TryOpenPin(pinNumber, GpioSharingMode.Exclusive, out pin, out status);

    Debug.WriteLine("GPIO pin {0} status: {1}", pinNumber, status);

    return pin;
}

Khi tôi gọi phương thức này cho các chân GPIO cần thiết, tôi nhận được đầu ra sau:

GPIO pin 17 status: PinUnavailable
GPIO pin 22 status: PinOpened
GPIO pin 23 status: PinOpened
GPIO pin 27 status: PinOpened
GPIO pin 24 status: PinOpened
GPIO pin 25 status: PinOpened

Sau đó, tôi đã nhìn sâu hơn vào GPIO17 (pin vật lý 11) và thấy rằng theo https://ms-iot.github.io/content/en-US/win10/samples/PinMappingsRPi2.htm , Microsoft cho biết pin vật lý 11 là SPI1 CS0 .

https://ms-iot.github.io/content/images/PinMappings/RP2_Pinout.png

Có cách nào để lấy lại pin 11 vật lý như GPIO17 trong Windows 10 IoT không, hay chúng ta chỉ bị mắc kẹt với nó được cấu hình vĩnh viễn cho SPI1 CS0?


Biểu đồ không phải là Windows cụ thể. GPIO 17 SPI1 CS0 cho dù bạn đang sử dụng Raspbian hay Windows IoT. Ngay cả trong Raspbian, sửa đổi cấu hình, ví dụ: sử dụng 1 dây, sẽ ngăn một số chân hoạt động như IO mục đích chung. Bạn có thể thay đổi hành vi của pin bằng cách thay đổi cấu hình, như trong Raspbian.
Panagiotis Kanavos

Tái bút Tìm thấy điều đó ở Raspbian khi tôi kết nối đèn LED với pin mà trước đây tôi đã sử dụng cho 1-Dây
Panagiotis Kanavos

Windows, hoặc một trong những tác vụ đang hoạt động, đã mở SPI1. Tôi vẫn đang cố gắng tìm hiểu ai và tại sao. Nó cũng cản trở tôi.
Ron


Và liên kết của bạn chỉ chuyển hướng tôi đến liên kết của tôi.
David C.

Câu trả lời:


0

Có vẻ như Microsoft đã thêm hỗ trợ Pin Muxing. Như David C đã chỉ ra - liên kết của tôi ở trên đã được cập nhật với thông tin sau:

"Một số chân GPIO có thể thực hiện nhiều chức năng. Theo mặc định, các chân được định cấu hình là đầu vào GPIO. Khi bạn mở một chức năng thay thế bằng cách gọi I2cDevice.FromIdAsync () hoặc SpiDevice.FromIdAsync (), các chân được yêu cầu bởi chức năng sẽ tự động được chuyển đổi đã kết nối đúng chức năng. Khi thiết bị được đóng bằng cách gọi I2cDevice.Dispose () hoặc SpiDevice.Dispose (), các chân trở lại chức năng mặc định của chúng. "

Tôi cũng lưu ý rằng bây giờ họ liệt kê GPIO17 (pin 11) là mặc định cho GPIO bây giờ, vì vậy có vẻ như vấn đề ban đầu của tôi đã được khắc phục.

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.