Saya telah menggunakan MCU AVR 8-bit untuk membangun robot pengikut garis dengan siswa selama beberapa tahun sekarang. Sekarang saya ingin meningkatkan ARM Cortex-M3 karena saya ingin menambahkan beberapa fitur intensif CPU seperti odometry dan sensor fusion.
Persyaratannya adalah:
- 8 input analog,
- 4 output PWM,
- I 2 C,
- 2 input encoder quadrature,
- I / O seri,
- Pemrograman mandiri secara nirkabel tanpa akses fisik ke robot.
- Multiplatform toolchain + IDE (OS X, Linux, Windows).
Langkah-langkah yang saya ambil sejauh ini adalah:
Saya menggunakan papan berbasis STM32F103C8 ini. Saya percaya MCU ini memiliki semua yang saya butuhkan, termasuk 2 x QEI yang saya rencanakan untuk diimplementasikan dalam perangkat lunak tetapi yang ini kebetulan ada di perangkat keras, begitu hebat:
- Board http://eud.dx.com/product/high-quality-cortex-m3-stm32-stm32f103c8t6-development-board-w-swd-interface-844380789
- Programmer http://eud.dx.com/product/st-link-v2-programmer-emulator-mini-stlink-downloader-for-stm8-stm32-mcu-development-board-844380733
Saya telah mengikuti ini untuk mengatur toolchain + IDE saya:
Saya telah menemukan bahwa dokumentasi untuk chip ini tersebar di antara sejumlah PDF, yang saya unduh:
- STM32F103x8 datasheet http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00161566.pdf
- Referensi Manual http://www.st.com/st-web-ui/static/active/en/resource/technical/document/reference_manual/CD00171190.pdf
- Beberapa dokumen lain seperti AN2606 (mode boot memori), PM0075 (manual pemrograman flash) dan AN3155 (protokol bootloader serial), yang mungkin saya perlukan di masa depan.
Saya juga mengunduh pustaka periferal standar STM32F10x, tetapi pada gilirannya merekomendasikan saya untuk mendapatkan STM32CubeF1 yang lebih baru, yang saya percaya hanya nama pemasaran di atas, jadi saya mendapatkan keduanya:
- http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/LN1939/PF257890
- http://www.st.com/web/en/catalog/tools/PF260820
Akhirnya, saya juga mendapat "Panduan Definitif untuk ARM Cortex-M3" oleh Joseph Yiu, yang saya baca saat saya menunggu papan datang.
Pertanyaan saya adalah:
Saya sedikit kewalahan dengan dokumentasi, untuk sedikitnya, dan saya bahkan tidak yakin saya mendapatkan semuanya. Sebagai contoh, datasheet dan manual referensi menyatakan bahwa chip memiliki 3 timer yang mampu mengkodekan input quadrature. Tapi, saya tidak dapat menemukan dokumentasi register yang mengontrol timer di mana saja di PDF di atas. Apa yang saya lewatkan?
Haruskah saya menggunakan Perpustakaan Peripheral Standar (yang lebih lama?), Atau kubus (yang lebih baru?)? Apa bedanya? Saya mengerti bahwa kedua perpustakaan menyelamatkan saya dari memanipulasi register secara langsung dan merupakan cara yang disarankan untuk dilakukan. Apakah saya benar?
Di mana dokumentasi untuk perpustakaan (di samping komentar doxygen tertanam, yang bagus dan semuanya tetapi saya lebih suka memiliki html / pdf yang dapat dicari)?
Saya memilih Eclipse + GCC ARM + OpenOCD sebagai toolchain saya karena saya menganggap ini adalah satu-satunya pilihan yang akan berjalan pada 3 OS utama tanpa ukuran kode atau batasan lainnya. Apakah ada opsi lain?