Birkaç yıldır öğrencilerle çizgi takip robotları oluşturmak için 8 bit AVR MCU'ları kullanıyorum. Şimdi bir ARM Cortex-M3'e geçmek istiyorum, çünkü kilometre sayacı ve sensör füzyonu gibi CPU yoğunluklu bazı özellikler eklemek istiyorum.
Gereksinimler:
- 8 analog giriş,
- 4 PWM çıkışı,
- I 2 C,
- 2 adet dörtlü kodlayıcı girişi,
- seri I / O,
- Robota fiziksel erişim olmadan kablosuz olarak kendi kendine programlama.
- Çok platformlu araç zinciri + IDE (OS X, Linux, Windows).
Şimdiye kadar attığım adımlar:
Bu STM32F103C8 tabanlı kartı kullanıyorum. Bu MCU'nun, yazılımda uygulamayı planladığım 2 x QEI dahil olmak üzere ihtiyacım olan her şeye sahip olduğuna inanıyorum, ancak bu, donanımda olması çok güzel:
- Yönetim Kurulu http://eud.dx.com/product/high-quality-cortex-m3-stm32-stm32f103c8t6-development-board-w-swd-interface-844380789
- Programcı http://eud.dx.com/product/st-link-v2-programmer-emulator-mini-stlink-downloader-for-stm8-stm32-mcu-development-board-844380733
Toolchain + IDE'mi ayarlamak için bunu izledim:
Bu çip için belgelerin indirdiğim bir dizi PDF arasında dağıldığını gördüm:
- STM32F103x8 veri sayfası http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00161566.pdf
- Başvuru Kılavuzu http://www.st.com/st-web-ui/static/active/en/resource/technical/document/reference_manual/CD00171190.pdf
- AN2606 (bellek önyükleme modları), PM0075 (flaş programlama kılavuzu) ve AN3155 (seri önyükleme protokolü) gibi gelecekte de ihtiyaç duyacağım diğer birkaç belge.
Ayrıca STM32F10x standart çevre kitaplığını da indirdim, ancak sırayla daha yeni olan STM32CubeF1'i almamı tavsiye ettim, ki bu sadece yukarıdakilerin bir pazarlama yeniden adlandırma olduğuna inanıyorum, bu yüzden ikisini de aldım:
- http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/LN1939/PF257890
- http://www.st.com/web/en/catalog/tools/PF260820
Sonunda, kurulların gelmesini beklerken okuduğum Joseph Yiu tarafından "ARM Cortex-M3 için Kesin Kılavuz" da aldım.
Sorularım:
En azından söylemek gerekirse, belgelere göre biraz bunalmışım ve hepsini aldığımdan bile emin değilim. Örneğin, veri sayfası ve referans el kitabı çipin kodlanmış girişleri dördün yapabilen 3 zamanlayıcıya sahip olduğunu belirtir. Ancak, zamanlayıcıları yukarıdaki PDF'lerde herhangi bir yerde kontrol eden kayıtların belgelerini bulamıyorum. Neyi kaçırıyorum?
(Daha eski?) Standart Çevre Kütüphanesini mi yoksa (daha yeni?) Küpünü mü kullanmalıyım? Fark ne? Her iki kütüphanenin de kayıtları doğrudan değiştirmekten kurtardığını ve önerilen yol olduğunu anlıyorum. Haklı mıyım?
Kütüphaneler için dokümantasyon nerede (güzel ve hepsi gömülü doxygen yorumlarının yanı sıra aranabilir bir html / pdf istiyorum)?
Eclipse + GCC ARM + OpenOCD'yi araç zincirim olarak seçtim çünkü bunun kod boyutu veya diğer sınırlamalar olmadan 3 ana işletim sisteminde çalışacak tek seçenek olduğunu düşünüyorum. Başka seçenek var mı?