STM32F103C8T6 kartı ile nasıl başlanır?


10

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:

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:

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:

Sonunda, kurulların gelmesini beklerken okuduğum Joseph Yiu tarafından "ARM Cortex-M3 için Kesin Kılavuz" da aldım.

Sorularım:

  1. 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?

  2. (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?

  3. 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)?

  4. 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ı?


2
Referans Kılavuzunun 324. sayfasında TIM1 ve TIM8 kullanılan enkoder arayüzünün detayları bulunmaktadır.
Leon Heller

1
Gömülü Sistemler önerebilir miyim - Dünya ARM-Cortex-M3'ü şekillendirebilir miyim , ama TI'den. Ayrıca ubuntu için Eclipse + GCC ARM + OpenOCD'yi yapılandırmayı başardım, oldukça sıkıcıydı ve en azından bana aşırı derecede güvenilir değildi.
Mahendra Gunawardena

1
ARM-gcc çözümleri genel olarak oldukça kararlıdır ve yaklaşık olarak en taşınabilir seçenektir. Vurgu, bir Makefile veya derleme otomasyonu tarafından sürülen yapılara daha fazla yönelik olma eğilimindedir, bu nedenle mevcut kurumsal yazılım geliştirme uygulamalarıyla entegrasyon mükemmeldir. IDE'nin (eğer varsa) deneysel yapıları düzenleyeceği ve sürdürebileceği, çok daha kişisel bir karar olma eğilimindedir ve bu da buna yönelik olarak çok fazla araç geliştirme çabası görmüyor. Şahsen, ele almak istediğim son şey, IDE'leri sadece onunla çalışmak için değiştireceğimi varsayan bir hedef / araç zinciri.
Chris Stratton

Yanıtlar:


6
  1. Veri sayfalarına gelince, bunlar gerçekten bölünürler. "Referans el kitabı", nasıl yapılacağına dair karmaşık açıklamalar, yapılandırma ve tüm MCU hakkında ayrıntılı değerlendirmelerdir. "Veri sayfası" ise MCU özellikleri, pinouts, paketleri vb. İle ilgili kısa bir açıklamadır. Ayrıca her STM32 hattı için çok yararlı bir belge vardır (F1,2 ... 7) "STM32F7xxxx MCU donanım geliştirmeye başlarken" eğer özel bir tahta tasarlamak istiyorsanız size birçok bilgi sağlar. AVR'lere kıyasla, kayıt açıklamaları bazen belirli bölümün ana tanımından biraz ayrı tutulur.

  2. STM32CubeMX bir kütüphane değil, sadece ST'den kullanışlı bir programdır, bu da pinouts'u, konfigürasyonlarını, sistem saatlerini vb. Ayarlamanızı ve sonunda bir kod ve tüm projeyi oluşturmanızı sağlar. Proje, Eclipse (STM32 için Sistem Çalışma Tezgahı) için özel olarak oluşturulabilir ve bu projeyi içeri aktarırsınız. Yeni kütüphane HAL ("donanım soyutlama katmanı") ve onu kullanmaya çalışın. Bu yeni bir şey ve bazen internette örnekler bulmak zordur, ancak öğrencilerinize eski teknolojileri öğretmeyin. HAL kullanımı uygundur ve belgelendirmesi vardır, bu yüzden daha iyi bir seçim olduğunu düşünüyorum.

  3. Hangi kütüphane? Her neyse, onları google için bir sorun olmamalı diye düşünüyorum.

  4. Sadece bir işletim sistemi (Windows gibi) kullanmak isteseniz bile, Eclipse (AC6 = STM32 için sistem tezgahı) - bence - en iyi seçenektir. Örneğin Keil'in uVision 5'i var - ama bu gerçekten korkunç bir IDE - IDE'nin sunması gereken özelliklerin çoğundan yoksun (refrakterleme, tıklama ve arama, uygun hata kontrolü, referans bulma ve çok daha fazlası). Sonuç olarak, Eclipse, STM32 için IDE için hemen hemen tek makul seçimdir.


3
Aslında, harici bir derleyiciyi çalıştırmak için hemen hemen her IDE'yi kullanabilirsiniz .
Chris Stratton
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.