Proyek saya saat ini melibatkan penggunaan register geser 74HC595 untuk mengontrol tampilan LED, namun tampilan bisa sampai 5 atau lebih meter dari papan Arduino. Rencananya adalah untuk menggunakan beberapa kabel DB9 / RS232 antara kotak dengan Arduino, dan selungkup dengan layar. Apakah panjangnya terlalu lama untuk sinyal digital untuk melakukan perjalanan dari pin keluar digital ke register geser tanpa degradasi?
arduino
communication
74hc595
io
mjh2007
sumber
sumber
Jawaban:
The 74HC595 adalah teknologi CMOS sehingga harus mengambil hampir tidak ada di jalan saat ini untuk mengendarainya, sehingga penurunan IR tidak akan menjadi masalah.
Selama Anda menjaga frekuensi sinyal di bawah mengatakan 100kHz, Anda tidak perlu khawatir tentang efek saluran transmisi. Dengan asumsi pengamat yang Anda maksudkan untuk LED menjadi mata manusia, Anda tidak perlu khawatir tentang kecepatan tinggi. Misalnya, 8 digit pada 7 segmen dan titik desimal masing-masing adalah 64 elemen LED, dan hanya pada 9600 bps, Anda dapat memperbarui tampilan hanya di bawah 7 msec.
Satu-satunya hal yang saya khawatirkan adalah apakah tingkat output tinggi digital dari Arduino akan mendaftar sebagai input tinggi di shift register Anda. Selama register geser beroperasi dari suplai 5V (dan bukan sesuatu yang aneh seperti 6), Anda juga akan baik-baik saja di sana. (dan jika ini akan menjadi masalah, itu akan memanifestasikan dirinya lebih dari 10cm kawat sehingga mudah untuk memeriksa)
Jawaban singkat: probabilitas sangat tinggi Anda dapat beralih dari arduino ke kabel ke 74HC595 tidak masalah.
sumber
Perasaan saya adalah Anda harus baik-baik saja selama ini. Taruhan terbaik Anda mungkin untuk mencobanya dan melihat apakah itu berhasil.
Jika tidak berhasil, ada beberapa hal yang dapat Anda lakukan untuk membantu: - gunakan kabel berpelindung, kabel pasangan berpilin, atau kabel pelintir bersamaan. - Pasang tutup kecil (0,01 uF atau sekitar itu) di akhir. Ini akan membantu membatalkan beberapa kebisingan (menggunakan kapasitor yang terlalu besar tidak akan berfungsi, jadi lebih besar tidak lebih baik dalam kasus ini). - Gunakan resistor bernilai sedikit lebih rendah daripada yang biasanya Anda lakukan untuk pulldown Anda. - Gunakan kabel impedansi rendah.
Sebagai titik data, Arduino dapat menjalankan 9600 serial melalui kabel tanpa pelindung selama 50 '(mungkin lebih?).
sumber
Anda harus tetap lingkup untuk memastikan kinerjanya dengan benar tetapi di sini adalah proses pemikiran / matematika Anda perlu memperhitungkan untuk menentukan efek saluran transmisi.
Tepi naik dan turunnya waktu, bertentangan dengan apa yang telah diposting beberapa orang di sini, frekuensi sinyal tidak masalah sama sekali ketika menentukan kapan Anda perlu memperhitungkan efek saluran transmisi. Secara umum benar bahwa sinyal frekuensi tinggi memiliki waktu naik / turun yang lebih cepat tetapi sinyal frekuensi rendah juga dapat memiliki waktu naik dan turun yang sangat cepat jika sinyal tersebut didorong pada frekuensi rendah oleh transceiver dengan laju perubahan tegangan tinggi. Karena selalu menggunakan waktu naik / turun yang paling lambat untuk tetap berada dalam spesifikasi untuk bagian yang Anda gunakan, Anda dapat mengurangi waktu naik dan turun dengan filter RC di sumbernya. Secara umum Anda perlu mempertimbangkan efek saluran transmisi jika panjang kawat lebih besar dari Tr / (2 * Td) dengan Tr = ke waktu kenaikan sinyal di sumber dan Td = ke penundaan propagasi per satuan panjang kabel yang Anda gunakan. sedang menggunakan. Anda juga mungkin perlu mengakhiri jalur sinyal dengan benar pada kabel yang lebih pendek jika bebannya sangat kapasitif, ini agak sulit untuk dihitung dimuka karena ada banyak item dengan efek kapasitif dalam sistem seperti itu. Jika Anda memiliki masalah ini, Anda akan melihat dering (di bawah dan di atas menembak pada tepi) dalam sinyal.
Arus dalam kabel, ini akan ditentukan dalam lembar spesifikasi IC penerima sebagai arus input. Ini dikombinasikan dengan hambatan kabel akan memberi tahu Anda jika penurunan tegangan dapat diterima mengingat spesifikasi IC penerima. Ini hanya nilai rata-rata saat ini. Arus puncak aktual dapat bergantung pada jenis pemutusan yang digunakan dan perlu dipertimbangkan ketika memutuskan apakah IC penggerak dapat menangani beban atau jika Anda memerlukan driver garis. Arus puncak seharusnya hanya berlangsung selama penundaan rambatan putaran perjalanan dari rangkaian.
Jika Anda perlu memperhitungkan efek saluran transmisi, Anda juga perlu mengetahui karakteristik impedansi kabel dan impedansi output IC penggerak.
Jika Anda perlu menangani efek saluran transmisi ada beberapa opsi untuk gaya terminasi. Hanya dua yang akan saya pertimbangkan adalah terminasi sumber dan terminasi akhir AC bias.
Dalam penghentian sumber Anda perlu menempatkan resistor sedekat mungkin ke IC penggerak dengan nilai yang sama dengan impedansi karakteristik kabel dikurangi impedansi output IC penggerak, Anda mungkin harus menyetel ini sedikit untuk menekan spec dead on sebagai impedansi konektor kabel juga akan berdampak pada sistem dan seperti biasa menempatkan IC mengemudi dan menerima sedekat mungkin dengan konektor untuk mengurangi pantulan. Ini mungkin metode yang paling mudah dan mungkin metode terbaik dalam kasus ini. Arus puncak akan menjadi (Vhigh - Vlow) / (2 * Z0) dengan Z0 = dengan impedansi karakteristik kabel.
Dalam terminasi ujung AC bias Anda terhubung ke jalur sinyal sedekat mungkin dengan IC penerima resistor secara seri dengan kapasitor dengan kapasitor terikat ke ground. Nilai resistor harus berupa impedansi karakteristik kabel, nilai kapasitor ditentukan oleh frekuensi sinyal (R dan C membentuk filter low pass). Arus penggerak puncak sama dengan penghentian sumber. Arus drive rata-rata tergantung pada siklus tugas sinyal, jika sangat dekat dengan 50% maka akan kira-kira sama dengan arus input IC penerima, jika lebih dari 50% arus drive rata-rata akan lebih tinggi . Karena R dan C membentuk filter low pass, gaya terminasi ini akan menyaring beberapa noise frekuensi tinggi.
Pasangan hal lain yang perlu diingat:
Menggunakan twisted pair untuk satu sinyal yang berakhir tidak mengurangi noise pick up sama sekali. Itu memang menghasilkan impedansi karakteristik yang lebih konsisten untuk saluran transmisi. Ini dapat membuat output terlihat lebih baik jika Anda benar-benar harus menghentikan sinyal tetapi tidak. Itu tidak mengurangi kebisingan EM luar di telepon.
Penggunaan kabel berpelindung pada sistem tunggal berakhir paling baik. Anda sering dapat membuat situasi di mana noise luar berpasangan dengan kapasitif pada pelindung yang menghasilkan aliran arus pada pelindung yang kemudian berpasangan dengan kabel sinyal. Saya tidak akan repot menggunakan kabel berpelindung kecuali Anda menggunakan pensinyalan diferensial. Juga kegunaan perisai pada noise frekuensi tinggi tergantung pada induktansi ke ground, jalur induktansi rendah biasanya memerlukan konektor khusus.
Anda dapat menggunakan pemrosesan pemikiran yang sama pada saluran apa pun, baik kabel atau jejak PCB 2 inci.
sumber
Anda mungkin perlu buffer untuk menggerakkan kabel sepanjang itu - sesuatu seperti driver buffer / line 74HC244 harus sesuai.
sumber