สารบัญ:

STM32 "Blue Pill" การเขียนโปรแกรมผ่าน Arduino IDE & USB: 8 ขั้นตอน
STM32 "Blue Pill" การเขียนโปรแกรมผ่าน Arduino IDE & USB: 8 ขั้นตอน

วีดีโอ: STM32 "Blue Pill" การเขียนโปรแกรมผ่าน Arduino IDE & USB: 8 ขั้นตอน

วีดีโอ: STM32
วีดีโอ: การใช้งาน STM32F103C8T6 ร่วมกับ Arduino IDE รับเขียนโปรแกรม STM32 2024, พฤศจิกายน
Anonim
STM32
STM32

การเปรียบเทียบบอร์ดต้นแบบทั่วไปของ STM32F (เช่น Blue Pill) กับ Arduino ที่เป็นคู่กันนั้นง่ายต่อการดูว่ามีทรัพยากรมากน้อยเพียงใด ซึ่งเปิดโอกาสใหม่ๆ มากมายให้กับโครงการ IOT

ข้อเสียคือขาดการสนับสนุน จริงๆ แล้วไม่ได้ขาดการสนับสนุน แต่มันกระจายไปในฟอรัม บล็อก และหน้าอื่นๆ จำนวนมากเกินไป หลายคนล้าสมัย

ฉันจะอธิบายประสบการณ์ของฉันในการรับบอร์ดเหล่านั้น ไม่เพียงแต่กำหนดค่าโดย Arduino IDE เท่านั้น แต่ยังผ่านตัวเชื่อมต่อ USB ในตัวด้วย

ฉันยังจะแสดงวิธีการอัปโหลด Bootloader โดยใช้ ST-Link V2

ขั้นตอนที่ 1: อะไหล่:

อะไหล่
อะไหล่
อะไหล่
อะไหล่

คุณจะต้องมีบางส่วน:

  1. อย่างแรกที่คุณต้องมีก็คือบอร์ดต้นแบบ ST32F103 "ยาเม็ดสีน้ำเงิน" เป็นที่รู้กันทั่วและคุณสามารถซื้อได้ในราคาไม่แพงในร้านค้าอีคอมเมิร์ซหลายแห่ง
  2. โมดูล ST-Link V2
  3. เขียงหั่นขนมและสายกระโดด

ขั้นตอนที่ 2: ซอฟต์แวร์ที่คุณต้องการ:

ซอฟต์แวร์ที่คุณต้องการ
ซอฟต์แวร์ที่คุณต้องการ
ซอฟต์แวร์ที่คุณต้องการ
ซอฟต์แวร์ที่คุณต้องการ
ซอฟต์แวร์ที่คุณต้องการ
ซอฟต์แวร์ที่คุณต้องการ
  1. ก่อนอื่น Arduino IDE หากคุณยังไม่ได้ดาวน์โหลด นี่คือลิงค์: https://www.arduino.cc/en/Main/Software ฉันทดสอบคำแนะนำนี้ด้วยเวอร์ชัน 1.8.11, 1.8.12 และเวอร์ชันแอปซึ่งใช้งานได้กับ Windows 8 และ 10 เท่านั้น ฉันจะไม่ครอบคลุมถึงการติดตั้งซอฟต์แวร์นี้ เมื่อมีข้อมูลมากมายเกี่ยวกับวิธีการทำงาน
  2. จากไซต์ STM คุณจะต้องใช้ซอฟต์แวร์ด้านล่าง จำเป็นต้องสร้างบัญชี:

    1. ไดรเวอร์ ST-Link V2 windows:
    2. ยูทิลิตี้ STM32-Link (https://my.st.com/content/my_st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/stsw-link004.html).
  3. จากนั้นก็ถึงเวลาดาวน์โหลด Boot loader นี่คือสิ่งที่จะช่วยให้ Blue Pill เชื่อมต่อกับคอมพิวเตอร์ USB นี่คือลิงค์ไปยังสิ่งนี้:

สังเกตว่าคุณจะต้องเพิ่มบอร์ดใน Arduino IDE ด้วย ฉันจะอธิบายรายละเอียดเกี่ยวกับวิธีการทำเช่นนี้

ขั้นตอนที่ 3: STM32F103 Generic Prototype Board, Blue Pill

STM32F103 บอร์ดต้นแบบทั่วไป ยาเม็ดสีน้ำเงิน
STM32F103 บอร์ดต้นแบบทั่วไป ยาเม็ดสีน้ำเงิน
STM32F103 บอร์ดต้นแบบทั่วไป ยาเม็ดสีน้ำเงิน
STM32F103 บอร์ดต้นแบบทั่วไป ยาเม็ดสีน้ำเงิน
STM32F103 บอร์ดต้นแบบทั่วไป ยาเม็ดสีน้ำเงิน
STM32F103 บอร์ดต้นแบบทั่วไป ยาเม็ดสีน้ำเงิน

ตอนนี้คำอธิบายสั้น ๆ เกี่ยวกับบอร์ดต้นแบบ STM32F103 รู้โดย "Blue Pill"

นี่คือฮาร์ดแวร์โอเพ่นซอร์ส ดูเหมือน Arduino Nano (ขนาดใกล้เคียงกันเกือบ) คุณอาจพบว่ามีการผลิตที่แตกต่างกันมากมาย แต่เป็นไปตามแผนผังที่ใกล้เคียงมาก แม้กระทั่งปัญหา

คุณอาจถามว่า: ถ้าดูเหมือน Arduino Nano เหตุใดฉันจึงควรย้ายไปใช้ฮาร์ดแวร์อื่น

คำตอบนั้นง่าย อย่างที่ฉันบอกไปแล้ว ถ้าโปรเจ็กต์ของคุณต้องการ Faster Micro controller, ที่มี GPIO มากกว่า (รวมทั้งหมด 33 ตัว), อินพุต ADC ที่แม่นยำและ/หรือแม่นยำมากขึ้น (10 อินพุต x ความละเอียด 12 บิต), เอาต์พุตแอนะล็อก (15), อินเทอร์เฟซการสื่อสารที่มากขึ้น ฯลฯ; นี่คือไมโครคอนโทรลเลอร์ที่คุณอาจต้องการ

ด้านบนมีพินเอาต์และแผนผังไดอะแกรม

ตอนนี้คำแนะนำบางอย่าง:

  1. นี่คือ 3V3 ไมโครคอนโทรลเลอร์ แม้ว่าพินบางอันจะยืดหยุ่นได้ 5V แต่ฉันขอแนะนำให้รักษาระดับอุปกรณ์เสริมไว้ในระดับสูงใน 3V3 มิฉะนั้นคุณสามารถทอด Blue Pill ให้คุณได้
  2. PA11 และ PA12 ของ Pin ไม่พร้อมใช้งาน เมื่อมีหน้าที่รับผิดชอบในการสื่อสารผ่าน USB
  3. เมื่อพูดถึง USB คุณจะพบเว็บไซต์และบล็อกมากมายที่แจ้งว่า Blue Pill มีค่าความต้านทานการดึงที่ผิดในพอร์ตของมัน ตามจริงแล้ว โดยทั่วไปแล้วจะมีขนาด 10KΩ แทนที่จะเป็น 4, 7KΩ ซึ่งอาจทำให้เกิดปัญหาในการเชื่อมต่อ USB บอกตามตรง ฉันมีบอร์ด 3 ตัว และฉันไม่เคยมีปัญหาในการเชื่อมต่อใดๆ ในแล็ปท็อปเลย ดังนั้น ฉันอยากจะแนะนำว่าถ้าหากคุณพบปัญหาในการเชื่อมต่อ USB กับคอมพิวเตอร์ของคุณจริงๆ ฉันพบว่ามีการวาดวงจรเมื่อค่าตัวต้านทานนี้เท่ากับ10KΩ ไปดูกันเลย….วิธีแก้ปัญหาคือการบัดกรีตัวต้านทาน 1.5KΩ หรือ 1.8KΩ ระหว่างพิน PA12 และ 5V vcc
  4. การดูไดอะแกรมอย่างใกล้ชิดยังเป็นไปได้ที่จะเห็นว่าไม่มีการป้องกันระหว่างสายจ่ายไฟ 5V และ USB 5V ระวังหรือเพียงแค่หลีกเลี่ยงการใช้แหล่งจ่ายไฟหลายแหล่ง คุณอาจทอดพอร์ต USB ของคอมพิวเตอร์ของคุณ หากคุณใช้แหล่งจ่ายไฟภายนอก 5V หมายความว่าในขณะที่บอร์ดเชื่อมต่อกับ USB

ขั้นตอนที่ 4: อะแดปเตอร์ USB ST LINK V2

อะแดปเตอร์ USB ST LINK V2
อะแดปเตอร์ USB ST LINK V2
อะแดปเตอร์ USB ST LINK V2
อะแดปเตอร์ USB ST LINK V2
อะแดปเตอร์ USB ST LINK V2
อะแดปเตอร์ USB ST LINK V2
อะแดปเตอร์ USB ST LINK V2
อะแดปเตอร์ USB ST LINK V2

ST LINK V2 เป็นอะแดปเตอร์ USB เป็น SWD ออกแบบมาสำหรับงานดีบักและการเขียนโปรแกรม

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

มีบล็อกและไซต์มากมายพร้อมคำแนะนำในการโหลดโดยใช้อะแดปเตอร์ USB เป็น TTL แต่ฉันไม่พบเครื่องมือนี้เพื่อโหลดตัวโหลดการบูต

นอกจากนี้ยังอนุญาตให้โปรแกรม Blue Pill ด้วยบูตโหลดเดอร์ดั้งเดิมโดยใช้ซอฟต์แวร์ STM32Cube Programmer (บางทีฉันอาจจะสร้างคำแนะนำสำหรับสิ่งนี้ในอนาคต)

ในการติดตั้งไดรฟ์ Windows ให้ทำตามขั้นตอนนี้:

  1. แตกไฟล์ที่ดาวน์โหลดมา
  2. เรียกใช้ "stlink_winusb_install.bat ในฐานะผู้ดูแลระบบ
  3. กดปุ่มหลังจากเสร็จสิ้น
  4. เชื่อมต่อ ST-Link V2 กับคอมพิวเตอร์ USB ที่มีอยู่

ข้อควรจำ: การดำเนินการนี้จะติดตั้งอุปกรณ์ USB ไม่ใช่พอร์ตสื่อสาร

ขั้นตอนที่ 5: เวลาเริ่มทำงานจริง: กำลังโหลด STM32Duino Boot Loader

เวลาเริ่มงานจริง: กำลังโหลด STM32Duino Boot Loader
เวลาเริ่มงานจริง: กำลังโหลด STM32Duino Boot Loader
เวลาเริ่มงานจริง: กำลังโหลด STM32Duino Boot Loader
เวลาเริ่มงานจริง: กำลังโหลด STM32Duino Boot Loader

สิ่งแรก: เชื่อมต่อ ST-Link กับ Blue Pill สิ่งนี้ง่ายมาก เมื่อ ST pin out ถูกติดฉลากไว้บนเคส

ST-Link Blue Pill SWD Connector

pin2- SWDIO pin2- SWIO (หรือ IO ในบางบอร์ด)

pin3- GND pin4- GND

pin6- SWCLKpin3- SWCLK (หรือเพียงแค่ CLK)

ขา7- 3.3V ขา1- 3V3

หมุด ST-Link V2 มีฉลากชัดเจนเหนือตัว

เรียกใช้ซอฟต์แวร์ "STM32 ST-Link Utility" (คุณอาจติดตั้งไว้แล้วในคอมพิวเตอร์ของคุณ)

ทันทีที่ซอฟต์แวร์โหลด มันจะดึงข้อมูลทั้งหมดในหน่วยความจำ Boot0 หากไม่มี ให้คลิกที่ "เชื่อมต่อกับอุปกรณ์" ที่ปลั๊กไฟที่มีไอคอนรูปสลัก นอกจากนี้ยังจะดึงข้อมูลชิป STM32 จำนวนมากอีกด้วย

โหลดไฟล์ไบนารีนั้นง่ายมาก:

  1. ย้ายจัมเปอร์ "Boot0" ไปที่ตำแหน่ง "1"
  2. คลิกที่ "ไบนารี"
  3. เลือกไฟล์ Bootloader (.bin)
  4. ที่เมนู คลิกใน "เป้าหมาย" และ "โปรแกรม"

สิ่งนี้จะอนุญาตให้โหลด Boot0 ด้วย Bootloader ใหม่

  1. กลับจัมเปอร์ "Boot0" ไปที่ตำแหน่ง "0"
  2. กดปุ่มรีเซ็ต

ข้อควรระวัง: คุณไม่จำเป็นต้องย้ายจัมเปอร์ Boot0 ไปที่ตำแหน่ง "1" อีกต่อไปเพื่อโหลดโปรแกรมที่สร้างใน Arduino IDE

ขั้นตอนที่ 6: ถึงเวลาจัดการกับ Arduino IDE

ถึงเวลาจัดการกับ Arduino IDE
ถึงเวลาจัดการกับ Arduino IDE

คุณอาจสังเกตเห็นหลังจากโหลด "generic_boot20_pc13.bin" พอร์ต Blue Pill USB ของคุณจะถูกโปรแกรมจัดการอุปกรณ์ของคอมพิวเตอร์รู้จักเป็น "Maple Serial (COMx)"

เพื่อเตรียม Arduino IDE ให้คุณจัดการกับ STM32 ให้ทำตามขั้นตอนด้านล่าง:

ขั้นตอนที่ 7: ถึงเวลาจัดการกับ Arduino IDE

ถึงเวลาจัดการกับ Arduino IDE
ถึงเวลาจัดการกับ Arduino IDE
ถึงเวลาจัดการกับ Arduino IDE
ถึงเวลาจัดการกับ Arduino IDE
ถึงเวลาจัดการกับ Arduino IDE
ถึงเวลาจัดการกับ Arduino IDE

ตอนนี้ คุณอาจสังเกตเห็นว่าการเชื่อมต่อพอร์ต USB เข้ากับคอมพิวเตอร์ของคุณ จะถูกรู้จักเป็น "Maple Serial(COMx)"

ตอนนี้ มาเตรียม Arduino IDE สำหรับการเขียนโปรแกรม STM32 กัน เปิด Arduino IDE หากยังไม่ได้เปิด:

  1. ไปที่เมนูไฟล์และเลือก "การตั้งค่า" ซึ่งจะเปิดหน้าต่างการตั้งค่า
  2. คลิกที่ไอคอนสี่เหลี่ยมจัตุรัสคู่ใกล้กับกล่องข้อความ "Additional Boards Manager Url"
  3. ภายใน Text Box ให้คัดลอกและวางลิงก์ด้านล่าง อย่างละหนึ่งบรรทัด:https://dan.drown.org/stm32duino/package_STM32duino_index.jsonhttps://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.jsonYou will ต้องการบอร์ดทั้งสองชุดในลิงก์เหล่านั้น
  4. ไปที่เมนู "เครื่องมือ" แล้วเลือก "ผู้จัดการบอร์ด" ซึ่งจะเปิดหน้าต่าง "Board Manager"
  5. ตรวจสอบให้แน่ใจว่าได้เลือก "ทั้งหมด" ใน "ประเภท" และในกล่องข้อความประเภท "STM32F1"
  6. ติดตั้งทั้งสองตัวเลือกปรากฏขึ้น

ขั้นตอนที่ 8: "แกรนด์ฟินาเล่"

NS
NS

ตอนนี้คุณสามารถพิมพ์รหัสของคุณและคอมไพล์ได้

เชื่อมต่อ "Blue Pill" ของคุณและตั้งค่าคอนฟิกตามภาพ อย่าลืมเลือกพอร์ตที่ถูกต้อง

เท่านี้ก็พร้อมอัพโหลดโค้ดขึ้น "Blue Pill" แล้ว

ฉันหวังว่ามันจะช่วยคุณ!

แนะนำ: