สารบัญ:

Raspberry PI 3 - เปิดใช้งานการสื่อสารแบบอนุกรมไปยัง TtyAMA0 ถึง BCM GPIO 14 และ GPIO 15: 9 ขั้นตอน
Raspberry PI 3 - เปิดใช้งานการสื่อสารแบบอนุกรมไปยัง TtyAMA0 ถึง BCM GPIO 14 และ GPIO 15: 9 ขั้นตอน

วีดีโอ: Raspberry PI 3 - เปิดใช้งานการสื่อสารแบบอนุกรมไปยัง TtyAMA0 ถึง BCM GPIO 14 และ GPIO 15: 9 ขั้นตอน

วีดีโอ: Raspberry PI 3 - เปิดใช้งานการสื่อสารแบบอนุกรมไปยัง TtyAMA0 ถึง BCM GPIO 14 และ GPIO 15: 9 ขั้นตอน
วีดีโอ: Review PZEM-004T with Arduino ESP32 ESP8266 Python & Raspberry Pi : PDAControl 2024, พฤศจิกายน
Anonim
Raspberry PI 3 - เปิดใช้งานการสื่อสารแบบอนุกรมไปยัง TtyAMA0 ถึง BCM GPIO 14 และ GPIO 15
Raspberry PI 3 - เปิดใช้งานการสื่อสารแบบอนุกรมไปยัง TtyAMA0 ถึง BCM GPIO 14 และ GPIO 15
Raspberry PI 3 - เปิดใช้งานการสื่อสารแบบอนุกรมไปยัง TtyAMA0 ถึง BCM GPIO 14 และ GPIO 15
Raspberry PI 3 - เปิดใช้งานการสื่อสารแบบอนุกรมไปยัง TtyAMA0 ถึง BCM GPIO 14 และ GPIO 15

ฉันเพิ่งมีความสนใจที่จะเปิดใช้งาน UART0 บน Raspberry Pi (3b) ของฉัน เพื่อให้ฉันสามารถเชื่อมต่อโดยตรงกับอุปกรณ์ระดับสัญญาณ RS-232 โดยใช้ตัวเชื่อมต่อ d-sub 9 พินมาตรฐานโดยไม่ต้องผ่าน USB ไปยัง RS-232 อะแดปเตอร์

ส่วนหนึ่งของความสนใจของฉันที่นี่คือความสามารถในการเชื่อมต่อตัวแปลงระดับ RS-232 (MAX3232) หรืออุปกรณ์ RS-485 (MAX485)

ฉันพยายามดิ้นรนเล็กน้อยเพื่อให้การกำหนดค่า Pi ทำงานได้ ฉันไม่มีประสบการณ์กับ Raspberry Pi หรือระบบปฏิบัติการมากนัก ดังนั้นฉันจึงอยู่ในช่วงการเรียนรู้ที่ค่อนข้างสูงชัน

ในที่สุด ด้วยการค้นหาโดย Google พร้อมกับ "การลองผิดลองถูก" ฉันสามารถดึงรายละเอียดทั้งหมดมารวมกันเพื่อให้ทำงานได้อย่างพึงพอใจ แต่ข้อมูลไม่ได้อยู่ในเอกสารสรุปฉบับเดียวที่มีขั้นตอนทั้งหมดในการทำให้สิ่งนี้เกิดขึ้น

ฉันกำลังระบุขั้นตอนที่ฉันทำเพื่อให้สิ่งนี้ได้ผลสำหรับฉัน

เสบียง

1 - ราสเบอร์รี่ปี่. ฉันใช้รุ่น 3b.. แต่ขั้นตอนนี้ควรใช้งานได้กับ Pi ส่วนใหญ่โดยเฉพาะรุ่นที่มี Raspberry Pi IOS เวอร์ชันล่าสุด (เดิมคือ Raspian)

2 - ตัวแปลงระดับ RS-232 "ขนาดเล็ก" - TTL เป็น RS-232 - ฉันใช้ PCB ขนาดเล็กที่โหลดด้วย MAX 3232 IC ที่ซื้อจาก eBay.. ฉันยังลองใช้ TTL เป็น RS-485 สำเร็จด้วย ตัวแปลง - ซื้อจาก eBay ด้วย

เมื่อกำหนดค่า Pi แล้ว ตัวแปลงทั้งสองก็ทำงานได้อย่างพึงพอใจโดยไม่มีปัญหาใดๆ ที่ฉันเห็น

ขั้นตอนที่ 1: ติดตั้ง FRESH Copy บน Raspbian บนการ์ดหน่วยความจำของคุณ

ติดตั้ง FRESH Copy บน Raspbian บนการ์ดหน่วยความจำของคุณ
ติดตั้ง FRESH Copy บน Raspbian บนการ์ดหน่วยความจำของคุณ

ฉันเริ่มต้นด้วยการติดตั้งสำเนา Raspberry Pi IOS ที่สดใหม่ / ทันสมัยที่สุด (เดิมคือ Raspian) บนการ์ดหน่วยความจำของฉัน ฉันเลือกที่จะไม่ไปเส้นทาง NOOBS

ดาวน์โหลดและติดตั้งเครื่องมือ Imager

www.raspberrypi.org/downloads/

ดาวน์โหลด แตกไฟล์ และติดตั้งลงในการ์ดหน่วยความจำของคุณโดยใช้อิมเมจ Raspberry Pi IOS

หลังจากบูทเครื่องแล้ว ให้ตรวจสอบและอัปเดตตามต้องการ…

ขั้นตอนที่ 2: เปิดใช้งานพอร์ตอนุกรม Raspberry Pi - การใช้ GUI

เปิดใช้งานพอร์ตอนุกรม Raspberry Pi - การใช้ GUI
เปิดใช้งานพอร์ตอนุกรม Raspberry Pi - การใช้ GUI
เปิดใช้งานพอร์ตอนุกรม Raspberry Pi - การใช้ GUI
เปิดใช้งานพอร์ตอนุกรม Raspberry Pi - การใช้ GUI

ตามค่าเริ่มต้น ในการติดตั้ง Raspberry Pi IOS ใหม่ UART0 จะสงวนไว้สำหรับ "Logon Shell" นั่นหมายถึงให้คุณเข้าถึง / ควบคุม Pi ผ่านพอร์ตอนุกรม / โปรแกรมเทอร์มินัลรวมกัน

ในการใช้ UART0 สำหรับแอปพลิเคชันอื่น คุณต้อง "ปิด" การเชื่อมต่อกับ Logon Shell สิ่งนี้เกิดขึ้นในสองสามขั้นตอนที่ค่อนข้างง่าย

วิธีที่รวดเร็วที่สุดในการเปิดใช้งาน "พอร์ตอนุกรม" คือการดำเนินการผ่าน GUI

จาก "Raspberry - เมนูแบบเลื่อนลง" เลือก "Preferences" จากนั้นเลือก "Raspberry Pi Configuration"

จากนั้นไปที่แท็บ "อินเทอร์เฟซ" และ "เปิดใช้งาน" พอร์ตอนุกรม (โดยคลิกที่ปุ่มตัวเลือกที่เหมาะสม

คลิกตกลงเพื่อออก แล้วทำการรีบูต

หรือ..คุณสามารถทำตามวิธีนี้…

ขั้นตอนที่ 3: วิธีอื่นในการเปิดใช้งานพอร์ตอนุกรม (และปิดใช้งานเชลล์การเข้าสู่ระบบ)

วิธีอื่นในการเปิดใช้งานพอร์ตอนุกรม (และปิดใช้งานเชลล์การเข้าสู่ระบบ)
วิธีอื่นในการเปิดใช้งานพอร์ตอนุกรม (และปิดใช้งานเชลล์การเข้าสู่ระบบ)
วิธีอื่นในการเปิดใช้งานพอร์ตอนุกรม (และปิดใช้งานเชลล์การเข้าสู่ระบบ)
วิธีอื่นในการเปิดใช้งานพอร์ตอนุกรม (และปิดใช้งานเชลล์การเข้าสู่ระบบ)
วิธีอื่นในการเปิดใช้งานพอร์ตอนุกรม (และปิดใช้งานเชลล์การเข้าสู่ระบบ)
วิธีอื่นในการเปิดใช้งานพอร์ตอนุกรม (และปิดใช้งานเชลล์การเข้าสู่ระบบ)
วิธีอื่นในการเปิดใช้งานพอร์ตอนุกรม (และปิดใช้งานเชลล์การเข้าสู่ระบบ)
วิธีอื่นในการเปิดใช้งานพอร์ตอนุกรม (และปิดใช้งานเชลล์การเข้าสู่ระบบ)

วิธีนี้ใช้สำหรับอ้างอิง ไม่จำเป็นแต่ควรรู้ไว้

== == ==

วิธีอื่นในการปิดใช้งานคอนโซลโดยใช้ UART0 เมื่อบูตเครื่อง

ใช้:

sudo raspi-config

เลือกตัวเลือก #5 - ตัวเลือกการเชื่อมต่อ ==> Select

เลือก P6 Serial ==> Select

ตอบว่าไม่ สำหรับ: คุณต้องการให้ล็อกอินเชลล์สามารถเข้าถึงได้ผ่านซีเรียลหรือไม่?

ตอบ ใช่ สำหรับ: คุณต้องการเปิดใช้งานฮาร์ดแวร์พอร์ตอนุกรมหรือไม่

คำตอบจะเป็น:

เชลล์การเข้าสู่ระบบแบบอนุกรมถูกปิดใช้งาน

เปิดใช้งานอินเทอร์เฟซแบบอนุกรม

เลือกตกลง

เลือก เสร็จสิ้น

ขั้นตอนที่ 4: ปิดใช้งาน Bluetooth - ปล่อย UART0 และเพิ่มพื้นที่ว่างสำหรับ TtyAMA0

ปิดใช้งาน Bluetooth - ปล่อย UART0 และเพิ่มฟรีสำหรับ TtyAMA0
ปิดใช้งาน Bluetooth - ปล่อย UART0 และเพิ่มฟรีสำหรับ TtyAMA0
ปิดใช้งาน Bluetooth - ปล่อย UART0 และเพิ่มฟรีสำหรับ TtyAMA0
ปิดใช้งาน Bluetooth - ปล่อย UART0 และเพิ่มฟรีสำหรับ TtyAMA0
ปิดใช้งาน Bluetooth - ปล่อย UART0 และเพิ่มฟรีสำหรับ TtyAMA0
ปิดใช้งาน Bluetooth - ปล่อย UART0 และเพิ่มฟรีสำหรับ TtyAMA0

ส่วนที่สองของกระบวนการคือการยกเลิกการเชื่อมต่อ Bluetooth จาก UART0 ด้วย

ตามหน้า "การกำหนดค่า UART" คุณจะต้องยกเลิกการเชื่อมต่ออุปกรณ์ Bluetooth จาก UART0 และเพิ่ม UART0 สำหรับ ttyAMA0 - หากจำเป็น คุณสามารถย้าย Bluetooth ไปที่ "mini-UART"

ดำเนินการแก้ไขไฟล์ชื่อ "config.txt" (อยู่ในไดเร็กทอรี "boot") และเพิ่ม ONE บรรทัดที่ด้านล่างสุดของหน้า:

dtoverlay=disable-bt

ขึ้นอยู่กับสถานการณ์และความต้องการใช้ Bluetooth ของคุณ คุณอาจต้องการเพิ่มบรรทัดต่อไปนี้ (แต่ไม่จำเป็นสำหรับบทช่วยสอนนี้ในการทำงานอย่างถูกต้อง) หน้านี้ยังมีรายละเอียดที่มีค่าเกี่ยวกับธุรกิจทั้งหมดนี้ โปรดสละเวลาอ่านไฟล์ที่เชื่อมโยง (ดูด้านบน) เพื่อทำความเข้าใจในเรื่องนี้

dtoverlay=miniuart-bt

ตรวจสอบการสะกดของคุณอีกครั้ง จากนั้นบันทึกไฟล์เมื่อคุณออกจากระบบ และรีบูต

ณ จุดนี้คุณควรจะไปได้ดี

ขั้นตอนที่ 5: พิน RPI สำหรับพอร์ต UART

RPI Pin-out สำหรับพอร์ต UART
RPI Pin-out สำหรับพอร์ต UART

ตามเว็บไซต์ "pinout.xyz" พิน Raspberry Pi UART0 สามารถเข้าถึงได้จากพินต่อไปนี้

หมุด UART ในโหมด BCM คือ: RPI Pin #8 / GPIO14 ==> TXD

RPI Pin #10 / GPIO15 ==> RXD

โปรดจำไว้ว่าสำหรับพินเหล่านี้คือ "ระดับ TTL 3.3 โวลต์".. ไม่สามารถใช้เพื่อขับและรับจากระดับ RS-232 หรืออุปกรณ์ระดับ RS-422/RS-485 การพยายามทำเช่นนั้นจะทำให้ UART ออนบอร์ดของคุณหมดไฟ และส่วนใหญ่จะนำชิปโปรเซสเซอร์ไปด้วย

คุณต้องใช้ตัวแปลงระดับ

ในการเชื่อมต่อกับอุปกรณ์ระดับ RS-232 หรือ RS-422/RS-485 คุณต้องมีตัวแปลงระดับที่เหมาะสม

ขั้นตอนที่ 6: การเพิ่มระดับ RS-232 ให้กับอุปกรณ์แปลงระดับ TTL ให้กับ Raspberry Pi. ของคุณ

การเพิ่ม RS-232 Level ให้กับอุปกรณ์แปลงระดับ TTL ให้กับ Raspberry Pi. ของคุณ
การเพิ่ม RS-232 Level ให้กับอุปกรณ์แปลงระดับ TTL ให้กับ Raspberry Pi. ของคุณ
การเพิ่ม RS-232 Level ให้กับอุปกรณ์แปลงระดับ TTL ให้กับ Raspberry Pi. ของคุณ
การเพิ่ม RS-232 Level ให้กับอุปกรณ์แปลงระดับ TTL ให้กับ Raspberry Pi. ของคุณ
การเพิ่ม RS-232 Level ให้กับอุปกรณ์แปลงระดับ TTL ให้กับ Raspberry Pi. ของคุณ
การเพิ่ม RS-232 Level ให้กับอุปกรณ์แปลงระดับ TTL ให้กับ Raspberry Pi. ของคุณ

สำหรับการแปลงระดับ TTL เป็น RS-232 ฉันใช้ตัวแปลงต่อไปนี้

ตัวแปลงระดับ Mini RS232 เป็น TTL ที่ใช้ MAX3232

รายการนี้สามารถขับเคลื่อนโดย 3.3 VDC หรือแม้แต่ 5 VDC (ทั้งคู่มีให้จากพินเฉพาะบน RPI ของคุณ) และใช้กระแสไฟน้อยมากจริงๆ

แผ่นข้อมูลสำหรับ MAX3232 ให้รายละเอียดอันมีค่าเกี่ยวกับการทำงานของเครื่อง แต่ในความเป็นจริง ไม่จำเป็นต้องเขียนโค้ดเพื่อให้ใช้งานได้

อ้างถึงรูปภาพที่แนบมาและใช้เวลาในการเชื่อมต่อพิน Raspberry Pi กับพินที่เหมาะสมบนโมดูลอย่างระมัดระวัง เพิ่งรู้ว่าอุปกรณ์นี้จะทำงานบน 3.3VDC หรือ 5 VDC - ทั้งคู่มีอยู่ใน RPI (ดูแผนภาพ Pin-out)

คำเตือน:

ฉันซื้ออุปกรณ์เหล่านี้จำนวน 10 ชิ้นจาก eBay และฉันไม่สามารถทำให้มันใช้งานได้ บนพื้นผิวดูเหมือนว่ามันควรจะง่ายพอที่จะใช้สิ่งเหล่านี้ แต่ไม่ หลังจากดิ้นรนกับพวกเขามาซักพัก ฉันพบรายละเอียดมากมายเกี่ยวกับ FAKE MAX3232 ทางออนไลน์

www.eevblog.com/forum/reviews/fake-max3232-any-additional-details/…

ฉันไม่แนะนำรายการนี้

ขั้นตอนที่ 7: การเพิ่มระดับ RS-485 ให้กับอุปกรณ์แปลงระดับ TTL ให้กับ Raspberry Pi. ของคุณ

การเพิ่ม RS-485 Level ให้กับอุปกรณ์แปลงระดับ TTL ให้กับ Raspberry Pi. ของคุณ
การเพิ่ม RS-485 Level ให้กับอุปกรณ์แปลงระดับ TTL ให้กับ Raspberry Pi. ของคุณ
การเพิ่ม RS-485 Level ให้กับอุปกรณ์แปลงระดับ TTL ให้กับ Raspberry Pi. ของคุณ
การเพิ่ม RS-485 Level ให้กับอุปกรณ์แปลงระดับ TTL ให้กับ Raspberry Pi. ของคุณ
การเพิ่ม RS-485 Level ให้กับอุปกรณ์แปลงระดับ TTL ให้กับ Raspberry Pi. ของคุณ
การเพิ่ม RS-485 Level ให้กับอุปกรณ์แปลงระดับ TTL ให้กับ Raspberry Pi. ของคุณ

ในทำนองเดียวกันกับวิธีการส่วนใหญ่ในขั้นตอนก่อนหน้า การเพิ่มตัวแปลงระดับ RS-485 นั้นง่ายพอๆ กัน - อาจจะง่ายกว่าด้วยซ้ำ

สำหรับการแปลงระดับ TTL เป็น RS-232 ฉันใช้ตัวแปลงต่อไปนี้

MAX485 ฐานระดับ RS485 เป็นตัวแปลงระดับ TTL อีกครั้ง รายการนี้สามารถขับเคลื่อนโดย 3.3 VDC หรือแม้แต่ 5 VDC (ทั้งคู่มีให้จากพินเฉพาะบน RPI ของคุณ) และใช้กระแสไฟน้อยมากจริงๆ แผ่นข้อมูลสำหรับ MAX485 ให้รายละเอียดอันมีค่าเกี่ยวกับการทำงานของมัน แต่ในความเป็นจริง ไม่จำเป็นต้องมีการเข้ารหัสเพื่อให้ใช้งานได้

อ้างถึงรูปภาพที่แนบมาและใช้เวลาในการเชื่อมต่อพิน Raspberry Pi กับพินที่เหมาะสมบนโมดูลอย่างระมัดระวัง เพิ่งรู้ว่าอุปกรณ์นี้จะทำงานบน 3.3VDC หรือ 5 VDC - ทั้งคู่มีอยู่ใน RPI (ดูแผนภาพ Pin-out)

ข้อควรทราบ - ไม่เหมือนกับ RS-232, RS-485 ไม่มีประเภทตัวเชื่อมต่อ "มาตรฐาน" ที่เกี่ยวข้อง โดยทั่วไป ระบบการตั้งชื่อจะเป็น "B-" และ "A+" แต่โปรดทราบว่าซัพพลายเออร์บางรายไม่ปฏิบัติตามระบบการตั้งชื่อเดียวกันนี้ RS-485 ทำงานบนรูปแบบสัญญาณ "Differential Pair" - สามารถดูรายละเอียดเพิ่มเติมได้ที่นี่ "ป่าตะวันตก" อาศัยอยู่ในหุบเขา RS-485..

ขั้นตอนที่ 8: ตอนนี้ ถึงตาคุณแล้ว.

ตอนนี้คุณควรจะสามารถเชื่อมต่อ Raspberry Pi ของคุณกับอุปกรณ์ภายนอกที่คุณเลือกได้โดยตรง.. ยังมีอีกมากที่ยังคงใช้งานอยู่ในปัจจุบัน

วิธีทำนั้นขึ้นอยู่กับคุณ…

สำหรับผู้เริ่มต้น โปรดดู "Minicom" หรือ "CuteCom" หรือตรวจสอบความเป็นไปได้โดยใช้ "NodeRED"

ขั้นตอนที่ 9: เรื่องย่อ

รู้สึกอิสระที่จะแสดงความคิดเห็นหรือข้อเสนอแนะ / แก้ไข ฉันจะขอบคุณที่

แนะนำ: