ฉันจะตั้งค่าความเร็ว UART ได้อย่างไร?


12

คุณควรตั้งค่าอัตรารับส่งข้อมูลของ UART อย่างไร

คำถามโบนัส: มีอัตรารับส่งข้อมูลอะไรบ้างใน RPi?

แก้ไข : ตั้งแต่อ่านคำตอบของ Steve ฉันพบว่ามี UART สองแห่ง

mini-UART สามารถทำงานได้ถึง 32Mbaud แต่มีบัฟเฟอร์ขนาดเล็กและดังนั้นจึงต้องใช้ CPU จำนวนมากในการติดตาม

นอกจากนี้ยังมี UART ที่โดดเด่นมากขึ้นด้วยบัฟเฟอร์ที่ใหญ่กว่าฉันยังไม่พบความเร็วต่ำสุด / สูงสุดสำหรับมัน


คุณต้องการตั้งค่าอัตรารับส่งข้อมูลขณะใช้งานเพื่อเชื่อมต่อกับอุปกรณ์อื่นหรือเวลาบูตเพื่อให้คุณสามารถเข้าสู่ Pi ผ่านพอร์ตอนุกรมได้หรือไม่
Malvineous

@Malvineous เวลาบูตก็โอเค แต่ runtime ก็มีประโยชน์เช่นกัน ฉันสนใจที่จะพูดคุยกับอุปกรณ์อื่น
John La Rooy

คำตอบ:


9

ตามที่สั่งซื้อครั้งแรกของคู่มือการเริ่มต้น , อัตราบอดเริ่มต้นคือ: 115200 การอภิปรายรายละเอียดอย่างเป็นธรรมของการตั้งค่าและความสามารถในการเชื่อมต่อ UART สามารถพบได้ในบล็อกโพสต์นี้เพิ่มเติมเกี่ยวกับราสเบอร์รี่ Pi พอร์ตอนุกรม รายละเอียดการดำเนินงานเฉพาะเพิ่มเติม / ความท้าทายของการทำงานกับพอร์ตอนุกรมสามารถพบได้ในบล็อกโพสต์การเดินทาง Raspberry Pi ของฉันตั้งค่าสำหรับความเร็วสูงการสื่อสารแบบอนุกรม

คุณไม่ได้พูดถึงการกระจายใดที่คุณกำลังทำงาน แต่สมมติว่าคุณกำลังใช้ Debian คุณสามารถกำหนดอัตราการรับส่งข้อมูลโดยทำดังต่อไปนี้:

หมายเหตุ Raspberry Pi ใช้ข้อความ UART สำหรับคอนโซล (รวมถึงข้อความสำหรับบูต) และ getty เพื่อให้คุณสามารถเข้าสู่ระบบผ่านทางอนุกรม ในการใช้พอร์ตอนุกรมนี้สำหรับการใช้งานของคุณเองคุณจะต้องปิดการใช้งานบริการเหล่านี้

หากต้องการเปลี่ยนคอนโซล baudrate ให้แก้ไข/boot/cmdline.txt relacing 115200ด้วยอัตรา baud ที่คุณต้องการ (โปรดทราบว่านี่คือหนึ่งบรรทัดทั้งหมด)

dwc_otg.lpm_enable = 0 console = ttyAMA0,115200 kgdboc = ttyAMA0,115200 console = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 rootwait

จากนั้นแก้ไข/ etc / inittabเพื่อเปลี่ยน baudrate ของ getty (คุณควรหาบรรทัดดังนี้ดังต่อไปนี้ด้วย baudrate ของ 115200 เปลี่ยนอัตรา baudrate ที่คุณต้องการ)

2: 23: respawn: / sbin / getty -L ttyAMA0 115200 vt100

และอย่าลืมดูแรงดันไฟฟ้าพินของคุณเพื่อหลีกเลี่ยงความเสียหายต่อ Pi

การอ้างอิงเพิ่มเติม:

http://www.andremiller.net/content/raspberry-pi-and-arduino-via-gpio-uart


3

เธรดนี้มีโซลูชันสำหรับอัตราการรับส่งข้อมูลแบบไม่เจาะจง (ไม่ใช่มาตรฐาน): /programming/12646324/how-to-set-a-custom-baud-rate-on-linux/21946354/how-to

ทำการจัดการ POSIX ก่อนจากนั้นสิ่งนี้เพื่อตั้งค่าความเร็วที่กำหนดเองทำงานได้ดีบน UART ในตัวของ Raspberry Pi เพื่อรับอัตรา baud 250k ดังนั้นเช่นเดียวกับอัตรามาตรฐาน POSIX คุณสามารถมีตัวคูณจำนวนเต็ม 16M, อย่างน้อย 1M ( http://fw.hardijzer.nl/?p=138สำหรับสิ่งที่มีความเร็วสูงมาก)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.