Phát hiện sự hiện diện của NRF24L01


7

Tôi đã điều chỉnh thư viện RF73 / RFM73 cho NRF24L01. Các chip này gần như giống hệt nhau, ngoại trừ RFM73 có ngân hàng đăng ký thứ hai phải được khởi tạo với một số giá trị ma thuật. RFM73 có một lệnh đặc biệt để chuyển đổi giữa các ngân hàng và một chút trong thanh ghi trạng thái cho biết ngân hàng hiện tại. Điều này cung cấp một cơ chế tốt để kiểm tra sự hiện diện của chip (chuyển đổi ngân hàng khác và kiểm tra xem bit trong thanh ghi trạng thái bật), mà không làm phiền bất kỳ cài đặt hoặc truyền bất cứ điều gì.

Có ai tìm thấy một tính năng của NRF24L01 có thể được sử dụng theo cách tương tự để kiểm tra sự hiện diện của con chip này không?


Bạn có nghĩa là nRF24L01 +? Không ai sử dụng nRF24L01 nữa, AFAIK.
Leon Heller

2
Sau đó tôi đoán tên tôi không có ai. Tôi sử dụng một số mô-đun dx.com, có thể con chip trong thực tế là 24L01 + hoặc 24L01B, tôi sẽ kiểm tra. Nếu bất cứ ai muốn trả lời câu hỏi cho một trong những mô-đun liên quan đó, vui lòng! +
Wouter van Ooijen

@WoutervanOoijen Một trong những mô-đun nRF24 tôi mua từ eBay là L01 chứ không phải L01 +, nhưng người bán đã đủ tốt để thay thế miễn phí khi tôi chỉ ra điều này. Bạn có muốn thử điều đó? Khi tôi kiểm tra vừa rồi, các mô-đun rẻ hơn là L01, trong khi các mô-đun hơi đắt hơn đều là L01 +.
Anindo Ghosh

Không cần phải cố gắng, tôi có cả trong kho. Nhưng câu hỏi của tôi vẫn là: có cách nào thuận tiện để ứng dụng kiểm tra xem chip có mặt không? (Để biết thêm điểm: cách phân biệt L01 với L01 +)
Wouter van Ooijen

2
Bạn có thể sử dụng byte trạng thái để kiểm tra sự hiện diện. Mỗi byte đầu tiên bạn gửi đến chip, nó sẽ trả lời lại bằng byte Trạng thái. Vì vậy, bạn có thể gửi một hình nộm và đọc Trạng thái.
Sérgio Sena

Câu trả lời:


2

Thư viện này phân biệt NRF24L01 với NRF24L01 + bằng cách đặt tốc độ dữ liệu 250Kbps. Nếu nó thành công thì chip thuộc loại +. Bạn cũng có thể thử chỉ bật và tắt chip. Có vẻ như bạn sẽ không làm phiền phần mềm trình điều khiển khác? bằng cách cài đặt và thiết lập lại các cài đặt này. https://github.com/jpbarraca/pynrf24/blob/master/nrf24.py#L671


1

Tôi không biết tất cả các ràng buộc của bạn, tức là bạn muốn gửi bao nhiêu byte nếu bạn lo lắng về một số thiết bị SPI khác có mặt thay vào đó hoặc không có gì, nhưng giả sử bạn sẵn sàng thực hiện một số giao tiếp [SPI, không nhất thiết là RF] và rằng bạn là người dùng độc quyền của thiết bị SPI được chọn đó, dường như có rất nhiều cách để tiếp cận điều này:

  • nếu bạn biết radio sẽ được chuyển sang chế độ mặc định, hãy kiểm tra xem RX_ADDR_P0 là 0xE7E7E7E7E7. Không loại trừ hoàn toàn nhiễu và thêm một vài byte so với kiểm tra byte RF_SETUP, nhưng có vẻ như là một sự đánh cược tốt.
  • nếu bạn đang viết tốt cho thiết bị, hãy đặt RX_ADDR_P0 thành một số giá trị tín hiệu ngẫu nhiên hoặc không được mã hóa cứng và xem nó có đọc lại chính xác không. Tương tự như vậy với bất kỳ cấu hình nào khác (SETUP_RETR có vẻ là một ứng cử viên tốt cho giá trị một byte).

Không ai trong số này sẽ xác nhận các chân khác đã được kết nối với nhau vì bạn có thể cần thử gửi ACK'ed trong trường hợp có thể sẽ thất bại (và do đó chân CE của bạn nếu được kết nối sẽ khiến bit trạng thái MAX_RT được đặt và chân IRQ báo hiệu). Họ cũng không thể phân biệt với một thiết bị có khả năng tương tự hoặc không có gì. Nhưng chỉ với hệ thống dây SPI cơ bản, hãy kiểm tra các mục được gạch đầu dòng ở trên là đủ IMO.

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.