สารบัญ:

แฮ็ค CFA735/CFA835: 4 ขั้นตอน
แฮ็ค CFA735/CFA835: 4 ขั้นตอน

วีดีโอ: แฮ็ค CFA735/CFA835: 4 ขั้นตอน

วีดีโอ: แฮ็ค CFA735/CFA835: 4 ขั้นตอน
วีดีโอ: Sukoon❤️ My CA Intermediate result! Cleared my first group🔥 #castudentlife #resultreaction #cainter 2024, พฤศจิกายน
Anonim
แฮ็ก CFA735/CFA835
แฮ็ก CFA735/CFA835

คุณมีโครงการที่ต้องการจอแสดงผล ปุ่มกด และหน่วยความจำบางส่วน แต่เฟิร์มแวร์ที่โหลดไว้ล่วงหน้าบนโมดูล 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 ด้วยเฟิร์มแวร์ใหม่ที่จะ:

  1. แสดงตารางสลับบนจอ LCD พร้อมแบ็คไลท์ปัจจุบัน คอนทราสต์ LCD และข้อมูลสถานะปุ่มกด
  2. ควบคุมแบ็คไลท์และคอนทราสต์ LCD โดยใช้ปุ่มกด
  3. เปลี่ยนสีของไฟ LED สี่ดวงจากสีแดงเป็นสีเขียวตามลำดับ
  4. เปิดใช้งานพอร์ตอนุกรม USART บนหมุด Header-1 1 & 2 (115200 บอด) และสะท้อนข้อมูลที่ได้รับ
  5. เปิดใช้งานพอร์ตอนุกรมเสมือน USB และสะท้อนข้อมูลที่ได้รับกลับไปยังโฮสต์
  6. รวมแต่ไม่แสดงให้เห็น การเข้าถึงไฟล์แบบอ่าน/เขียน 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 ที่ให้มา คุณจะต้องลบเฟิร์มแวร์ที่ออกจากระบบก่อนติดตั้งเฟิร์มแวร์ใหม่ หน่วยความจำแฟลชได้รับการป้องกันการอ่านและเขียน และต้องถอดออกก่อนจึงจะสามารถโหลดเฟิร์มแวร์ที่กำหนดเองได้

มีสองวิธีในการลบเฟิร์มแวร์ที่ติดตั้ง:

  1. ถอดสาย USB (หรือแหล่งจ่ายไฟ) ออกจากโมดูล CFA10052
  2. เชื่อมต่อ CFA10052 กับ ST-LINK โดยใช้สายการเขียนโปรแกรม (ดูด้านบน) และ ST-LINK กับโฮสต์พีซี
  3. กดปุ่มขึ้นและลงบน CFA10052 ค้างไว้ขณะเสียบสาย USB เข้ากับ CFA10052 (หรือแหล่งจ่ายไฟ) ตอนนี้ CFA10052 ควรแสดงหน้าจอ Crystalfontz Bootloader
  4. เรียกใช้ยูทิลิตี้ STM32 ST-LINK ในเมนู "Target" ให้เปิดหน้าต่าง "Option Bytes" ในกล่อง "การป้องกันการอ่าน" เลือก "ระดับ 0" คลิก Apply ตอนนี้เฟิร์มแวร์ Crystalfontz ถูกลบแล้ว และเฟิร์มแวร์ที่กำหนดเองใดๆ ก็สามารถตั้งโปรแกรมได้

วิธีอื่น (หากคุณไม่สามารถเข้าสู่ Crystalfontz Bootloader โดยกดปุ่มค้างไว้):

  1. ถอดสาย USB (หรือแหล่งจ่ายไฟ) ออกจากโมดูล CFA10052
  2. เชื่อมต่อจุดทดสอบ BOOT0 (แผ่นเล็กๆ ที่ด้านหลังของโมดูล CFA10052 ใกล้กับขั้วต่อ H1) กับ 3.3V หรือ 5V
  3. เชื่อมต่อ CFA10052 กับ ST-LINK โดยใช้สายการเขียนโปรแกรม (ดูด้านบน) และ ST-LINK กับโฮสต์พีซี
  4. เปิดเครื่อง CFA10052 (หรือเชื่อมต่อกับแหล่งจ่ายไฟ USB) จอแสดงผลควรว่างเปล่า
  5. เรียกใช้ยูทิลิตี้ STM32 ST-LINK ในเมนู "เป้าหมาย" เปิดหน้าต่าง "ไบต์ตัวเลือก" ในกล่อง "การป้องกันการอ่าน" เลือก "ระดับ 0" คลิก Apply ตอนนี้เฟิร์มแวร์ Crystalfontz ถูกลบแล้ว และเฟิร์มแวร์ที่กำหนดเองใดๆ ก็สามารถตั้งโปรแกรมได้
  6. ไม่จำเป็นต้องเชื่อมต่อพิน BOOT0 กับ 3.3V/5V อีกต่อไป

ขั้นตอนที่ 3: รวบรวมและโหลดเฟิร์มแวร์ของคุณไปยัง CFA10052

รวบรวมและโหลดเฟิร์มแวร์ของคุณลงใน CFA10052
รวบรวมและโหลดเฟิร์มแวร์ของคุณลงใน CFA10052

เมื่อลบเฟิร์มแวร์ที่จัดหาให้ Crystalfontz แล้ว คุณก็พร้อมที่จะคอมไพล์และโหลดเฟิร์มแวร์ของคุณเอง สำหรับจุดประสงค์ของบทช่วยสอนนี้ เราได้จัดหาเฟิร์มแวร์ทางเลือกบางอย่างที่ช่วยให้สามารถควบคุมความสว่างของแบ็คไลท์และคอนทราสต์ของจอแสดงผลบนแผงปุ่มกดได้

ในการรวบรวมเฟิร์มแวร์:

  1. เปิด STM32CubeIDE
  2. ในเมนูไฟล์ ให้เลือกนำเข้า จากนั้นเลือก "นำเข้าโปรเจ็กต์ที่มีอยู่ไปยังพื้นที่ทำงาน"
  3. ในกล่องไดเร็กทอรีราก ให้เลือกไดเร็กทอรีของเฟิร์มแวร์ตัวอย่างนี้
  4. คลิกปุ่มเสร็จสิ้น
  5. ใน Project Explorer เลือกโปรเจ็กต์ cfa10052_example จากนั้นเปิดไฟล์ Src และ "main.c"
  6. ในเมนูโครงการ เลือก "สร้างโครงการ"

ในการตั้งโปรแกรมและรันเฟิร์มแวร์บน CFA10052:

  1. ถอดสาย USB (หรือแหล่งจ่ายไฟ) ออกจากโมดูล CFA10052
  2. เชื่อมต่อ CFA10052 กับ ST-LINK โดยใช้สายการเขียนโปรแกรม (ดูด้านบน) และ ST-LINK กับโฮสต์พีซี
  3. เชื่อมต่อสาย USB (หรือแหล่งจ่ายไฟ) เข้ากับ CFA10052
  4. ตรวจสอบให้แน่ใจว่าสร้างโปรเจ็กต์เฟิร์มแวร์แล้ว (ดูขั้นตอนด้านบน) และ "ไบนารี" ปรากฏขึ้นภายใต้ "cfa10052_example" ใน Project Explorer
  5. หากมองไม่เห็น "ไบนารี" ให้คลิกขวาที่โปรเจ็กต์ "cfa10052_example" แล้วเลือกรีเฟรช
  6. เลือกเมนู Run จากนั้นเลือก "Debug Configurations"
  7. ในกล่องการเลือกประเภทเป้าหมายการดีบักทางด้านซ้าย ให้คลิกขวาที่ "STM32 Cortex-M Application" และเลือก "New Configuration"
  8. หน้าต่างการกำหนดค่าจะปรากฏขึ้น การตั้งค่าเริ่มต้นก็โอเค คลิกปุ่ม Apply จากนั้นคลิกปุ่ม Close
  9. ในเมนู 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

แนะนำ: