นี่คือ STM32F1XX/STM32F4XX BOOTLOADER ที่กำหนดเองที่อนุญาตให้มีการกะพริบไบนารีเฟิร์มแวร์ผ่าน USB โดยใช้โปรโตคอล DFU หรือ HID-FLASH ความตั้งใจ - ความตั้งใจที่อยู่เบื้องหลังโครงการคือการสร้างความซับซ้อนของ STM32 MCUs อีกมากมายในโครงการเดียวที่สามารถดาวน์โหลดกำหนดค่าคอมไพล์และกะพริบได้อย่างง่ายดาย
การกะพริบเฟิร์มแวร์ใหม่ที่มีการโต้ตอบน้อยที่สุดกับบอร์ดทางกายภาพนั้นสะดวกมากในบางกรณี ในกรณีของฉันมันกระพริบบอร์ด BTT GTR 1.0 ของเครื่องพิมพ์ 3 มิติของฉันผ่าน Octopi ของฉันที่กดปุ่ม (สองปุ่มรีเซ็ตปุ่มเข้ารหัส + LCD) ซึ่งตอนนี้ฉันสามารถเรียกผ่าน GPIO ของ RPI และแฟลชได้โดยไม่มีการโต้ตอบด้วยตนเอง
bootloader นี้เป็นงานที่อยู่ระหว่างดำเนินการซึ่งหมายความว่ามันยังไม่ได้รับการทดสอบอย่างกว้างขวางและยังมีอีกมากที่ต้องพิจารณาเกี่ยวกับความเข้ากันได้ของฮาร์ดแวร์ โปรดพิจารณาว่านี่เป็นสิ่งที่ทดลองได้จนกว่าคุณจะแน่ใจว่าทุกด้านทำงานบนบอร์ดเฉพาะของคุณ
โครงการได้รับแรงบันดาลใจจาก Serasidis/STM32_HID_BOOTLOADER (ซึ่งมีต้นกำเนิดจาก Bootsector/STM32-HID-Bootloader) และรักษาความเข้ากันได้กับเครื่องมือ HID-Flash
โครงการถูกปรับให้เข้ากับ Platformio (โครงการควรสร้างและอัปโหลดตามที่เป็นอยู่หากคุณมีอุปกรณ์ ST-LINK/V2 ที่เชื่อมต่อ) มันใช้ไลบรารีเฟรมเวิร์ก STM32Cube ดั้งเดิมแทนที่จะมีส่วนที่ปรับเปลี่ยนเล็กน้อยของมัน โปรโตคอล DFU ถูกนำไปใช้และทดสอบบนแพลตฟอร์ม STM32F1XX/4XX ทั้งสอง ในขณะนี้ความเข้ากันได้กับรุ่นเก่าของ HID-flash.exe จะได้รับการดูแลในการรวบรวม STM32F4XX เท่านั้น แหล่งที่มาของเครื่องมือ HID-Flash ไม่รวมอยู่ในโครงการ
ก่อนที่คุณจะลองทำสิ่งนี้ให้แน่ใจว่าคุณมีสำเนา bootloader ดั้งเดิมของบอร์ดของคุณ ซึ่งคุณประสบความสำเร็จในการกลับไปที่บอร์ดโดยไม่มีปัญหา
การปรับแต่งพฤติกรรม bootloader ทำได้โดยการแก้ไขไฟล์ configuration.h ดูความคิดเห็นของไฟล์สำหรับรายละเอียด
ใช้อุปกรณ์ที่เข้ากันได้กับ ST-Link เชื่อมต่อกับบอร์ดและพีซีของคุณอย่างเหมาะสม ใช้คำสั่งอัปโหลดของ Platformio เพื่อติดตั้ง การรีเซ็ตบอร์ดด้วยการตั้งค่า boot0 pin เป็น 3.3V ควรใช้งานได้ แต่ขึ้นอยู่กับบอร์ดของคุณและ MCU (ตรวจสอบ Wiki สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่อง)
เปิดใช้งานทริกเกอร์ที่กำหนดค่าและรีเซ็ตบอร์ด (ในกรณีของทริกเกอร์ PIN ให้เปิดใช้งานพินในขณะที่รีเซ็ตและจนกว่าอุปกรณ์ USB จะปรากฏขึ้นที่โฮสต์การตรวจสอบโปรโตคอลที่คุณเปิดใช้งาน (DFU หรือ HID) ใช้ dfu -util.exe หรือ hid -flash.ex ในฐานะที่คุณต้องการ upload-protocol ในส่วน ENV ของไฟล์ platformio.ini ของเฟิร์มแวร์ของคุณเช่นในตัวอย่างต่อไปนี้:
#
# Bigtreetech GTR V1.0 (STM32F407IGT6 ARM Cortex-M4)
#
[env:BIGTREE_GTR_V1_0]
extends = stm32_variant
board = marlin_BigTree_GTR_v1
board_build.offset = 0x8000
build_flags = ${stm32_variant.build_flags} -DSTM32F407IX
upload_protocol = dfu
เยี่ยมชม Wiki สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกะพริบและการใช้งาน
ทริกเกอร์มากขึ้นวิธีการกระพริบมากขึ้น, STM32 MCUS / บอร์ดเพิ่มเติมเพื่อรองรับ
จนถึงตอนนี้โครงการได้รับการทดสอบบนบอร์ดต่อไปนี้:
STM32F4XX:
STM32F1XX: