ฉันต้องการเข้ารหัสข้อมูลเกี่ยวกับรุ่นหรือการกำหนดค่าบนบอร์ด / ไฟฟ้าเพื่อให้เฟิร์มแวร์สามารถตรวจสอบรูปแบบบอร์ดที่ใช้
ตัวเลือกใดบ้างที่เป็นไปได้และอะไรคือข้อดี / ข้อเสีย?
ฉันต้องการเข้ารหัสข้อมูลเกี่ยวกับรุ่นหรือการกำหนดค่าบนบอร์ด / ไฟฟ้าเพื่อให้เฟิร์มแวร์สามารถตรวจสอบรูปแบบบอร์ดที่ใช้
ตัวเลือกใดบ้างที่เป็นไปได้และอะไรคือข้อดี / ข้อเสีย?
คำตอบ:
วิธีแก้ปัญหาง่ายๆสองอย่างที่อยู่ในหัวของฉัน
คำแนะนำทั้งสองนี้มีจุดอ่อนที่ผู้ใช้สามารถเปลี่ยนแปลงได้ง่ายกล่าวเพื่อเปิดคุณสมบัติ "ล็อค" นี่อาจไม่ใช่สิ่งที่คุณกังวล แต่เป็นสิ่งที่ควรคำนึงถึง
ฉันใช้ shift shift กับหมุดผูกสูงและต่ำเพื่อเข้ารหัสการปรับปรุงบอร์ดก่อนหน้านี้ถ้าคุณใช้ SPI สำหรับบางสิ่งบางอย่างบนบอร์ดของคุณมันไม่สำคัญที่จะอ่าน
หากคุณต้องการที่จะสามารถเปลี่ยน ID ในขณะใช้งานได้การใช้จัมเปอร์แทนที่จะคาดว่าอินพุตที่มีการติดตามจะเป็นความคิดที่ดี
ตัวเลือกบางอย่างที่ฉันคิดได้: -
ลิงค์ PADS / O OHM ของ SMD ใช้ระบบไบนารีสำหรับการกำหนดค่าฮาร์ดแวร์เพื่อลดจำนวนพินสำหรับโปรเซสเซอร์ของคุณ
จัมเปอร์ บอร์ดจะเชื่อมต่อพิน 2xN เพิ่มจัมเปอร์ไปที่พินด้านขวาจะให้คุณเลือกการกำหนดค่าของคุณ ข้อผิดพลาดง่ายต่อการแก้ไข อาจมีค่าใช้จ่ายเล็กน้อยและใช้พื้นที่บอร์ดเพิ่มขึ้นตามจัมเปอร์
หากคุณมี EEPROM บนบอร์ดอาจเป็นไปได้ที่คุณจะฝังการกำหนดค่าลงในหน่วยความจำ
เป็นไปได้ไหมที่คุณจะเปลี่ยนเฟิร์มแวร์ด้วย #define หรือคล้ายกัน? จากนั้นคุณไม่จำเป็นต้องมีพื้นที่บอร์ดและหมุดพิเศษสำหรับการตรวจจับเวอร์ชัน
หนึ่งสาย EEPROMs เป็นทางออกที่ดีเพราะต้องการเพียง GPIO เดียว แต่สามารถเก็บข้อมูลการกำหนดค่าจำนวนมาก พวกเขายังอนุญาตให้ไมโครคอนโทรลเลอร์เขียนข้อมูลนั้นระหว่างการทดสอบบอร์ด (เช่นข้อมูลการสอบเทียบ) หลายคนมีหมุดป้องกันการเขียนหรือบิตที่ตั้งโปรแกรมได้เพียงครั้งเดียวเพื่อป้องกันการเปลี่ยนแปลงเพิ่มเติม
ข้อดีอื่น ๆ รวมถึงคุณสมบัติที่มีประโยชน์เช่นรับประกันหมายเลขซีเรียลที่ไม่ซ้ำกัน
ตัวเลือกนี้ใช้ในหลาย ๆ ระบบเช่นโพรบออสซิลโลสโคปและแบตเตอรี่เนื่องจากต้องการเพียงสายข้อมูลเดียว EEPROM สามารถใช้พลังงานจากสายดาต้าเองได้
ข้อเสียเปรียบหลักคือต้นทุน ราคาไม่สูง แต่สำหรับผลิตภัณฑ์ที่ผลิตเป็นจำนวนมากมีค่าใช้จ่ายไม่กี่เซ็นต์
ตัวอย่างของ EEPROM เช่นนั้นคือ DS2431 ซึ่งเก็บ 1kb