กำบัวหาแนวทางการออกแบบวงจรไมโครคอนโทรลเลอร์ ให้สามารถดาวน์โหลดโปรแกรมแบบ OTA ได้เหมือนพวกเครื่องรับจานดาวเทียม
พอจะมีหลักการหรือตัวอย่างบ้างไหมครับ ถ้าใช้ PIC จะดีมากเลย
อ๋อ ครับผมๆๆ
"กำบัว" :o :o :o :o
ศึกษาเรื่อง Boot loader ครับใน PIC ก็มีเหมือนกัน
หลักการก็คือเมื่อเวลาระบบมีการแจ้งเตือน Software ใหม่จาก Server หรือตัวแม่
ตัว Client จะทำการเปลี่ยนแปลง Chanel สื่อสารออกไปอีก Chanel หนึ่งซึ่งเอาไว้สำหรับทำ OTA ครับ
จากนั้นมันจะค้นหา Start Package จากข้อมูลที่มันรับมาซึ่ง Server จะส่งมาตลอดเวลา
สมมุติว่า Server ส่ง A-Z แล้วก็ส่ง A-Z อีกไปเรื่อยๆ
เครื่องเราจะต้องรอข้อมูลตัว A ก่อนซึ่งเป็น Start Package จากนั้นจะดึงเอาข้อมูลนั้นมาเก็บไว้หน่วยความจำภายนอกก่อนเช่น EEPROM
หรือหากระบบ Bootlader นั้นมีความจุพอที่จะเขียนโปรแกรมที่จะติดต่อกับ Server ได้ก็ไม่จำเป็นต้องมีครับ
กลับมาเข้าทางกันต่อ เมื่อเก็บข้อมูลไว้หน่วยความจำภายนอกแล้ว ก็ระรีบูท MCU แล้วเข้าโหมด Bootloader ครับ
เพื่อเอาโปรแกรมที่เก็บไว้หน่วยความจำภายนอกมาเขียนลงในตัวมันเอง
จากนั้น Reboot ตัวเองอีกทีเพื่อกลับไปทำงานตามโปรแกรมใหม่ที่โหลดมาครับ
ผลเคยใช้วิธีนี้อยู่ครับ แต่ใช้กับ MCU ตะกูล AVR ครับ
มีทั้ง OTA และแบบที่ใช้โมดูล EEPROM ตัวเล็กๆไปเสียบเพื่ออัพโหลดโปรแกรมเข้า MCU ใหม่โดยไม่ต้องใช้ PC ครับ
น่าจะพอเป็นแนวทางได้เนาะ
นานๆทีผมจะได้เข้ามาตอบเห่อะๆ ขออภัยด้วยหากไม่เข้าใจ
ขอบคุณมากค่ะ
อ่อเราก้อเคยได้ยินอยู่แต่เราว่ามันไม่เกี่ยวอ่ะ มันเกี่ยวกะสันยาน
ขอบคุณสำหรับความรู้และแนวทางการทำครับ
ผมขอแชร์หน่อยครับ กำลังทำในส่วน OTA เหมือนกัน (ยังไม่สมบูรณ์ 100% แต่เผื่อจะเป็นประโยชน์นะครับ )
ผมใช้เอกสารนี้เป็นแนวทางครับ
http://ww1.microchip.com/downloads/en/AppNotes/01157a.pdf
ในเอกสารจะบอกวิธี map linker ใหม่ และอธิบายเกียวกับ protocol
ผมใช้ การเก็บข้อมูลผ่าน GPRS แล้วเก็บลง eeprom แล้วค่อยให้ reset mcu เป็น โหมด bootloader แล้วถึงจะค่อย write data ลง flash
ปล1 ในส่วนของลายละเอียดด้านเทคนิค อื่นๆ สามารถสอบถามได้นะครับ
ปล2 ของผมสามารถบูทได้แล้วแต่เป็นวิธีการที่หักดิบ(+ลวกๆ) ไปหน่อย ถ้าได้แชร์ความรู้กัน ก็คงจะดีไม่น้อย
ขอบคุณครับสำหรับข้อมูล แต่โปรแกรม bootloader ฝั่ง PC ของ microchip ผมไม่เห็นมันใช้ใด้สักตัว เลยไม่รู้จะแกะยังไงต่อ
ใช้ไม่ได้นี่หมายถึง ตัวแอพของไมโครชิพ ไม่เจอ device ป่าวคับ
ถ้าตอนนี้กำลังหาวิธีแกะ hex ไฟล์อยู่ ก็ใช้ตัวนี้ช่วยก็ได้ครับ ใช้ได้กับ ทุกคอนโทรลลเลอร์ ดูแล้วจะทำให้เข้าใจ มากขึ้นครับ
http://en.wikipedia.org/wiki/Intel_HEX
http://www.dlwrr.com/electronics/tools/hexview/hexview.html
ปล.ของผมที่บอกทำลวกๆ ก็คือ เอาแอพของไมโครชิพนี่แหละครับมา ถอด ไฟล์ .hex แล้ว save เป็น text ไฟล์ แล้วเอาดาต้า จาก text ไฟล์นั้นแหละส่ง ก็คือไม่ได้ถอด .hex ไฟล์ด้วยตนเองนั้นเอง แต่จะถอดเองก็ได้นะครับ ตามข้อมูลด้านบน ดูแล้วไม่น่ายากเท่าไหร่
น่าสนใจมากครับผม
ขอบคุณครับ