สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: รวบรวม/สร้างอุปกรณ์
- ขั้นตอนที่ 2: ลบเฟิร์มแวร์ที่มีอยู่
- ขั้นตอนที่ 3: รวบรวมและโหลดเฟิร์มแวร์ของคุณไปยัง CFA10052
- ขั้นตอนที่ 4: ใบอนุญาต
วีดีโอ: แฮ็ค CFA735/CFA835: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
คุณมีโครงการที่ต้องการจอแสดงผล ปุ่มกด และหน่วยความจำบางส่วน แต่เฟิร์มแวร์ที่โหลดไว้ล่วงหน้าบนโมดูล Crystalfontz CFA735 หรือ CFA835 ไม่ใช่สิ่งที่คุณกำลังมองหาใช่หรือไม่ คุณโชคดี คุณสามารถแฮ็กโมดูลเหล่านี้เพื่อโหลดเฟิร์มแวร์ที่กำหนดเองได้
CFA735 และ CFA835 เป็นโมดูล LCD อัจฉริยะอเนกประสงค์ ทั้ง Crystalfontz CFA735 และ CFA835 ใช้โมดูลฮาร์ดแวร์ CFA10052 ดังนั้นในระหว่างบทช่วยสอนนี้ CFA735 และ/หรือ CFA835 จะเรียกว่า CFA10052 CFA10052 สามารถตั้งโปรแกรมใหม่เพื่อเรียกใช้เฟิร์มแวร์ที่คุณกำหนดเองได้
- ไมโครคอนโทรลเลอร์ STMicroelectronics STM32F401
- ARM 32-บิต Cortex™-M4 CPU @ 84 MHz
- 256K แฟลช, 64K RAM
- จอ LCD แบ็คไลท์ 244 x 68 พิกเซล
- Sitronix ST7529 32 ตัวควบคุมกราฟิก LCD ระดับสีเทา
- แหล่งจ่ายสวิตชิ่งแบบ Buck-boost ช่วยให้ช่วงแรงดันไฟกว้าง
- แยกสวิตช์ควบคุมความสว่าง LED สำหรับปุ่มกดและไฟหลังจอ LCD
- ปุ่มกดเรืองแสง 6 ปุ่ม
- ไฟ LED สองสี (แดง/เขียว) 4 เท่า
- อินเทอร์เฟซ USB2
- ช่องเสียบการ์ด microSD
- หมุด IO อเนกประสงค์ 5 อัน (GPIO's)
- อินเทอร์เฟซ Serial/SPI/I2C/CAN หลายรายการ (ขึ้นอยู่กับการใช้ GPIO)
บทช่วยสอนนี้จะแสดงวิธีเปลี่ยนเฟิร์มแวร์ที่มาพร้อมกับ CFA10052 ด้วยเฟิร์มแวร์ใหม่ที่จะ:
- แสดงตารางสลับบนจอ LCD พร้อมแบ็คไลท์ปัจจุบัน คอนทราสต์ LCD และข้อมูลสถานะปุ่มกด
- ควบคุมแบ็คไลท์และคอนทราสต์ LCD โดยใช้ปุ่มกด
- เปลี่ยนสีของไฟ LED สี่ดวงจากสีแดงเป็นสีเขียวตามลำดับ
- เปิดใช้งานพอร์ตอนุกรม USART บนหมุด Header-1 1 & 2 (115200 บอด) และสะท้อนข้อมูลที่ได้รับ
- เปิดใช้งานพอร์ตอนุกรมเสมือน USB และสะท้อนข้อมูลที่ได้รับกลับไปยังโฮสต์
- รวมแต่ไม่แสดงให้เห็น การเข้าถึงไฟล์แบบอ่าน/เขียน uSD
แน่นอน คุณสามารถเขียนเฟิร์มแวร์ของคุณเองและโหลดได้โดยใช้ขั้นตอนเหล่านี้
โน๊ตสำคัญ:
โมดูลฮาร์ดแวร์ Crystalfontz CFA10052 มาพร้อมกับโปรแกรมโหลดบูตและเฟิร์มแวร์ CFA735/CFA835 bootloader และเฟิร์มแวร์ CFA735/CFA835 ไม่ใช่โอเพ่นซอร์ส และผู้ใช้ไม่สามารถคัดลอกออกจาก CFA10052 และผู้ใช้ไม่สามารถตั้งโปรแกรมบน CFA10052 ได้ หากคุณต้องการเปลี่ยนกลับเป็นเฟิร์มแวร์ CFA735/CFA835 คุณจะต้องจัดส่งกลับไปยัง Crystalfontz เพื่อตั้งโปรแกรมใหม่
เสบียง
- Crystalfontz CFA10052 (ฮาร์ดแวร์ v1.1 หรือใหม่กว่า) โมดูล (CFA735 / CFA835)
- พีซี (Windows/Linux/OSX) ที่ติดตั้งยูทิลิตี้ STM32CubeIDE และ STM32 ST-LINK
- STMicroelectronics อินเทอร์เฟซการเขียนโปรแกรม ST-LINK (V2 หรือ V3)
- สายการเขียนโปรแกรม CFA10052 (รายละเอียดด้านล่าง)
- เฟิร์มแวร์ที่กำหนดเอง (หรือใช้ของเราที่นี่)
- หากคุณใช้ Windows 7/8/8.1/10 (หรือเวอร์ชันเซิร์ฟเวอร์ที่เทียบเท่า) และต้องการทดสอบพอร์ตอนุกรมเสมือนของ USB คุณจะต้องดาวน์โหลดไดรเวอร์จากที่นี่ พอร์ตอนุกรม USB จะทำงานโดยไม่ต้องใช้ไดรเวอร์เพิ่มเติมใน Windows 10+, Linux, OS-X
ขั้นตอนที่ 1: รวบรวม/สร้างอุปกรณ์
เราขอแนะนำให้ใช้ STM32CubeIDE เพื่อโหลดและใช้โครงการเฟิร์มแวร์ตัวอย่างนี้ STM32CubeIDE เป็น IDE ฟรีที่ใช้ Eclipse ที่ได้รับการแก้ไขโดย STMicroelectronics เพื่อรวมเครื่องมือเฉพาะของ STM32 IDE สามารถดาวน์โหลดได้จากหน้าเว็บ STM32CubeIDE
เพื่อรักษาการทำงานที่ถูกต้องของเครื่องมือกำหนดค่าอุปกรณ์ STM คุณต้องแก้ไขเฉพาะเครื่องมือกำหนดค่าอุปกรณ์ที่สร้างซอร์สโค้ดระหว่างบล็อกความคิดเห็น "USER CODE BEGIN xxx" และ "USER CODE END xxx" ที่ตรงกัน
ถัดไป ตัดสินใจว่าจะติดต่อเราเพื่อขอสายเคเบิลการเขียนโปรแกรม CFA10052 หรือสร้างสายเคเบิลของคุณเอง เราจะไม่พูดถึงการสร้างสายเคเบิลโดยละเอียดในบทช่วยสอนนี้ แต่ถ้าคุณต้องการสร้างสายเคเบิลการเขียนโปรแกรม CFA10052 ของคุณเอง คุณสามารถค้นหาการเชื่อมต่อได้ในหน้า GitHub วิธีที่ดีที่สุดคือเริ่มต้นด้วย สายแพสิบหกพินแล้วต่อเข้ากับสายเคเบิลสำหรับ ST Link
ขั้นตอนที่ 2: ลบเฟิร์มแวร์ที่มีอยู่
หากโมดูล CFA10052 ของคุณโหลดด้วยเฟิร์มแวร์ CFA735 หรือ CFA835 ที่ให้มา คุณจะต้องลบเฟิร์มแวร์ที่ออกจากระบบก่อนติดตั้งเฟิร์มแวร์ใหม่ หน่วยความจำแฟลชได้รับการป้องกันการอ่านและเขียน และต้องถอดออกก่อนจึงจะสามารถโหลดเฟิร์มแวร์ที่กำหนดเองได้
มีสองวิธีในการลบเฟิร์มแวร์ที่ติดตั้ง:
- ถอดสาย USB (หรือแหล่งจ่ายไฟ) ออกจากโมดูล CFA10052
- เชื่อมต่อ CFA10052 กับ ST-LINK โดยใช้สายการเขียนโปรแกรม (ดูด้านบน) และ ST-LINK กับโฮสต์พีซี
- กดปุ่มขึ้นและลงบน CFA10052 ค้างไว้ขณะเสียบสาย USB เข้ากับ CFA10052 (หรือแหล่งจ่ายไฟ) ตอนนี้ CFA10052 ควรแสดงหน้าจอ Crystalfontz Bootloader
- เรียกใช้ยูทิลิตี้ STM32 ST-LINK ในเมนู "Target" ให้เปิดหน้าต่าง "Option Bytes" ในกล่อง "การป้องกันการอ่าน" เลือก "ระดับ 0" คลิก Apply ตอนนี้เฟิร์มแวร์ Crystalfontz ถูกลบแล้ว และเฟิร์มแวร์ที่กำหนดเองใดๆ ก็สามารถตั้งโปรแกรมได้
วิธีอื่น (หากคุณไม่สามารถเข้าสู่ Crystalfontz Bootloader โดยกดปุ่มค้างไว้):
- ถอดสาย USB (หรือแหล่งจ่ายไฟ) ออกจากโมดูล CFA10052
- เชื่อมต่อจุดทดสอบ BOOT0 (แผ่นเล็กๆ ที่ด้านหลังของโมดูล CFA10052 ใกล้กับขั้วต่อ H1) กับ 3.3V หรือ 5V
- เชื่อมต่อ CFA10052 กับ ST-LINK โดยใช้สายการเขียนโปรแกรม (ดูด้านบน) และ ST-LINK กับโฮสต์พีซี
- เปิดเครื่อง CFA10052 (หรือเชื่อมต่อกับแหล่งจ่ายไฟ USB) จอแสดงผลควรว่างเปล่า
- เรียกใช้ยูทิลิตี้ STM32 ST-LINK ในเมนู "เป้าหมาย" เปิดหน้าต่าง "ไบต์ตัวเลือก" ในกล่อง "การป้องกันการอ่าน" เลือก "ระดับ 0" คลิก Apply ตอนนี้เฟิร์มแวร์ Crystalfontz ถูกลบแล้ว และเฟิร์มแวร์ที่กำหนดเองใดๆ ก็สามารถตั้งโปรแกรมได้
- ไม่จำเป็นต้องเชื่อมต่อพิน BOOT0 กับ 3.3V/5V อีกต่อไป
ขั้นตอนที่ 3: รวบรวมและโหลดเฟิร์มแวร์ของคุณไปยัง CFA10052
เมื่อลบเฟิร์มแวร์ที่จัดหาให้ Crystalfontz แล้ว คุณก็พร้อมที่จะคอมไพล์และโหลดเฟิร์มแวร์ของคุณเอง สำหรับจุดประสงค์ของบทช่วยสอนนี้ เราได้จัดหาเฟิร์มแวร์ทางเลือกบางอย่างที่ช่วยให้สามารถควบคุมความสว่างของแบ็คไลท์และคอนทราสต์ของจอแสดงผลบนแผงปุ่มกดได้
ในการรวบรวมเฟิร์มแวร์:
- เปิด STM32CubeIDE
- ในเมนูไฟล์ ให้เลือกนำเข้า จากนั้นเลือก "นำเข้าโปรเจ็กต์ที่มีอยู่ไปยังพื้นที่ทำงาน"
- ในกล่องไดเร็กทอรีราก ให้เลือกไดเร็กทอรีของเฟิร์มแวร์ตัวอย่างนี้
- คลิกปุ่มเสร็จสิ้น
- ใน Project Explorer เลือกโปรเจ็กต์ cfa10052_example จากนั้นเปิดไฟล์ Src และ "main.c"
- ในเมนูโครงการ เลือก "สร้างโครงการ"
ในการตั้งโปรแกรมและรันเฟิร์มแวร์บน CFA10052:
- ถอดสาย USB (หรือแหล่งจ่ายไฟ) ออกจากโมดูล CFA10052
- เชื่อมต่อ CFA10052 กับ ST-LINK โดยใช้สายการเขียนโปรแกรม (ดูด้านบน) และ ST-LINK กับโฮสต์พีซี
- เชื่อมต่อสาย USB (หรือแหล่งจ่ายไฟ) เข้ากับ CFA10052
- ตรวจสอบให้แน่ใจว่าสร้างโปรเจ็กต์เฟิร์มแวร์แล้ว (ดูขั้นตอนด้านบน) และ "ไบนารี" ปรากฏขึ้นภายใต้ "cfa10052_example" ใน Project Explorer
- หากมองไม่เห็น "ไบนารี" ให้คลิกขวาที่โปรเจ็กต์ "cfa10052_example" แล้วเลือกรีเฟรช
- เลือกเมนู Run จากนั้นเลือก "Debug Configurations"
- ในกล่องการเลือกประเภทเป้าหมายการดีบักทางด้านซ้าย ให้คลิกขวาที่ "STM32 Cortex-M Application" และเลือก "New Configuration"
- หน้าต่างการกำหนดค่าจะปรากฏขึ้น การตั้งค่าเริ่มต้นก็โอเค คลิกปุ่ม Apply จากนั้นคลิกปุ่ม Close
- ในเมนู Run เลือก "Debug As" จากนั้นเลือก "STM32 Cortex Application" ตอนนี้ STM32CubeIDE ควรเชื่อมต่อกับ ST-LINK และอัปโหลดและเรียกใช้เฟิร์มแวร์บน CFA10052
ขั้นตอนข้างต้นจำเป็นสำหรับการโหลดโปรเจ็กต์เป็นครั้งแรกใน STM32CubeIDE เท่านั้น หลังจากทำการเปลี่ยนแปลงซอร์สโค้ดของเฟิร์มแวร์แล้ว จำเป็นต้องสร้างโปรเจ็กต์ใหม่ (ทางลัด Ctrl-B) และเขียนโปรแกรม CFA10052 (คีย์ลัด F11) เท่านั้น
นอกจากนี้ยังสามารถโหลดเฟิร์มแวร์โดยใช้วิธีการบูตโหลดเดอร์ STM32 ปกติ (การดีบักทำได้โดยใช้อินเทอร์เฟซ SWD และ ST-LINK เท่านั้น) ตัวอย่างเช่น หากใช้การเชื่อมต่อแบบอนุกรม อาจใช้ USART1 (RX=H1-Pin1 และ TX=H1-Pin2) สำหรับข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับบูตโหลดเดอร์ STM32 และอินเทอร์เฟซ โปรดดู PDF ที่นี่
ขั้นตอนที่ 4: ใบอนุญาต
รหัสที่มา Crystalfontz จัดหาให้โดยใช้ The Unlicense ใบอนุญาตที่ไม่มีเงื่อนไขใด ๆ ที่อุทิศให้กับสาธารณสมบัติ งานที่ไม่มีใบอนุญาต การดัดแปลง และงานขนาดใหญ่อาจถูกแจกจ่ายภายใต้เงื่อนไขที่แตกต่างกันและไม่มีซอร์สโค้ด ดูรายละเอียดในไฟล์ UNLICENCE หรือ unlicense.org
STM32CubeIDE ที่สร้างซอร์สโค้ดและไลบรารี STMicroelectronics เป็นลิขสิทธิ์ (c) 2019 STMicroelectronics สงวนลิขสิทธิ์. ส่วนประกอบซอฟต์แวร์ได้รับอนุญาตจาก ST ภายใต้ใบอนุญาต BSD 3-Clause "ใบอนุญาต"; คุณไม่สามารถใช้ไฟล์เหล่านี้ได้ยกเว้นการปฏิบัติตามใบอนุญาต คุณสามารถขอรับสำเนาใบอนุญาตได้ที่ opensource.org/licenses/BSD-3-Clause
แนะนำ:
แฮ็ค! เซอร์โวมอเตอร์ในฐานะตัวขับโมเดลรถไฟ!: 17 ขั้นตอน
แฮ็ค! เซอร์โวมอเตอร์ในฐานะผู้ขับโมเดลรถไฟ!: การเริ่มต้นใช้งานรถไฟจำลอง? ไม่มีงบประมาณเพียงพอที่จะซื้อตัวควบคุมรถไฟราคาแพงเหล่านั้นทั้งหมดใช่หรือไม่ ไม่ต้องกังวล! ในคำแนะนำนี้ฉันจะแสดงให้คุณเห็นว่าคุณสามารถสร้างตัวควบคุมรถไฟที่มีงบประมาณต่ำได้อย่างไรโดยการแฮ็กเซอร์โวมอเตอร์ งั้นเรามาเ
UPS แฮ็ค! ซ่อน..: 8 ขั้นตอน (พร้อมรูปภาพ)
UPS แฮ็ค! ซ่อน..: ซ่อนไฟล์คอมพิวเตอร์ที่สำคัญของคุณในสายตาธรรมดา! คุณลูก ๆ ภรรยาของคุณไม่แม้แต่โจรที่น่ารำคาญก็จะรู้ว่ามันอยู่ที่นั่นคำแนะนำนี้จะแสดงให้คุณเห็นวิธีเปลี่ยน UPS Power Backup ที่ตายแล้วให้กลายเป็นฮาร์ดไดรฟ์ภายนอกที่รอบคอบสำหรับ ต่ำกว่า $20.00!ชม
Seeed Studio CAN-BUS V2.0 แฮ็ค - เริ่มต้นใช้งาน: 5 ขั้นตอน
Seeed Studio CAN-BUS V2.0 การแฮ็ก - เริ่มต้นใช้งาน: คำแนะนำนี้มีไว้สำหรับผู้เริ่มต้นที่รู้จัก Arduino แล้ว การเริ่มต้นรู้วิธีดำเนินการอยู่เสมอเป็นเรื่องที่เจ็บปวดและใช้เวลานานในทุกโครงการ แต่จนกว่าคุณจะรู้เส้นทางรอบตัวคุณ แทบอยากจะมีใครสักคนคอยปลอบ
แฮ็ค Digital Timmer ไมโครเวฟ: 8 ขั้นตอน
The Microwave Digital Timmer Hack.: ฉันค่อนข้างเป็นคนที่ไม่สนใจ พูดอีกอย่างหนึ่งคือความทรงจำของฉันมีกลิ่นเหม็น ดังนั้นถ้าฉันฟุ้งซ่านจากโครงการที่ฉันอาจมีหัวแร้งร้อนระอุ ฉันอาจจะลืมมันไปหมดแล้วและเผาตัวเองในภายหลัง นี่เป็นเรื่องใหญ่
วิธีการ Jailbreak (แฮ็ค) กับ iPod/iPhone: 4 ขั้นตอน
วิธีการ Jailbreak (แฮ็ก) กับ iPod/iPhone: ฉันรู้ว่าคุณเคยเห็นคนที่คุณรู้จักหรือได้ยินเกี่ยวกับคนที่มี iPhone หรือ iPod touch ที่ "เจลเบรคแล้ว" การเจลเบรกแบบใดแบบหนึ่งสามารถช่วยคุณประหยัดเงินได้มากมายเช่นกัน เวอร์ชันเจลเบรคสามารถดาวน์โหลดแอป appstore ฟรีและค