วิธีเริ่มต้นด้วยบอร์ด STM32F103C8T6


10

ฉันใช้ไมโครคอนโทรลเลอร์ AVR 8 บิตเพื่อสร้างหุ่นยนต์ผู้ติดตามสายกับนักเรียนมาหลายปีแล้ว ตอนนี้ฉันต้องการที่จะก้าวขึ้นสู่ ARM Cortex-M3 เพราะฉันต้องการที่จะเพิ่มคุณสมบัติที่ใช้งาน CPU มากขึ้นเช่น odometry และฟิวชั่นเซ็นเซอร์

ข้อกำหนดคือ:

  • 8 อินพุตอะนาล็อก
  • เอาต์พุต 4 PWM
  • ฉัน2 C
  • 2 อินพุทการเข้ารหัสพื้นที่สี่เหลี่ยมจัตุรัส
  • อนุกรม I / O
  • การตั้งโปรแกรมด้วยตนเองแบบไร้สายโดยไม่ต้องเข้าถึงหุ่นยนต์
  • toolchain + IDE หลากหลายแพลตฟอร์ม (OS X, Linux, Windows)

ขั้นตอนที่ฉันทำไปคือ:

ฉันใช้บอร์ดรุ่น STM32F103C8 นี้ ฉันเชื่อว่า MCU นี้มีทุกสิ่งที่ฉันต้องการรวมถึง 2 x QEI ที่ฉันวางแผนที่จะใช้ในซอฟต์แวร์ แต่อันนี้เกิดขึ้นเพื่อให้มีในฮาร์ดแวร์ที่ดีมาก:

ฉันได้ติดตามสิ่งนี้เพื่อตั้งค่า toolchain + IDE ของฉัน:

ฉันพบว่าเอกสารสำหรับชิพนี้กระจัดกระจายในจำนวน PDF ที่ฉันดาวน์โหลด:

ฉันยังดาวน์โหลดไลบรารีอุปกรณ์ต่อพ่วงมาตรฐาน STM32F10x ด้วย แต่ในทางกลับกันฉันแนะนำให้ซื้อ STM32CubeF1 ที่ใหม่กว่าซึ่งฉันเชื่อว่าเป็นเพียงการเปลี่ยนชื่อทางการตลาดด้านบนดังนั้นฉันจึงได้:

ในที่สุดฉันก็ได้รับ "คู่มือการแตกหักของ ARM Cortex-M3" โดย Joseph Yiu ซึ่งฉันกำลังอ่านอยู่ขณะที่ฉันรอให้กระดานมาถึง

คำถามของฉันคือ:

  1. ฉันรู้สึกสับสนเล็กน้อยกับเอกสารที่จะพูดน้อยและฉันก็ไม่แน่ใจด้วยซ้ำว่าฉันได้รับทั้งหมด ตัวอย่างเช่นแผ่นข้อมูลและสถานะคู่มืออ้างอิงที่ชิปมี 3 ตัวจับเวลาที่มีความสามารถในการป้อนข้อมูลการเข้ารหัสพื้นที่สี่เหลี่ยมจัตุรัส แต่ฉันไม่สามารถหาเอกสารของทะเบียนที่ควบคุมตัวนับได้ทุกที่ใน PDF ข้างต้น ฉันกำลังคิดถึงอะไร

  2. ฉันควรใช้ไลบรารีอุปกรณ์ต่อพ่วงมาตรฐาน (เก่ากว่า) หรือใช้คิวบ์ (รุ่นใหม่กว่า) หรือไม่ ความแตกต่างคืออะไร? ฉันเข้าใจว่าห้องสมุดทั้งสองช่วยให้ฉันจัดการกับการลงทะเบียนโดยตรงและเป็นวิธีที่แนะนำให้ไป ฉันถูกไหม?

  3. เอกสารสำหรับห้องสมุดอยู่ที่ไหน (นอกเหนือจากความคิดเห็น doxygen ที่ฝังอยู่ซึ่งดีและทั้งหมด แต่ฉันควรมี html / pdf ที่ค้นหาได้)

  4. ฉันเลือก Eclipse + GCC ARM + OpenOCD เป็น toolchain ของฉันเพราะฉันคิดว่านี่เป็นตัวเลือกเดียวที่จะทำงานบนระบบปฏิบัติการหลัก 3 ระบบโดยไม่มีขนาดรหัสหรือข้อ จำกัด อื่น ๆ มีตัวเลือกอื่นอีกไหม?


2
หน้า 324 ของคู่มืออ้างอิงมีรายละเอียดของอินเทอร์เฟซของตัวเข้ารหัสโดยใช้ TIM1 และ TIM8
Leon Heller

1
ฉันขอแนะนำระบบสมองกลฝังตัว - รูปร่าง World ARM-Cortex-M3 แต่มาจาก TI นอกจากนี้ฉันยังสามารถกำหนดค่า Eclipse + GCC ARM + OpenOCD สำหรับ Ubuntu ได้ค่อนข้างน่าเบื่อและไม่น่าเชื่อถือมากเกินไปอย่างน้อยฉัน
Mahendra Gunawardena

1
โดยทั่วไปแล้วโซลูชั่น ARM-gcc นั้นค่อนข้างเสถียรและเป็นทางเลือกที่พกพาได้มากที่สุด เน้นมีแนวโน้มที่จะมุ่งเน้นไปที่การสร้างขับเคลื่อนโดย Makefile หรือสร้างระบบอัตโนมัติดังนั้นการรวมเข้ากับการพัฒนาซอฟต์แวร์ขององค์กรที่มีอยู่นั้นยอดเยี่ยม IDE ใด (ถ้ามี) ที่จะแก้ไขและผลักดันงานสร้างเชิงทดลองที่มีแนวโน้มที่จะเป็นการตัดสินใจส่วนบุคคลที่มากขึ้นและที่ไม่จำเป็นต้องเห็นความพยายามในการพัฒนาเครื่องมือมากนัก โดยส่วนตัวสิ่งสุดท้ายที่ฉันต้องจัดการคือเป้าหมาย / toolchain ซึ่งถือว่าฉันจะเปลี่ยน IDEs เพียงเพื่อทำงานกับมัน
Chris Stratton

คำตอบ:


6
  1. ตามที่กล่าวถึงเอกสารข้อมูลพวกเขาจะถูกแบ่งแน่นอน "คู่มืออ้างอิง" เป็นคำอธิบายที่ซับซ้อนเกี่ยวกับวิธีการทำสิ่งต่าง ๆ การกำหนดค่าและการพิจารณาอย่างละเอียดเกี่ยวกับ MCU ทั้งหมด "แผ่นข้อมูล" เป็นเพียงคำอธิบายสั้น ๆ เกี่ยวกับคุณสมบัติของ MCU, pinouts, แพคเกจ ฯลฯ นอกจากนี้ยังมีเอกสารที่เป็นประโยชน์มากสำหรับทุก ๆ บรรทัด STM32 (F1,2 ... 7) "เริ่มต้นกับการพัฒนาฮาร์ดแวร์ STM32F7xxxx MCU" ซึ่ง ให้ข้อมูลกับคุณหลายกรณีหากคุณต้องการออกแบบบอร์ดแบบกำหนดเอง ในการเปรียบเทียบกับ AVRs คำอธิบายการลงทะเบียนบางครั้งอาจถูกวางนอกเหนือจากคำอธิบายหลักของบทใดบทหนึ่ง

  2. STM32CubeMX ไม่ใช่ไลบรารีเพียงโปรแกรมที่มีประโยชน์จาก ST ซึ่งช่วยให้คุณตั้งค่าพินการกำหนดค่าการตั้งค่านาฬิการะบบ ฯลฯ จากนั้นในตอนท้ายสร้างโค้ดและโครงการทั้งหมด สามารถสร้างโครงการพิเศษสำหรับ Eclipse (System Workbench สำหรับ STM32) ที่คุณเพิ่งนำเข้าโครงการนี้และคุณพร้อมที่จะไป ไลบรารีใหม่คือ HAL ("เลเยอร์ abstraction ฮาร์ดแวร์") และลองใช้มัน นั่นคือสิ่งใหม่และบางครั้งก็ยากที่จะหาตัวอย่างบนอินเทอร์เน็ต แต่ไม่ได้สอนนักเรียนของคุณเกี่ยวกับเทคโนโลยีที่ล้าสมัย HAL สะดวกในการใช้และมีเอกสารประกอบดังนั้นฉันคิดว่ามันเป็นตัวเลือกที่ดีกว่า

  3. ห้องสมุดไหน อย่างไรก็ตามมันก็ไม่น่าจะมีปัญหากับ google พวกเขาฉันคิดว่า

  4. แม้ว่าคุณจะต้องการใช้ระบบปฏิบัติการเดียวเท่านั้น (เช่น Windows) Eclipse (AC6 = System workbench สำหรับ STM32) คือ - ฉันคิดว่า - ตัวเลือกที่ดีที่สุด ตัวอย่างเช่น uVision 5 ของ Keil - แต่นั่นเป็น IDE ที่น่ากลัวจริงๆ - มันไม่มีคุณสมบัติส่วนใหญ่ที่ IDE ควรเสนอ (การหักเหคลิกและค้นหาการตรวจสอบข้อผิดพลาดที่เหมาะสมค้นหาการอ้างอิงและอื่น ๆ อีกมากมาย) ดังนั้นโดยรวมแล้ว Eclipse ค่อนข้างเป็นทางเลือกที่สมเหตุสมผลสำหรับ IDE สำหรับ STM32


3
ที่จริงแล้วคุณสามารถใช้IDE ใดก็ได้ที่สามารถสร้างไดรฟ์คอมไพเลอร์ภายนอกได้
Chris Stratton
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.