Pengembangan papan debug untuk K1986BE1QI (penerbangan)

Pengembangan papan debug untuk K1986BE1QI (penerbangan)

Beberapa tahun yang lalu saya berkenalan dengan mikrokontroler Rusia dari Milandr. Saat itu tahun 2013, ketika para insinyur dengan penuh semangat mendiskusikan hasil pertama dari Program Target Federal "Pengembangan basis komponen elektronik dan elektronik radio" untuk 2008-2015. Saat itu, pengontrol K1986BE9x (inti Cortex-M3) sudah dirilis, dan pengontrol 1986BE1T (inti Cortex-M1) baru saja muncul. Dia, dalam wadah plastik LQFP-144, memiliki penunjukan K1986BE1QI (penerbangan) dalam dokumentasinya, dan penunjukan MDR32F1QI pada chip itu sendiri. Di situs web pabrikan, ia memiliki akhiran "udara", karena memiliki antarmuka khusus untuk industri pesawat terbang (ARINC 429, MIL_STD_1553).

Anehnya, pada saat pendistribusian pengontrol ini, perusahaan Milander menyiapkan kit debug dan perpustakaan subrutin untuk bekerja dengan periferal, "tetapi tanpa jaminan dan kewajiban tambahan terkait kebenaran perpustakaan." Perpustakaannya mirip dengan Perpustakaan Periferal Standar dari STMicroelectronics. Secara umum, semua pengontrol ARM yang dibangun di atas inti Cortex-M memiliki banyak kesamaan. Karena alasan ini, kenalan dengan pengontrol Rusia yang baru berjalan dengan cepat. Dan bagi mereka yang membeli kit debug bermerek, dukungan teknis diberikan selama penggunaan.

Pengembangan papan debug untuk K1986BE1QI (penerbangan)
Kit debug untuk mikrokontroler 1986BE1T, Β© Milandr

Namun, seiring waktu, "penyakit masa kanak-kanak" dari chip dan perpustakaan baru mulai muncul. Contoh pengujian firmware berfungsi tanpa masalah yang terlihat, tetapi dengan modifikasi yang signifikan, crash dan kesalahan menghujani. "Menelan" pertama dalam praktik saya adalah kegagalan yang tidak dapat dijelaskan pada pengontrol CAN. Setahun kemudian, masalah dengan modul ditemukan pada pengontrol 1986BE1T (udara) dari revisi awal MCIO (saluran pertukaran informasi multipleks). Secara umum, semua revisi mikrokontroler ini hingga 2016 terbatas penggunaannya. Banyak waktu dan kegelisahan yang dihabiskan untuk mengidentifikasi masalah-masalah ini, yang konfirmasinya sekarang dapat ditemukan di daftar kesalahan (Errata).

Fitur yang tidak menyenangkan adalah perlu bekerja dan mengatasi kesalahan bukan pada papan debug, tetapi pada papan perangkat prototipe yang direncanakan untuk produksi pabrik serial. Selain konektor JTAG, biasanya tidak ada apa-apa di sana. Sulit dan tidak nyaman untuk terhubung dengan penganalisa logika, dan biasanya tidak ada LED dan layar. Untuk alasan ini, ide membuat papan debug saya sendiri muncul di kepala saya.

Di satu sisi, ada kit debug bermerek di pasaran, serta papan bagus dari LDM-Systems dari Zelenograd. Di sisi lain, harga untuk produk ini membuat seseorang menjadi pingsan, dan fungsionalitas dasar tanpa kartu ekspansi tidak memenuhi harapan. Papan dengan pengontrol yang disolder dan tajuk pin tidak menarik bagi saya. Dan papan yang lebih menarik harganya mahal.

Pengembangan papan debug untuk K1986BE1QI (penerbangan)
Papan pengembangan MILANDR LDM-HELPER-K1986BE1QI-FULL, Β© LDM Systems

Perusahaan "Milandr" memiliki kebijakan penetapan harga dan pemasaran yang unik. Jadi, Anda bisa mendapatkan sampel beberapa sirkuit mikro secara gratis, tetapi ini hanya tersedia untuk badan hukum dan dikaitkan dengan pencarian birokrasi. Secara umum, sirkuit mikro dalam kemasan keramik-logam berwarna emas dalam arti harfiah dan kiasan. Misalnya, biaya pengontrol 1986BE1T di Moskow dari 14 hingga 24 ribu rubel. Chip memori statis 1645RU6U harganya mulai 15000 rubel. Dan ini urutan harga semua produk. Akibatnya, bahkan lembaga penelitian khusus dengan pesanan negara menghemat uang dan menghindari harga tersebut. Keripik dalam wadah plastik untuk penggunaan sipil jauh lebih murah, tetapi tidak tersedia dari pemasok populer. Selain itu, kualitas keripik dalam wadah plastik, menurut saya, lebih buruk daripada "emas". Misalnya, saya tidak dapat menjalankan pengontrol K1986BE1QI pada 128MHz tanpa meningkatkan pengaturan latensi flash. Pada saat yang sama, suhu pengontrol ini naik menjadi 40-50C. Tetapi pengontrol 1986BE1T ("emas") memulai pada 128 MHz tanpa pengaturan tambahan dan tetap dingin. Dia sangat baik.

Pengembangan papan debug untuk K1986BE1QI (penerbangan)
Mikrokontroler "Emas" 1986BE1T, (c) Milandr

Saya beruntung mikrokontroler dalam wadah plastik masih dapat dibeli secara eceran dari LDM Systems, dan semua papan sirkuit tersedia secara gratis. Hal buruknya adalah di situs pada foto pengontrol, terlihat tanda yang menyatakan bahwa ini adalah revisi ke-4 tahun 2014, yaitu. dengan cacat. Saya berpikir lama - untuk membeli atau tidak membeli. Jadi beberapa tahun berlalu ...

Ide membuat papan debug belum hilang kemana-mana. Lambat laun, saya membentuk semua persyaratan dan memikirkan bagaimana menempatkan semua ini di satu papan, agar kompak dan tidak mahal. Secara paralel, saya memesan komponen yang hilang dari China. Saya tidak terburu-buru - saya melakukan segalanya untuk diri saya sendiri. Pemasok Cina terkenal karena kecerobohannya - saya harus memesan barang yang sama di tempat berbeda untuk mendapatkan semua yang saya butuhkan. Selain itu, beberapa chip memori ternyata bekas - jelas disolder dari perangkat yang rusak. Ini memukul saya kemudian.

Membeli mikrokontroler Milandr K1986BE1QI (penerbangan) bukanlah tugas yang mudah. Di toko Chip and Dip yang sama, di bagian "Posisi untuk dipesan", saya hanya menemukan K1986BE92QI seharga 740 rubel, tetapi tidak cocok untuk saya. Satu-satunya pilihan adalah membeli revisi non-segar dari LDM-Systems seharga 2000 rubel. Karena saya tidak dapat menemukan penggantinya di tempat lain, saya memutuskan untuk membeli apa adanya. Yang mengejutkan saya, mereka menjual pengontrol rilis Desember 2018 yang baru, revisi 6+ (1820). Dan situs tersebut masih memiliki foto lama, dan pada saat penulisan pengontrol tidak tersedia ...

Pengembangan papan debug untuk K1986BE1QI (penerbangan)
Mikrokontroler K1986BE1QI (penerbangan) dalam kemasan teknologi, (c) Foto oleh penulis

Spesifikasi teknis utama papan pengembangan saya MDB1986 berikut ini:

  • debugger-programmer bawaan yang kompatibel dengan J-Link dan CMSIS-DAP;
  • Memori statis 4Mbit (256k x 16, 10 ns);
  • chip memori flash 64Mbit, Winbond 25Q64FVSIG;
  • Transceiver antarmuka RS-232 dengan jalur RTS dan CTS;
  • antarmuka dan konektor untuk Ethernet, USB, CAN;
  • Pengontrol tampilan 7-segmen MAX7221;
  • konektor pin untuk bekerja dengan MCIO (MIL_STD_1553) dan ARINC429;
  • fototransistor Everlight PT17-21C;
  • lima LED berwarna, tombol reset dan dua tombol pengguna;
  • ini ditenagai oleh port USB 5 volt;
  • dimensi papan sirkuit tercetak 100 x 80, mm

Saya menyukai papan seri STM-Discovery karena mereka memiliki programmer-debugger bawaan - ST-Link. ST-Link Bermerek hanya berfungsi dengan pengontrol STMicroelectronics, tetapi beberapa tahun yang lalu dimungkinkan untuk memperbarui firmware di ST-Link dan mendapatkan Debugger SEGGER J-Link OB (on-board). Secara hukum, ada batasan untuk menggunakan debugger seperti itu hanya dengan papan STMicroelectronics, tetapi sebenarnya potensinya tidak terbatas. Jadi, memiliki J-Link OB, Anda dapat memiliki programmer-debugger bawaan di papan debug. Saya perhatikan bahwa produk LDM-Systems menggunakan konverter CP2102 (Usb2Uart), yang hanya dapat mem-flash.

Pengembangan papan debug untuk K1986BE1QI (penerbangan)
mikrokontroler STM32F103C8T6, nyata dan tidak nyata, (c) Foto oleh penulis

Jadi, perlu membeli STM32F103C8T6 asli, karena firmware bermerek tidak akan berfungsi dengan benar dengan klon. Saya meragukan tesis ini dan memutuskan untuk mencoba pengontrol CS32F103C8T6 dari perusahaan Cina CKS. Saya tidak memiliki keluhan tentang pengontrol itu sendiri, tetapi firmware ST-Link yang dipatenkan tidak berfungsi di dalamnya. J-Link berfungsi sebagian - perangkat USB terdeteksi, tetapi pemrogram tidak menjalankan fungsinya dan terus-menerus mengingatkan bahwa itu "cacat".

Pengembangan papan debug untuk K1986BE1QI (penerbangan)
Kesalahan saat menjalankan debugger pada pengontrol non-asli

Saya tidak tenang dalam hal ini dan pertama kali menulis firmware untuk berkedip LED, dan kemudian menerapkan permintaan IDCODE menggunakan protokol JTAG. Pemrogram ST-Link yang saya miliki di papan Discovery dan program Utilitas ST-Link mem-flash CS32F103C8T6 tanpa masalah, sebagai hasilnya, saya memastikan bahwa papan saya berfungsi. Yang membuat saya senang, pengontrol target K1986BE1QI (penerbangan) dengan senang hati mengeluarkan IDCODE-nya melalui jalur TDO.

Pengembangan papan debug untuk K1986BE1QI (penerbangan)
Oscillogram dari garis sinyal TDO dengan respons yang disandikan IDCODE, (c) Foto oleh penulis

Pengembangan papan debug untuk K1986BE1QI (penerbangan)
Jadi port SWD berguna untuk men-debug debugger itu sendiri dan memeriksa IDCODE

Ada opsi dengan debugger CMSIS-DAP (Port Akses Debug). Membangun proyek dari sumber ARM bukanlah tugas yang mudah, saya mengambil proyek tersebut dari X893, lalu saya juga mencoba DAP42. Sayangnya, Keil uVision macet dan tidak mau bekerja dengan mereka. Akibatnya, saya mengganti chip debugger dengan STM32F103C8T6 berpemilik dan tidak pernah kembali ke masalah ini.

Pengembangan papan debug untuk K1986BE1QI (penerbangan)
Pengoperasian yang sukses dari debugger bawaan J-Link STLink V2

Ketika semua komponen kunci dari papan debug masa depan tersedia, saya masuk ke Eagle CAD dan menemukan bahwa mereka tidak ada di perpustakaan elemen. Tidak ada tempat tujuan - saya harus menggambarnya sendiri. Pada saat yang sama, saya membuat kursi untuk memori, konektor HanRun untuk Ethernet, dan menambahkan bingkai untuk resistor dan kapasitor. File proyek dan pustaka komponen dapat ditemukan Saya memilikinya di GitHub.

Diagram skema papan debug MDB1986Pengembangan papan debug untuk K1986BE1QI (penerbangan)

Papan ini ditenagai oleh sumber DC 5 volt dari port USB. Ada dua port USB Tipe-B di papan tulis. Satu untuk programmer, yang kedua untuk pengontrol K1986BE1QI. Dewan dapat bekerja dari salah satu sumber ini atau keduanya sekaligus. Penyesuaian beban paling sederhana dan perlindungan saluran listrik diimplementasikan pada dioda Schottky, di sirkuit D2 dan D3 (SS24). Juga pada diagram Anda dapat melihat sekering yang memulihkan sendiri F1 dan F2 pada 500mA. Garis sinyal port USB dilindungi oleh rakitan dioda USBLC6-2SC6.

Sirkuit debugger-programmer ST-Link diketahui banyak orang, dapat ditemukan dalam dokumentasi untuk papan STM32-Discovery dan sumber lainnya. Untuk firmware utama klon ST-Link / J-Link-OB / DAP (opsional), saya mengeluarkan jalur SWDIO (PA13), SWCLK (PA14), GND. Banyak yang menggunakan UART untuk firmware dan terpaksa menarik jumper BOOT. Tapi SWD lebih nyaman bagi saya, selain itu protokol ini memungkinkan debugging.

Hampir semua komponen papan ditenagai oleh 3.3 volt, yang berasal dari pengatur tegangan AMS1117-3.3. Untuk menekan interferensi elektromagnetik dan lonjakan arus, filter LC dari kapasitor dan choke seri BLM31PG digunakan.

Secara terpisah, perlu disebutkan driver tampilan 7-segmen MAX7221. Menurut spesifikasi, catu daya yang disarankan adalah dari 4 hingga 5.5 volt, dan level sinyal tinggi (logika) setidaknya 3.5V (0.7 x VCC), saat ditenagai oleh 5V. Untuk pengontrol K1986BE1QI (penerbangan), keluaran unit logis sesuai dengan tegangan dari 2.8 hingga 3.3V. Jelas, ada ketidaksesuaian pada level sinyal yang dapat mengganggu operasi normal. Saya memutuskan untuk menyalakan MAX7221 dari 4V dan menurunkan level sinyal menjadi 2.8V (0.7 x 4 = 2.8). Untuk melakukan ini, dioda D4 (RS1A atau FR103) dipasang secara seri di rangkaian daya driver. Penurunan tegangan total adalah 0.9V (dioda Schottky 0.3V dan dioda 0.6V), dan semuanya berfungsi.

Sebagian besar port pada mikrokontroler K1986BE1QI (penerbangan) kompatibel dengan sinyal hingga 5V. Oleh karena itu, penggunaan transceiver CAN MCP2551 yang juga beroperasi dari 5V tidak menimbulkan masalah. Diagram menunjukkan chip MAX232 sebagai transceiver RS-3232, tetapi sebenarnya saya menggunakan SN65C3232D dari Texas Instruments, karena ini bekerja dari 3.3V dan memberikan kecepatan hingga 1Mbit/s.

Ada 4 resonator kuarsa di papan - satu untuk debugger (8 MHz) dan tiga untuk mikrokontroler target K1986BE1QI (penerbangan) dengan nilai nominal 32.768 kHz, 16 MHz, 25 MHz. Ini adalah komponen yang diperlukan, karena. parameter generator RC bawaan berada dalam kisaran luas dari 6 hingga 10 MHz. Frekuensi 25 MHz diperlukan untuk pengoperasian pengontrol Ethernet bawaan. Untuk beberapa alasan, situs web Milandra (mungkin secara tidak sengaja) menyatakan bahwa tidak ada Ethernet di dalam wadah plastik. Tapi kami akan mengandalkan spesifikasi dan fakta.

Insentif penting untuk membuat papan debug Anda sendiri adalah kesempatan untuk bekerja dengan bus sistem EBC (pengontrol bus eksternal), yang pada dasarnya adalah port paralel. Mikrokontroler K1986BE1QI (penerbangan) memungkinkan Anda terhubung dan bekerja dengan chip memori eksternal dan perangkat periferal, seperti ADC, FPGA, dll. Kemungkinan bus sistem eksternal cukup besar - Anda dapat bekerja dengan RAM statis 8-bit, 16-bit, dan 32-bit, ROM, dan Flash NAND. Untuk membaca / menulis data 32-bit, pengontrol dapat secara otomatis melakukan 2 operasi yang sesuai untuk sirkuit mikro 16-bit, dan 8 operasi untuk yang 4-bit. Jelas, operasi I/O 32-bit akan menjadi yang tercepat dengan bus data 32-bit. Kerugiannya termasuk kebutuhan program untuk beroperasi dengan data 32-bit, dan papan harus meletakkan 32 trek.

Pengembangan papan debug untuk K1986BE1QI (penerbangan)
Chip SRAM, digunakan (tebak mana yang rusak)

Solusi yang seimbang adalah dengan menggunakan chip memori 16-bit. Saya berakhir dengan chip Integrated Silicon Solutions Inc. (ISSI IS61LV25616AL, 16x256k, 10ns, 3.3V). Tentu saja, perusahaan "Milandr" memiliki chip memori statisnya sendiri seri 1645RUtetapi mereka terlalu mahal dan tidak tersedia. Atau, ada Samsung K6R4016V1D yang kompatibel dengan pin. Saya sebutkan sebelumnya bahwa IC adalah bekas dan salinan yang saya instal awalnya goyah dan tidak menentu pada jalur data ke-15. Butuh beberapa hari untuk menemukan kesalahan perangkat keras, dan perasaan puas yang lebih besar ketika saya mengganti chip yang rusak dengan yang berfungsi. Bagaimanapun, kecepatan bekerja dengan memori eksternal menyisakan banyak hal yang diinginkan.

Bus Eksternal dan Mode MandiriMikrokontroler K1986BE1QI (penerbangan) memiliki mode StandAlone yang unik, yang dirancang untuk akses eksternal langsung ke pengontrol Ethernet dan MCIO (MIL_STD_1553) melalui bus eksternal, sementara inti dalam keadaan reset, mis. tidak digunakan. Mode ini berguna untuk prosesor dan FPGA yang tidak memiliki Ethernet dan/atau MCIO.
Diagram koneksi adalah sebagai berikut:

  • bus data MCU(D0-D15) => SRAM(I/O0-I/O15),
  • bus alamat MCU(A1-A18) => SRAM(A0-A17),
  • Kontrol MCU(nWR,nRD,PortC2) => SRAM (KAMI,OE,CE),
  • SRAM(UB,LB) dihubungkan atau ditarik ke ground melalui resistor.

Garis CE ditarik ke atas melalui resistor, pin pengambilan byte MCU (BE0-BE3) tidak digunakan. Di bawah spoiler saya berikan kode untuk menginisialisasi port dan pengontrol bus eksternal.

Inisialisasi port dan pengontrol EBC (pengontrol bus eksternal)

void SRAM_Init (void)
{
	EBC_InitTypeDef          EBC_InitStruct = { 0 };
	EBC_MemRegionInitTypeDef EBC_MemRegionInitStruct = { 0 };
	PORT_InitTypeDef         initStruct = { 0 };

	RST_CLK_PCLKcmd (RST_CLK_PCLK_EBC, ENABLE);

	PORT_StructInit (&initStruct);
	//--------------------------------------------//
	// DATA PA0..PA15 (D0..D15)                   //
	//--------------------------------------------//
	initStruct.PORT_MODE      = PORT_MODE_DIGITAL;
	initStruct.PORT_PD_SHM    = PORT_PD_SHM_ON;
	initStruct.PORT_SPEED     = PORT_SPEED_FAST;
	initStruct.PORT_FUNC      = PORT_FUNC_MAIN;
	initStruct.PORT_Pin       = PORT_Pin_All;
	PORT_Init (MDR_PORTA, &initStruct);	
	//--------------------------------------------//
	// Address PF3-PF15 (A0..A12), A0 - not used. //
	//--------------------------------------------//
	initStruct.PORT_FUNC      = PORT_FUNC_ALTER;
	initStruct.PORT_Pin       = PORT_Pin_4  | PORT_Pin_5  |
	                            PORT_Pin_6  | PORT_Pin_7  |
	                            PORT_Pin_8  | PORT_Pin_9  |
								PORT_Pin_10 | PORT_Pin_11 |
	                            PORT_Pin_12 | PORT_Pin_13 |
								PORT_Pin_14 | PORT_Pin_15;
	PORT_Init (MDR_PORTF, &initStruct);	
	//--------------------------------------------//
	// Address PD3..PD0 (A13..A16)                //
	//--------------------------------------------//
	initStruct.PORT_FUNC      = PORT_FUNC_OVERRID;
	initStruct.PORT_Pin       = PORT_Pin_0 | PORT_Pin_1 |
	                            PORT_Pin_2 | PORT_Pin_3;
	PORT_Init (MDR_PORTD, &initStruct);	
	//--------------------------------------------//
	// Address PE3, PE4 (A17, A18)                //
	//--------------------------------------------//
	initStruct.PORT_FUNC      = PORT_FUNC_ALTER;
	initStruct.PORT_Pin       = PORT_Pin_3 | PORT_Pin_4;
	PORT_Init (MDR_PORTE, &initStruct);	
	//--------------------------------------------//
	// Control PC0,PC1 (nWE,nOE)                  //
	//--------------------------------------------//
	initStruct.PORT_FUNC      = PORT_FUNC_MAIN;
	initStruct.PORT_Pin       = PORT_Pin_0 | PORT_Pin_1;
	PORT_Init (MDR_PORTC, &initStruct);	
	//--------------------------------------------//
	// Control PC2 (nCE)                          //
	//--------------------------------------------//
	initStruct.PORT_PD        = PORT_PD_DRIVER;
	initStruct.PORT_OE        = PORT_OE_OUT;
	initStruct.PORT_FUNC      = PORT_FUNC_PORT;
	initStruct.PORT_Pin       = MDB_SRAM_CE;
	PORT_Init (MDR_PORTC, &initStruct);	

	//--------------------------------------------//
	// Initialize EBC controler                   //
	//--------------------------------------------//
	EBC_DeInit();
	EBC_StructInit(&EBC_InitStruct);
	EBC_InitStruct.EBC_Mode             = EBC_MODE_RAM;
	EBC_InitStruct.EBC_WaitState        = EBC_WAIT_STATE_3HCLK;
	EBC_InitStruct.EBC_DataAlignment    = EBC_EBC_DATA_ALIGNMENT_16;
	EBC_Init(&EBC_InitStruct);
	
	EBC_MemRegionStructInit(&EBC_MemRegionInitStruct);
	EBC_MemRegionInitStruct.WS_Active   = 2;
	EBC_MemRegionInitStruct.WS_Setup    = EBC_WS_SETUP_CYCLE_1HCLK;
	EBC_MemRegionInitStruct.WS_Hold     = EBC_WS_HOLD_CYCLE_1HCLK;
	EBC_MemRegionInitStruct.Enable_Tune = ENABLE;
	EBC_MemRegionInit (&EBC_MemRegionInitStruct, EBC_MEM_REGION_60000000);
	EBC_MemRegionCMD(EBC_MEM_REGION_60000000, ENABLE);

	// Turn ON RAM (nCE)
	PORT_ResetBits (MDR_PORTC, MDB_SRAM_CE);
}

Mikrokontroler dalam paket LQFP-144 dan memori dalam paket TSOP-44 memiliki banyak pin yang terhubung dan memakan banyak ruang PCB. Memiliki pengalaman dalam memecahkan masalah pengoptimalan di bidang ekonomi, jelas bagi saya bahwa sirkuit mikro ini harus ditempatkan di papan tulis terlebih dahulu. Di berbagai sumber, saya menemukan ulasan pujian tentang CAD TopoR (Router Topologi). Saya mengunduh versi uji coba dan dapat mengekspor proyek saya dari Eagle CAD di sana hanya ketika saya menghapus hampir semua komponen. Sayangnya, program TopoR tidak membantu saya menempatkan bahkan 10 elemen di papan tulis. Pertama, semua komponen ditempatkan di sudut, lalu disusun di sepanjang tepi. Opsi ini tidak memuaskan saya, dan saya menghabiskan waktu lama menelusuri papan secara manual di lingkungan CAD Eagle yang sudah dikenal.

Sablon adalah elemen penting dari papan sirkuit tercetak. Di papan debug, tidak hanya harus ada tanda tangan untuk komponen elektronik, tetapi semua konektor harus ditandatangani. Di sisi belakang papan, saya menempatkan memo tabel dengan fungsi port pengontrol (utama, alternatif, diganti, aktual). Saya memesan pembuatan papan sirkuit tercetak di China di kantor PCBWay yang terkenal. Saya tidak akan memuji, karena kualitasnya bagus. Mereka bisa berbuat lebih baik dengan toleransi yang lebih kecil, tapi untuk bayaran.

Pengembangan papan debug untuk K1986BE1QI (penerbangan)
Papan sirkuit cetak yang diproduksi MDB1986, (c) Foto oleh penulis

Saya harus menyolder komponen "di lutut" dengan besi solder 40 watt dan solder POS-61, karena saya jarang menyolder, 1-2 kali setahun, dan pasta solder mengering. Saya juga harus mengganti pengontrol CS32F103 China ke STM32F103 asli, dan kemudian juga mengganti memori. Secara umum, sekarang saya sangat puas dengan hasilnya, meskipun saya belum memeriksa pengoperasian RS-232 dan CAN.

Pengembangan papan debug untuk K1986BE1QI (penerbangan)
Debug papan MDB1986 dalam operasi β€” bersinar dan hangat, (с) Foto oleh penulis

Di situs "Milandra" Anda dapat menemukan cukup banyak bahan ajar untuk pengendali pembelajaran Seri 1986BE9 (inti Cortex-M3), tetapi untuk mikrokontroler K1986BE1QI (penerbangan), saya tidak melihat apa pun di sana. Setelah meninjau materi yang diterbitkan di sana, manual dan pekerjaan laboratorium untuk universitas, saya senang bahwa personel dilatih di seluruh negeri untuk bekerja dengan pengontrol Rusia. Sebagian besar materi pelatihan disiapkan untuk bekerja dengan port I / O, timer, ADC, DAC, SPI, UART. Berbagai IDE digunakan (Keil, IAR, CodeMaster). Di suatu tempat mereka memprogram menggunakan register CMSIS, dan di suatu tempat mereka menggunakan Perpustakaan MDR. Sumber daya harus disebutkan Mulai Milandr, yang berisi banyak artikel dari programmer yang sedang berlatih. Dan, tentu saja, kita tidak boleh melupakannya Forum Milandra.

Memikirkan MilandraMikroelektronika di Rusia sedang berkembang, dan perusahaan "Milandr" memainkan peran penting dalam proses ini. Mikrokontroler baru yang menarik muncul, misalnya, 1986BE81T dan Elektrosila dengan antarmuka SpaceWire dan MKIO (sama seperti pada 1986BE1 dan, mungkin, dengan masalah yang sama), dll. Tetapi untuk siswa biasa, guru, dan insinyur sipil, tidak realistis membeli sirkuit mikro semacam itu. Artinya komunitas teknik tidak akan dapat dengan cepat mengidentifikasi kesalahan dan masalah chip ini. Tampak bagi saya bahwa pertama-tama perlu memproduksi sirkuit mikro dalam wadah plastik, mendistribusikannya di antara semua pihak yang berkepentingan, dan hanya setelah persetujuan (Latin approbatio - persetujuan, pengakuan) spesialis dapat menyiapkan revisi dalam wadah keramik-logam dengan perlindungan dari semua faktor yang mengerikan. Saya berharap dalam waktu dekat kita SEMUA akan senang dengan proyek-proyek baru yang diumumkan di pameran.
Siapa pun dapat mengulang, memodifikasi, dan menggunakan papan debug yang saya kembangkan dalam proses pendidikan. Pertama-tama, saya membuat papan untuk diri saya sendiri, tetapi ternyata sangat bagus Saya memutuskan untuk berbagi dengan semua orang.

K1986BE1QI (udara) adalah pengontrol yang sangat menarik dengan antarmuka unik yang dapat digunakan di universitas untuk mengajar siswa. Saya pikir setelah mengoreksi kesalahan yang teridentifikasi dalam pengontrol dan lulus uji sertifikasi, pengontrol akan terbang dalam arti yang sebenarnya!

Sumber: www.habr.com

Tambah komentar