STM8S keluarga
MK relatif terhadap STM8L / 32 memiliki persenjataan peripheral yang lebih kecil, tetapi memungkinkan Anda untuk dengan mudah memahami dasar-dasarnya dan mendapatkan keterampilan yang diperlukan untuk bekerja dengan saudara-saudaranya yang lebih tua.
0. Kepada siapa materiil berorientasi, mengapa dan mengapa
Saat menulis artikel ini, saya berasumsi bahwa pembaca dapat:
- Baca dengan seksama (yang jarang)
- Sedikit bekerja dengan literatur teknis berbahasa Inggris (baik, atau motivasi untuk belajar, karena bahasa pertama programmer adalah bahasa Inggris)
- Solder (setidaknya keterampilan minimal)
- Pemrograman dalam C (sekali lagi, tidak semuanya begitu rumit)
- Google (tanpanya di mana saja)
- Gunakan multimeter dan memiliki keterampilan dasar lainnya (seperti "jangan letakkan jari Anda di soket")
Saya mempertimbangkan tujuan artikel:
- Gambaran umum untuk dijalankan melalui semua tahap pengembangan sistem berdasarkan mikrokontroler
- Berikan catatan pengantar yang diperlukan untuk orang yang praktis tidak berdedikasi
- Jika memungkinkan, pembaca akan memiliki pemahaman tentang di mana, apa dan bagaimana menemukan
(Tidak signifikan)Kenapa dan mengapa?
Saya pikir masuk akal untuk membuat kursus pemrograman MK yang terperinci.
Saya akan menjadi kesempatan untuk mempelajari seluruh pinggiran secara lebih rinci dan sepanjang jalan akan membantu orang lain.
Saya tahu bahwa sudah ada banyak artikel dan bahkan kursus pelatihan, tetapi saya memiliki pendekatan yang sedikit berbeda. (Mungkin saya akan mendapatkan kritik yang memadai, berubah pikiran dan bergabung dengan MX Cube guys).
Sangat menyedihkan melihat bagaimana pengendali stm berubah menjadi Arduino.
Mengenai Arduino:
Ada 3 (diketahui oleh saya, MB, saya hanya belum tumbuh) pendekatan untuk pengembangan
perangkat lunak di MK:
- Pengembangan Assembler
- Pengembangan untuk model MK tertentu
- Pengembangan menggunakan HAL dan perpustakaan serupa
1) Saya adalah pendukung pendapat bahwa jika Anda membangun rumah, maka Anda tidak boleh membakar setiap bata tanah liat dengan tangan Anda sendiri, karena assembler menghilang (walaupun dimulai dengan ini). Kecepatan pengembangan terlalu rendah.
2) Perpustakaan HAL, dll. Bagi seorang pemula, terlalu banyak momen "tulis saja seperti ini" tidak jelas. Karena - juga di tempat sampah.
3) Saya menganggap proses pembuatan perangkat lunak untuk MK tertentu pilihan paling sehat untuk pemula; keterampilan yang diperoleh akan memungkinkan untuk berurusan dengan seri 8L dan 32 (meskipun menyakitkan untuk melakukannya sendiri sesuai dengan dokumentasi).
Anda mungkin memperhatikan bahwa arduino tidak muncul dalam daftar ini, karena arduino adalah platform
pendidikan dan tidak dimaksudkan untuk pengembangan perangkat ringkas berdasarkan basisnya. Tetapi pendekatan untuk pemrograman itu untuk beberapa alasan (saya tidak tahu) ditransfer dan menyebar di Internet. Dan bahkan digunakan dalam proyek komersial nyata. (menyatakan, “Saya mengunduh perpustakaan di forum, terhubung, berfungsi, saya tidak tahu cara kerjanya”).
Saya menyarankan, dari sudut pandang saya, pendekatan yang lebih bermakna secara akademis dan metodis.
1. Pilihan mikrokontroler
Saya memiliki beberapa STM8S105K6 dalam paket LQFP32, ini berasal dari keluarga ini, jadi saya memilihnya.
Anda dapat memilih MK apa pun dalam seri.
Ada papan Penemuan siap dari ST, Anda dapat membeli dari Cina atau memesan dari sumber lain. Ada papan siap pakai untuk STM8S103F3P6 dan sejenisnya dari Cina.
Namun, perlu dicatat bahwa papan yang sudah jadi dirancang untuk pelatihan.
Di situs web produsen
st.com , kami menemukan MK kami dan mengunduh dokumen untuknya:
Referensi manual: RM0016 - dokumen umum untuk semua keluarga MK STM8S dan STM8AF. Berikutnya adalah RM.
Datasheet: Saya punya dokumen DS5855 untuk STM8S105C4 / 6, STM8S105K4 / 6 dan STM8S105S4 / 6. Berikutnya adalah DS.
Dari hal-hal lezat yang dimilikinya (secara dangkal):
- Dukungan 16 MHz
- 32 KB Flash, 1 KB EEPROM, dan 2 KB RAM
- Daya 2.95-5.5V
- Pengatur waktu 8-bit dan 16-bit
- UART, SPI, I2C
- 10-bit ADC
- hingga 38 input / output terpisah
2. Peralatan yang dibutuhkan
Saya melihat dua opsi untuk bekerja dengan MK:
Merakit tata letak dari komponen individualBagus, keren, aku suka itu. Begitu banyak orang.
Dalam hal ini, MK akan membutuhkan apa yang disebut strapping. Rencananya sederhana:
- Kami mengambil papan tempat memotong roti, dalam kasus saya TQFP (32-64PIN) 0.8MM, solder MK untuk itu
- Kami mengambil sisir baris ganda solder PLS-2x40 ke lubang yang mengarah ke kesimpulan MK
- Kami mengambil papan tempat memotong roti cetakan (saya punya 9x15 cm) dan menyolder sandwich terakhir ke atasnya
- Kami melihat poin RM 7. Power supply, kita baca . Ada tertulis bahwa Anda memerlukan kapasitor yang menghubungkan pin VCAP dan catu daya 0V kami. Juga tertulis bahwa Anda perlu melihat lebih detail dalam DS ke MK tertentu di bagian karakteristik elektrik. Bagi saya, ini adalah pasal 10.3.1 dari kapasitor eksternal VCAP dengan mengacu pada Tabel 18 di mana nilai nominalnya adalah 470 - 3300 nF. Saya mengambil 1 mF (di sirkuit C3). (mengapa Anda membutuhkannya, saya harap Anda membacanya sendiri dalam RM)
- Ibid. Dalam DS dalam klausul 10.3.8. Atur ulang karakteristik pin, kami menemukan nilai kapasitor 0,1mF (pada sirkuit C4). Resistor R4 dengan nilai nominal 10 kOhm digunakan di papan debug dan berbagai catatan aplikasi, meskipun di dalam MK sudah ada resistor pull-up dengan nilai nominal 30 hingga 80 kOhm (jika Anda percaya DS yang sama). Secara paralel dengan kapasitor C4 kami menempatkan tombol reset kami. Pola reset seperti itu dapat dilihat, misalnya, dalam catatan Desighn DN0005.
- Juga, ST suka menambahkan kapasitor daya 100nF ke papan debug, dalam jumlah pin N yang terhubung ke daya +1. Diagram hanya menunjukkan potongan C1, C2 dan C5 3, dan saya tidak menyoldernya di papan, tetapi Anda mengerti artinya. Ini akan bekerja di atas meja tanpa mereka, tetapi dalam pengembangan komersial nyata lebih baik untuk mengurus masalah ini saat membiakkan papan perangkat.
- Penghapusan konektor pemrograman SWIM (Saya buat dari PLS-1x40)
Saya mendapat keajaiban seperti itu:

Membeli papan jadi (yang tidak menyelamatkan Anda dari bekerja dengan besi solder)Bagus, keren, aku suka itu. Begitu banyak orang.
Perlu dibiasakan dengan konfigurasi papan, jika itu adalah papan dari ST, maka langsung dengan programmer dan terhubung dengan kabel tipe B USB. Situs ST akan memiliki diagram pada halaman produk. Di papan tulis akan ada tombol, LED, tweeter, tombol kapasitif dan daya tarik lainnya yang dapat Anda mainkan.
Jika papan adalah bahasa Cina, maka sering papan tanpa programmer, Anda akan membutuhkan seorang programmer.
Silkscreens dari nama-nama kesimpulan lebih baik untuk tidak percaya dan periksa dibandingkan dengan DS.
Saya tidak mempertimbangkan bekerja dengan papan tempat kontak karena saya tidak menggunakannya.
Plus saya butuh programmer, saya punya ST2 Cina ST-Link. Mampu memprogram dan STM8 dan STM32.
3. Memilih IDE
Bagi saya, pertanyaan tentang pilihan belum relevan, saya bekerja di IAR untuk STM8, karena itu membuat proyek di mana saya saat ini bekerja, untuk alasan yang sama versi lama.
Kita masuk ke situs
iar.com , dalam pencarian kita ketikkan model MK kita.
Unduh IAR Embedded Workbench for STM8, pilih evaluasi terbatas ukuran saat memasang, dan tahan dengan batas kode 8 KB. Atau beli. Ada versi yang diretas pada sumber daya yang dilarang di wilayah Federasi Rusia, tetapi tidak cocok untuk proyek komersial.
Petunjuk instalasi ada di installer atau di Google.
Saya menggunakan versi 6.5.3.2581.
Instal lingkungan, bersama dengan itu driver untuk programmer.
4. Membuat proyek
Pergi ke IDE, pergi ke Project -> Buat proyek baru -> C ++
Klik OK, pilih direktori (lebih disukai tanpa Cyrillic dan spasi), pilih nama (tanpa spasi dan Cyrillic).
Kami pergi ke folder root IDE kami dan menemukan folder inc, bagi saya path:
C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.5\stm8\inc
Di antara file header iostm8 kami menemukan model MK kami, untuk saya:
iostm8s105k6.h
Kami menghubungkannya di awal dan menambahkan loop tak terbatas.
Dalam menu Project -> Options -> General Options di kolom Device pilih MK Anda.
Dalam Project -> Options -> Debugger di kolom Driver pilih ST-LINK.
Temukan tombol Unduh dan Debug pada bilah alat.
Pada kompilasi pertama, lingkungan akan meminta Anda untuk memilih nama file .eww. (Nama saya sama dengan proyek.)
Di bagian bawah jendela Debug Log harus ada pesan yang:
- Preprocessor untuk STM8 - preprocessor dimulai
- Debugger untuk STM8 - debugger dimulai
- Terhubung ke sistem STM8 SWIM Debugging - terhubung ke MK
- Debugee yang dimuat - Telah terjadi unduhan firmware
- Atur ulang target - telah terjadi reset
Kami berada dalam mode debug, tetapi program ini dijeda.
Di tempat yang sama pada bilah alat kami menemukan dan menekan tombol Go.
Kami meluncurkan MK dalam mode debug.
Klik Stop debugging, debugging stops, tetapi MK didukung oleh programmer dan kemudian menjalankan program, yaitu, ia memutar loop tanpa akhir dan tidak melakukan apa-apa.
Ringkasan
Hasilnya adalah gambaran singkat dan pengantar pemrograman seri STM8S dari MK tanpa pemrograman itu sendiri. Ternyata hanya dasar untuk bekerja, dari ini biasanya semuanya dimulai - dengan perakitan tata letak.
Saya tidak melihat intinya secara lebih rinci.
Dalam banyak artikel, setelah pengantar, secara harfiah setelah beberapa baris, LED berkedip, yang saya tidak mengerti.
Bagaimana pencapaian tujuan dapat dinilai dengan apakah pemula berhasil melakukan sesuatu sendiri, menggunakan informasi yang saya usulkan. (jendela indikator Debug log)
Terima kasih atas perhatian anda