ฉันใช้ไมโครคอนโทรลเลอร์ 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 ที่ฉันวางแผนที่จะใช้ในซอฟต์แวร์ แต่อันนี้เกิดขึ้นเพื่อให้มีในฮาร์ดแวร์ที่ดีมาก:
- คณะhttp://eud.dx.com/product/high-quality-cortex-m3-stm32-stm32f103c8t6-development-board-w-swd-interface-844380789
- โปรแกรมเมอร์http://eud.dx.com/product/st-link-v2-programmer-emulator-mini-stlink-downloader-for-stm8-stm32-mcu-development-board-844380733
ฉันได้ติดตามสิ่งนี้เพื่อตั้งค่า toolchain + IDE ของฉัน:
ฉันพบว่าเอกสารสำหรับชิพนี้กระจัดกระจายในจำนวน PDF ที่ฉันดาวน์โหลด:
- แผ่นข้อมูล STM32F103x8 http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datsheet/CD00161566.pdf
- คู่มืออ้างอิงhttp://www.st.com/st-web-ui/static/active/en/resource/technical/document/reference_manual/CD00171190.pdf
- เอกสารอื่น ๆ อีกสองสามอย่างเช่น AN2606 (โหมดการบูตหน่วยความจำ), PM0075 (คู่มือการเขียนโปรแกรมแฟลช) และ AN3155 (โปรโตคอล bootloader แบบอนุกรม) ซึ่งฉันอาจต้องใช้ในอนาคต
ฉันยังดาวน์โหลดไลบรารีอุปกรณ์ต่อพ่วงมาตรฐาน STM32F10x ด้วย แต่ในทางกลับกันฉันแนะนำให้ซื้อ STM32CubeF1 ที่ใหม่กว่าซึ่งฉันเชื่อว่าเป็นเพียงการเปลี่ยนชื่อทางการตลาดด้านบนดังนั้นฉันจึงได้:
- http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/LN1939/PF257890
- http://www.st.com/web/en/catalog/tools/PF260820
ในที่สุดฉันก็ได้รับ "คู่มือการแตกหักของ ARM Cortex-M3" โดย Joseph Yiu ซึ่งฉันกำลังอ่านอยู่ขณะที่ฉันรอให้กระดานมาถึง
คำถามของฉันคือ:
ฉันรู้สึกสับสนเล็กน้อยกับเอกสารที่จะพูดน้อยและฉันก็ไม่แน่ใจด้วยซ้ำว่าฉันได้รับทั้งหมด ตัวอย่างเช่นแผ่นข้อมูลและสถานะคู่มืออ้างอิงที่ชิปมี 3 ตัวจับเวลาที่มีความสามารถในการป้อนข้อมูลการเข้ารหัสพื้นที่สี่เหลี่ยมจัตุรัส แต่ฉันไม่สามารถหาเอกสารของทะเบียนที่ควบคุมตัวนับได้ทุกที่ใน PDF ข้างต้น ฉันกำลังคิดถึงอะไร
ฉันควรใช้ไลบรารีอุปกรณ์ต่อพ่วงมาตรฐาน (เก่ากว่า) หรือใช้คิวบ์ (รุ่นใหม่กว่า) หรือไม่ ความแตกต่างคืออะไร? ฉันเข้าใจว่าห้องสมุดทั้งสองช่วยให้ฉันจัดการกับการลงทะเบียนโดยตรงและเป็นวิธีที่แนะนำให้ไป ฉันถูกไหม?
เอกสารสำหรับห้องสมุดอยู่ที่ไหน (นอกเหนือจากความคิดเห็น doxygen ที่ฝังอยู่ซึ่งดีและทั้งหมด แต่ฉันควรมี html / pdf ที่ค้นหาได้)
ฉันเลือก Eclipse + GCC ARM + OpenOCD เป็น toolchain ของฉันเพราะฉันคิดว่านี่เป็นตัวเลือกเดียวที่จะทำงานบนระบบปฏิบัติการหลัก 3 ระบบโดยไม่มีขนาดรหัสหรือข้อ จำกัด อื่น ๆ มีตัวเลือกอื่นอีกไหม?