Perpustakaan PiGPIO http://abyz.me.uk/rpi/pigpio/index.html menyebutkan bahwa salah satu fiturnya adalah "tautan serial perangkat lunak menggunakan pengguna gpio apa pun".
Saya menganggap ini artinya Anda dapat menggunakannya untuk membuat UART perangkat lunak pada 2 pin GPIO gratis.
Di halaman contoh proyek, tidak ada contoh untuk fitur ini dan saya belum menemukannya di Google.
Adakah yang melakukan ini? Jika demikian tolong tunjukkan saya pada contoh.
Jika tidak, apakah ada perpustakaan alternatif untuk menggedor UART?
Terima kasih,
Jawaban:
Berikut adalah beberapa Python yang saya gunakan untuk menguji keandalan serial perangkat lunak. Sisi inputnya cukup sepele. Anda cukup membuat panggilan terbuka serial bit bit yang sesuai dengan Python atau C. Sisi output lebih terlibat karena Anda harus menggunakan bentuk gelombang untuk membangun bit stream.
Kode di sini menggunakan data 7-bit daripada 8-bit. Tes ditulis pada waktu yang hampir bersamaan ketika saya menambahkan dukungan untuk bit yang berbeda per byte.
Kode menulis blok data biner ke gpio yang terhubung ke laptop (melalui dongle serial). Laptop menggemakan data serial yang masuk ke garis seri keluarannya. Pi membaca data serial di gpio lain.
Kode memeriksa perbedaan antara data yang dikirim dan diterima. Laptop diasumsikan bebas kesalahan, jadi setiap kesalahan diasumsikan berada dalam bit banging.
Melihat log apa pun yang kurang dari 19.2kbps solid. Apa pun hingga 115.2kbps masuk akal (tetapi akan membutuhkan checksumming) dan 230.4kbps memberikan tingkat kesalahan 13% byte.
Log
sumber
Saat Anda mengirim Tx langsung ke Rx untuk menguji tanpa apa pun yang akan menambah kesalahan seperti dongle, ini memberi tahu Anda seberapa bagus kinerja perpustakaan.
Gunakan GPIO 23 sebagai Tx dan GPIO 24 sebagai Rx atau GPIO gratis lainnya di Raspberry Pi 3b +. Ini terlihat bagus dalam urutan yang sama dengan UART on board dan secara praktis berada di sebelahnya, hanya 3 pin di kanan, dengan pin GND di kanan Rx.
Hasil:
Jika Anda dapat hidup dengan 19200 atau kurang tanpa perlu menggunakan hash checksum atau SPI / I2C ke UART konverter - itu harus baik-baik saja.
sumber