ฉันต้องการทราบว่า "ฟังก์ชันทางเลือก" หมายถึงอะไรในบริบทของพอร์ต IO ของไมโครคอนโทรลเลอร์
ฉันไม่จำเป็นต้องรู้วิธีเปิดใช้งานเมื่อเชื่อมต่อกับอุปกรณ์ต่อพ่วง แต่ฉันต้องการที่จะรู้ว่ามันคืออะไรและทำไมเราต้องการมัน
ฉันต้องการทราบว่า "ฟังก์ชันทางเลือก" หมายถึงอะไรในบริบทของพอร์ต IO ของไมโครคอนโทรลเลอร์
ฉันไม่จำเป็นต้องรู้วิธีเปิดใช้งานเมื่อเชื่อมต่อกับอุปกรณ์ต่อพ่วง แต่ฉันต้องการที่จะรู้ว่ามันคืออะไรและทำไมเราต้องการมัน
คำตอบ:
หมุดไมโครคอนโทรลเลอร์จำนวนมากของคุณมีหน้าที่แตกต่างกัน ฟังก์ชั่น 'ปกติ' จะอ้างถึง GPIO, วัตถุประสงค์ทั่วไป Input ในกรณีนี้คุณสามารถใช้หมุดเหล่านี้ได้โดยตรงโดยการเขียนและอ่านจากการลงทะเบียนที่เกี่ยวข้อง
ฟังก์ชั่น 'Alternate' จะหมายถึงฟังก์ชั่นอื่น ๆ ซึ่งอาจรวมถึง I 2 C, SPI, USART, CCP, PWM, นาฬิกา, ADC และอื่น ๆ ... วิธีที่คุณควบคุมพินเมื่ออยู่ในฟังก์ชั่นสำรองขึ้นอยู่กับอุปกรณ์ต่อพ่วง โดยทั่วไปมักจะเขียนและอ่านจากฟังก์ชันพิเศษ (SFR) อุปกรณ์ต่อพ่วงจะดูแลส่วนที่เหลือ
ฟังก์ชันใดเป็นมาตรฐานหลังจาก RESET ขึ้นอยู่กับ ( ไม่ใช่ GPIO เสมอ!) และคุณสามารถค้นหาได้ในแผ่นข้อมูลที่เกี่ยวข้อง ส่วนใหญ่คุณสามารถเลือกฟังก์ชั่นที่คุณต้องการใช้ได้ทันทีเพื่อให้คุณสามารถสลับระหว่างอุปกรณ์ต่อพ่วง
ด้วยการใช้ขาเดียวสำหรับอุปกรณ์ต่อพ่วงหลายตัวคุณสามารถสร้างไมโครคอนโทรลเลอร์ด้วยคุณสมบัติที่ยอดเยี่ยม อย่างไรก็ตามเนื่องจากคุณส่วนใหญ่ต้องการอุปกรณ์ต่อพ่วงบนหมุดนั้นตลอดเวลา (และไม่ต้องการเปลี่ยนฟังก์ชั่นการบิน) คุณไม่สามารถใช้อุปกรณ์ต่อพ่วงทั้งหมดในโปรแกรมเดียวหรืออย่างน้อยก็ไม่เหมือนกัน เวลา. ในทางกลับกันสิ่งนี้ไม่จำเป็นต้องใช้บ่อยนัก
ในขณะที่คอนเนอร์ชี้ให้เห็น 'ฟังก์ชั่นทางเลือก' สามารถอ้างถึงสิ่งอื่นได้เช่นกันในบริบทที่แตกต่างกันเล็กน้อย: ที่นี่ไม่ได้เกี่ยวกับฟังก์ชั่นที่คุณใช้ใส่พิน สิ่งนี้เรียกว่า Peripheral Pin Select และโดยทั่วไปหมายความว่าคุณสามารถเลือกพินอุปกรณ์ต่อพ่วงที่ใช้ ตัวอย่างเช่นคุณสามารถทำ RS232 ผ่าน RA1 และ RA2 หรือสูงกว่า RB1 และ RB2
ดูคำตอบของ Connor สำหรับคำอธิบายโดยละเอียดเพิ่มเติม (และโหวตขึ้นสำหรับสิ่งนี้)
นอกจากคำตอบ @CamilStaps ยังมีบริบทอื่นที่ "ฟังก์ชั่นพินสำรอง" เป็นคำที่ใช้กันทั่วไป
ไมโครคอนโทรลเลอร์บางตัวมีตัวเลือกในการสลับอุปกรณ์ต่อพ่วงภายในระหว่างสาย IO หลายชุด ด้วยวิธีนี้คุณสามารถหลีกเลี่ยงปัญหาหากคุณต้องการใช้โมดูลภายใน (SPI, I2C, ฯลฯ ... ) ที่มีการแมปฟังก์ชั่นของพวกเขากับหมุดชุดเดียวกัน
โดยทั่วไปจะมีการลงทะเบียนควบคุมที่กำหนดชุดพินที่อุปกรณ์ต่อพ่วงต่างๆที่แมป
ฉันรู้ว่าฉันทำงานกับไมโครคอนโทรลเลอร์ที่มีสถานที่นี้ แต่ฉันจะถูกสาปถ้าฉันจำหมายเลขชิ้นส่วนเฉพาะได้
แก้ไข: พบแล้ว - มันมีอยู่ในส่วนต่างๆของ PIC24 และ dsPIC:
พวกเขาเรียกมันว่า "Peripheral Pin Select" แต่โดยทั่วไปจะเป็นกลไกสำหรับการกำหนดค่าฟังก์ชั่นพินสำรอง