K1986BE1QI (هوائي جهاز) لاءِ ڊولپمينٽ بورڊ جي ترقي

K1986BE1QI (هوائي جهاز) لاءِ ڊولپمينٽ بورڊ جي ترقي

ڪيترائي سال اڳ مون کي مليندر کان روسي microcontrollers سان واقف ٿيو. اهو 2013 هو، جڏهن انجنيئرز 2008-2015 لاءِ وفاقي ٽارگيٽ پروگرام ”ڊيولپمينٽ آف اليڪٽرانڪ ڪمپونٽ بيس ۽ ريڊيو اليڪٽرانڪس“ جي پهرين نتيجن تي زور سان بحث ڪري رهيا هئا. ان وقت، K1986BE9x ڪنٽرولر (Cortex-M3 ڪور) اڳ ۾ ئي جاري ڪيو ويو هو، ۽ 1986BE1T ڪنٽرولر (Cortex-M1 ڪور) صرف ظاهر ٿيو هو. پلاسٽڪ جي صورت ۾، LQFP-144، ان کي دستاويز ۾ K1986BE1QI (هوائي جهاز) نامزد ڪيو ويو، ۽ چپ تي پاڻ کي نامزدگي MDR32F1QI. ڪاريگر جي ويب سائيٽ تي ان جو لاڳاپو آهي "avia"، ڇاڪاڻ ته ان ۾ هوائي جهاز جي صنعت لاءِ مخصوص انٽرفيس آهن (ARINC 429, MIL_STD_1553).

حيرت انگيز طور تي، انهن ڪنٽرولرز جي تقسيم جي وقت، ملندر ڪمپني ڊيبگنگ ڪٽس ۽ پردي سان ڪم ڪرڻ لاء سب روٽين جي هڪ لائبريري تيار ڪئي، "پر لائبريري جي درستي جي حوالي سان ڪنهن به اضافي ضمانت يا ذميواري کان سواء." لائبريري STMicroelectronics جي معياري پرديري لائبريري وانگر آهي. عام طور تي، Cortex-M ڪور تي ٺهيل سڀئي ARM ڪنٽرولر تمام گهڻو عام آهن. انهي سبب لاء، نئين روسي ڪنٽرولرز سان واقفيت جلدي اڳتي وڌو. ۽ انهن لاءِ جيڪي برانڊيڊ ڊيبگنگ ڪٽ خريد ڪيا، استعمال دوران ٽيڪنيڪل سپورٽ مهيا ڪئي وئي.

K1986BE1QI (هوائي جهاز) لاءِ ڊولپمينٽ بورڊ جي ترقي
Отладочный комплект для микроконтроллера 1986ВЕ1Т, © Миландр

تنهن هوندي به، وقت سان گڏ، "ننڍپڻ جي بيمارين" جي نئين microcircuits ۽ لائبريريون ظاهر ٿيڻ لڳو. فرم ویئر جا امتحان جا مثال بغير ڏسڻ واري مسئلن جي ڪم ڪيا، پر اهم تبديلين سان، حادثا ۽ غلطيون ٿي ويون. منهنجي مشق ۾ پهريون "نگل" CAN ڪنٽرولر جي آپريشن ۾ ناقابل بيان ناڪامي هئي. هڪ سال بعد، ماڊل سان هڪ مسئلو دريافت ڪيو ويو 1986 BE1T (هوائي جهاز) ڪنٽرولر جي شروعاتي نظرثاني جي MKIO (ملٽيپلڪس انفارميشن ايڪسچينج چينل). عام طور تي، 2016 تائين انهن microcontrollers جي سڀني نظرثانيون محدود استعمال جا هئا. گهڻو وقت ۽ اعصاب انهن مسئلن جي نشاندهي ڪرڻ ۾ گذري ويا، جن جي تصديق هاڻي ڳولي سگهجي ٿي غلطي جي فهرست (Errata).

هڪ ناپسنديده خصوصيت اها هئي ته اهو ڪم ڪرڻ ضروري هو ۽ غلطين سان ڊيل ڪرڻ لاء ڊيبنگ بورڊ تي نه، پر ڊوائيسز جي پروٽوٽائپ بورڊ تي جيڪي سيريل ڪارخاني جي پيداوار لاء رٿابندي ڪئي وئي هئي. اتي عام طور تي JTAG کنیکٹر کانسواءِ ڪجھ به نه ھو. منطقي تجزيي سان ڳنڍڻ ڏکيو ۽ تڪليف ڏيندڙ هو، ۽ عام طور تي ڪو به LED يا اسڪرين نه هوندو هو. انهي سبب لاء، منهنجي پنهنجي ڊيبنگ بورڊ ٺاهڻ جو خيال منهنجي سر ۾ ظاهر ٿيو.

هڪ طرف، مارڪيٽ تي برانڊڊ ڊيبگنگ ڪٽ هئا، انهي سان گڏ زيلين گراڊ جي LDM-Systems ڪمپني جا شاندار بورڊ. ٻئي طرف، انهن شين جي قيمتون حيران ڪندڙ آهن، ۽ توسيع ڪارڊ کان سواء بنيادي ڪارڪردگي اميدن کي پورو نٿو ڪري. هڪ بورڊ جنهن ۾ سولڊر ٿيل ڪنٽرولر ۽ پن ڪنيڪٽر منهنجي لاءِ ڪا دلچسپي نه آهي. ۽ وڌيڪ دلچسپ بورڊ قيمتي آهن.

K1986BE1QI (هوائي جهاز) لاءِ ڊولپمينٽ بورڊ جي ترقي
Отладочная плата MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM Systems

Milander ڪمپني هڪ منفرد قيمت جي پاليسي ۽ مارڪيٽنگ آهي. تنهن ڪري، اهو ممڪن آهي ته ڪجهه microcircuits جي مفت نموني حاصل ڪرڻ، پر اهو صرف قانوني ادارن لاء دستياب آهي ۽ بيوروڪريسي جي ڳولا سان لاڳاپيل آهي. عام طور تي، هڪ ڌاتو-سيرامڪ ڪيس ۾ microcircuits لفظي ۽ علامتي معني ۾ سون آهن. مثال طور، هڪ 1986BE1T ڪنٽرولر ماسڪو ۾ 14 کان 24 هزار روبل جي قيمت آهي. 1645RU6U جامد ميموري چپ جي قيمت 15000 روبل کان. ۽ هي آهي سڀني شين جي قيمت آرڊر. نتيجي طور، حڪومتي حڪمن سان پڻ خاص تحقيقي ادارا پئسا بچائيندا آهن ۽ اهڙين قيمتن کان شرمندا آهن. عام استعمال لاء پلاسٽڪ ڪيس ۾ Microcircuits تمام سستا آهن، پر اهي مشهور سپلائرز کان دستياب نه آهن. ان کان سواء، پلاسٽڪ جي صورت ۾ microcircuits جي معيار، مون کي لڳي ٿو، "سون" کان وڌيڪ خراب آهي. مثال طور، مان 1986 ميگاواٽ تي K1BE128QI ڪنٽرولر نه هلائي سگهيس بغير فليش ليٽيسي پيٽرولر کي وڌائڻ کان سواء. ساڳئي وقت، هن ڪنٽرولر جي گرمي پد 40-50 سي تائين وڌي وئي. پر 1986BE1T ("سونا") ڪنٽرولر 128 MHz تي شروع ڪيو بغير اضافي سيٽنگون ۽ ٿڌو رهيو. هو واقعي سٺو آهي.

K1986BE1QI (هوائي جهاز) لاءِ ڊولپمينٽ بورڊ جي ترقي
"گولڊن" مائڪرو ڪنٽرولر 1986BE1T، (c) Milander

Мне повезло, что микроконтроллер в пластиковом корпусе всё-таки можно купить в розницу в компании LDM Systems, а все схемы плат есть в свободном доступе. Плохо то, что на сайте на фотографии контроллера видна маркировка, которая говорит, что это 4 ревизия 2014 года, т.е. с дефектами. Я долго думал – покупать или не покупать. Так прошло несколько лет…

ڊيبگ بورڊ ٺاهڻ جو خيال ڪٿي به غائب نه ٿيو آهي. آهستي آهستي، مون سڀ گهرجون پوريون ڪيون ۽ سوچيو ته ان کي ڪيئن هڪ تختي تي رکان ته جيئن اهو ٺهيل هجي ۽ مهانگو نه هجي. ساڳئي وقت، مون چيني کان غائب اجزاء جو حڪم ڏنو. مون کي جلدي نه هئي - مون پنهنجي لاء سڀ ڪجهه ڪيو. چيني سپلائرز بدنام طور تي خراب آهن - مون کي گهربل هر شيءِ حاصل ڪرڻ لاءِ مختلف هنڌن تان ساڳي شيءِ آرڊر ڪرڻي هئي. ان کان علاوه، ڪجھ ميموري چپس استعمال ٿيڻ لاء نڪرندا آھن - ظاهري طور تي ٽوڙيل ڊوائيسز مان سولڊر ٿيل. اها ڳالهه مون کي بعد ۾ پريشان ڪرڻ لاء واپس آئي.

هڪ microcontroller Milander K1986BE1QI (ايئر) خريد ڪرڻ هڪ آسان ڪم نه آهي. ساڳئي چپ ۽ ڊپ اسٽور ۾، "آرڊر ڪرڻ لاء شيون" سيڪشن ۾، مون کي 1986 روبل لاء صرف K92BE740QI مليو، پر اهو مون لاء مناسب نه هو. 2000 روبل لاء LDM-سسٽم کان هڪ غير تازو نظرثاني خريد ڪرڻ جو واحد اختيار آهي. جيئن ته مون کي ٻيو ڪٿي به متبادل نه ملي سگهيو، مون فيصلو ڪيو ته مون وٽ ڇا هو. منهنجي خوشگوار تعجب لاء، انهن مون کي وڪرو ڪيو هڪ نئون نئون ڪنٽرولر ڊسمبر 2018 ۾ ٺاهيل، نظرثاني 6+ (1820). پر سائيٽ اڃا تائين پراڻي تصوير آهي، ۽ لکڻ جي وقت تي ڪنٽرولر موجود ناهي ...

K1986BE1QI (هوائي جهاز) لاءِ ڊولپمينٽ بورڊ جي ترقي
Микроконтроллер К1986ВЕ1QI (авиа) в технологической упаковке, (с) Фото автора

منهنجي ڊيبگ بورڊ جي مکيه ٽيڪنيڪل خاصيتون MDB1986 هيٺين ريت

  • بلٽ ان ڊيبگر-پروگرامر، J-Link ۽ CMSIS-DAP سان هم آهنگ؛
  • статическая память 4Мбит (256k x 16, 10 ns);
  • микросхема флэш памяти 64Мбит, Winbond 25Q64FVSIG;
  • RTS ۽ CTS لائينن سان RS-232 انٽرفيس ٽرانسيور؛
  • Ethernet، USB، CAN لاءِ انٽرفيس ۽ ڪنيڪٽر؛
  • MAX7 7221-حصو ڊسپلي ڪنٽرولر؛
  • MKIO (MIL_STD_1553) ۽ ARINC429 سان ڪم ڪرڻ لاءِ پن ڪنيڪٽر؛
  • phototransistor Everlight PT17-21C؛
  • پنج رنگ LEDs، هڪ ري سيٽ بٽڻ ۽ ٻه صارف بٽڻ؛
  • USB پورٽ کي پاور سپلائي 5 وولٽ آهي؛
  • ڇپيل سرڪٽ بورڊ جي طول و عرض 100 x 80، ملي ايم

Мне нравились платы серии STM-Discovery тем, что там есть встроенный программатор-отладчик – ST-Link. Фирменный ST-Link работает только с контроллерами фирмы STMicroelectronics, но пару лет назад появилась возможность обновить в ST-Link прошивку и получить SEGGER J-Link OB (on-board) Debugger. Юридически имеется ограничение на использование такого отладчика только с платами STMicroelectronics, но фактически потенциал не ограничен. Таким образом, имея J-Link OB можно на отладочной плате иметь встроенный программатор-отладчик. Отмечу, что в продукции «LDM-Systems» используется преобразователь CP2102 (Usb2Uart), который может только прошивать.

K1986BE1QI (هوائي جهاز) لاءِ ڊولپمينٽ بورڊ جي ترقي
STM32F103C8T6 مائڪرو ڪنٽرولرز، حقيقي ۽ ايترو حقيقي نه، (c) ليکڪ طرفان فوٽو

تنهن ڪري، اهو ضروري آهي ته اصل STM32F103C8T6 خريد ڪيو وڃي، ڇاڪاڻ ته ملڪيت واري فرم ويئر ڪلون سان صحيح ڪم نه ڪندي. مون هن مقالي تي شڪ ڪيو ۽ ڪوشش ڪرڻ جو فيصلو ڪيو CS32F103C8T6 ڪنٽرولر چيني ڪمپني CKS کان. مون کي خود ڪنٽرولر بابت ڪا شڪايت ناهي، پر ملڪيت جي ST-Link firmware ان ۾ ڪم نه ڪيو. J-Link جزوي طور ڪم ڪيو - USB ڊيوائس ڳولي وئي، پر پروگرامر پنھنجي ڪم کي انجام نه ڏنو ۽ مسلسل ياد ڏياريو ته اھو "نقصان" آھي.

K1986BE1QI (هوائي جهاز) لاءِ ڊولپمينٽ بورڊ جي ترقي
غلطي جڏهن ڊيبگر کي غير اصلي ڪنٽرولر تي هلائڻ دوران

مان ان مان مطمئن نه هوس ۽ پهريون ڀيرو LED کي چمڪائڻ لاءِ فرم ویئر لکيو، ۽ پوءِ JTAG پروٽوڪول استعمال ڪندي IDCODE درخواست تي عمل ڪيو. ST-Link پروگرامر، جيڪو مون Discovery بورڊ تي ڪيو ھو، ۽ ST-Link يوٽيلٽي پروگرام CS32F103C8T6 کي بغير ڪنھن پريشاني جي فليش ڪيو، آخر ۾، مون کي يقين ٿي ويو ته منھنجو بورڊ ڪم ڪري رھيو آھي. منهنجي خوشي لاءِ، ٽارگيٽ ڪنٽرولر K1986BE1QI (هوائي جهاز) خوشيءَ سان پنهنجو IDCODE TDO لائن ذريعي جاري ڪيو.

K1986BE1QI (هوائي جهاز) لاءِ ڊولپمينٽ بورڊ جي ترقي
انڪوڊ ٿيل IDCODE جواب سان گڏ TDO سگنل لائن جو آسيلوگرام، (c) ليکڪ طرفان فوٽو

K1986BE1QI (هوائي جهاز) لاءِ ڊولپمينٽ بورڊ جي ترقي
تنهن ڪري SWD پورٽ هٿ ۾ آيو ڊيبگر پاڻ کي ڊيبگ ڪرڻ ۽ IDCODE چيڪ ڪرڻ لاءِ

ڊيبگر سان گڏ ھڪڙو اختيار ھو CMSIS-DAP (Debug Access Port). ARM ذريعن مان پروجيڪٽ ٺاهڻ ڪو سولو ڪم ناهي، مون اهو پروجيڪٽ اتان ورتو X893، ۽ پوءِ مون ڪوشش ڪئي DAP42. بدقسمتي سان، Keil uVision منجمد ٿي ويو ۽ انهن سان ڪم ڪرڻ نه چاهيو. نتيجي طور، مون ڊيبگر چپ کي ملڪيت سان تبديل ڪيو STM32F103C8T6 ۽ ڪڏهن به هن مسئلي ڏانهن واپس نه آيو.

K1986BE1QI (هوائي جهاز) لاءِ ڊولپمينٽ بورڊ جي ترقي
Успешная работа встроенного отладчика J-Link STLink V2

جڏهن مستقبل جي ترقياتي بورڊ جا سڀئي اهم حصا موجود هئا، آئون ايگل CAD ۾ ويو ۽ دريافت ڪيو ته اهي عنصر لائبريري ۾ نه هئا. وڃڻ جي ڪا به جاءِ نه هئي - مون کي انهن کي پاڻ ڏانهن ڇڪڻو هو. ساڳئي وقت، مون ميموري لاءِ چڙهندڙ اسپاٽ ٺاهيا، ايٿرنيٽ لاءِ هڪ HanRun ڪنيڪٽر، ۽ رزسٽرز ۽ ڪيپيسٽرز لاءِ فريم شامل ڪيا. پروجيڪٽ فائل ۽ جزو لائبريري ڳولي سگھجي ٿو منهنجي GitHub تي.

MDB1986 ڊولپمينٽ بورڊ جو اسڪيميٽڪ ڊراگرامK1986BE1QI (هوائي جهاز) لاءِ ڊولپمينٽ بورڊ جي ترقي

بورڊ يو ايس بي پورٽ مان حاصل ڪيل 5 وولٽ ڊي سي ماخذ طرفان طاقتور آهي. بورڊ تي مجموعي طور تي ٻه USB قسم-B بندرگاهن آهن. ھڪڙو پروگرامر لاء آھي، ٻيو آھي K1986BE1QI ڪنٽرولر لاء. بورڊ انهن مان ڪنهن به ذريعن کان ڪم ڪري سگهي ٿو يا ٻئي هڪ ئي وقت. سڀ کان آسان لوڊ ريگيوليشن ۽ پاور لائين تحفظ لاڳو ڪيا ويا آهن Schottky diodes، سرڪٽ D2 ۽ D3 (SS24) ۾. پڻ ڊراگرام ۾ توهان ڏسي سگهو ٿا خود بحال ٿيندڙ فيوز F1 ۽ F2 500 mA تي. يو ايس بي پورٽ جون سگنل لائينون يو ايس بي ايل سي 6-2SC6 ڊيوڊ اسمبلي طرفان محفوظ آهن.

ST-Link ڊيبگر-پروگرامر سرڪٽ گھڻن کي معلوم آھي؛ اھو STM32-Discovery بورڊ ۽ ٻين ذريعن لاءِ دستاويزن ۾ ڳولهي سگھجي ٿو. ST-Link/J-Link-OB/DAP ڪلون (اختياري) جي شروعاتي فرم ویئر لاءِ، مون لائينون ڪڍيون SWDIO (PA13)، SWCLK (PA14)، GND. ڪيترائي ماڻهو فرم ويئر لاءِ UART استعمال ڪندا آهن ۽ بوٽ جمپر کي ڇڪڻ تي مجبور آهن. پر مون کي ڳولي ٿو SWD وڌيڪ آسان، ۽ هي پروٽوڪول ڊيبگنگ جي اجازت ڏئي ٿو.

بورڊ جا لڳ ڀڳ سڀئي حصا 3.3 وولٽ جي ذريعي طاقتور آهن، جيڪي AMS1117-3.3 وولٽ ريگيوليٽر کان ايندا آهن. برقياتي مقناطيسي مداخلت ۽ موجوده سرج کي دٻائڻ لاء، بي ايل ايم 31PG سيريز جي ڪئپسيٽر ۽ چوڪس مان LC فلٽر استعمال ڪيا ويا آهن.

الڳ الڳ، اهو ذڪر ڪرڻ جي قابل آهي MAX7 7221-سيڪشن ڊسپلي ڊرائيور. وضاحت جي مطابق، تجويز ڪيل پاور سپلائي 4 کان 5.5 وولٽ تائين آهي، ۽ اعلي سگنل جي سطح (منطقي هڪ) گهٽ ۾ گهٽ 3.5V (0.7 x VCC) آهي، هڪ 5V سپلائي سان. K1986BE1QI (هوائي جهاز) ڪنٽرولر لاءِ، هڪ منطقي يونٽ جو آئوٽ پٽ 2.8 کان 3.3V تائين وولٹیج سان ملندو آهي. ظاهر آهي ته سگنل جي سطحن جي وچ ۾ هڪ بي مثال آهي جيڪا عام آپريشن سان مداخلت ڪري سگهي ٿي. مون MAX7221 کي 4V تي پاور ڪرڻ جو فيصلو ڪيو ۽ سگنل جي سطح کي 2.8V تائين گھٽايو (0.7 x 4 = 2.8). هن کي ڪرڻ لاء، ڊيوڊ ڊي 4 (RS1A يا FR103) ڊرائيور پاور سرڪٽ ۾ سيريز ۾ نصب ٿيل آهي. ڪل وولٹیج ڊراپ 0.9V آهي (Schottky diode 0.3V ۽ diode 0.6V)، ۽ سڀ ڪجھ ڪم ڪري ٿو.

K1986BE1QI (هوائي جهاز) مائڪرو ڪنٽرولر جا اڪثر بندرگاهن 5V تائين سگنلن سان هم آهنگ آهن. تنهن ڪري، MCP2551 CAN ٽرانسيور استعمال ڪندي ڪو مسئلو ناهي، جيڪو پڻ 5V تي هلندو آهي. MAX232 چپ ڏيکاريل آهي RS-3232 ٽرانسيور جي شڪل ۾، پر حقيقت ۾ مون استعمال ڪيو SN65C3232D Texas Instruments مان، ڇاڪاڻ ته اهو 3.3V کان هلندي آهي ۽ 1Mbit/s تائين رفتار فراهم ڪري ٿو.

بورڊ ۾ 4 ڪوارٽز ريزونيٽرز شامل آهن - هڪ ڊيبگر (8 ميگا هرٽز) لاءِ ۽ ٽي ٽارگيٽ مائڪرو ڪنٽرولر K1986BE1QI (هوائي جهاز) لاءِ 32.768 kHz، 16 MHz، 25 MHz جي درجه بندي سان. اهي ضروري اجزاء آهن، ڇاڪاڻ ته تعمير ٿيل RC آسيليٽر جا پيرا ميٽرز 6 کان 10 MHz تائين وسيع رينج ۾ آهن. 25 MHz جي فريکوئنسي جي ضرورت آهي تعمير ٿيل Ethernet ڪنٽرولر جي آپريشن لاء. ڪجهه سببن لاءِ، ملندرا جي ويب سائيٽ (شايد غلطي سان) ٻڌائي ٿي ته پلاسٽڪ جي ڪيس ۾ ايٿرنيٽ ناهي. پر اسان تفصيل ۽ حقيقتن تي ڀروسو ڪنداسين.

منهنجي پنهنجي ڊولپمينٽ بورڊ ٺاهڻ لاءِ هڪ اهم ترغيب اهو هو ته هو ڪم ڪرڻ جو موقعو خارجي سسٽم بس EBC (بيروني بس ڪنٽرولر) سان، جيڪو لازمي طور هڪ متوازي بندرگاهه آهي. K1986BE1QI مائڪرو ڪنٽرولر (هوائي جهاز) توهان کي ڳنڍڻ ۽ ٻاهرين ميموري چپس ۽ پردي جي ڊوائيسز سان ڪم ڪرڻ جي اجازت ڏئي ٿو، مثال طور، ADCs، FPGAs وغيره. ٻاهرين سسٽم بس جون صلاحيتون ڪافي وڏيون آهن - توهان 8-bit، 16-bit ۽ 32-bit جامد رام، ROM ۽ NAND Flash سان ڪم ڪري سگهو ٿا. 32-bit ڊيٽا پڙهڻ/لکھڻ لاءِ، ڪنٽرولر پاڻمرادو 2-bit چپس لاءِ 16 لاڳاپيل عمل، ۽ 8-bit چپس لاءِ 4 آپريشن ڪري سگھن ٿا. ظاهر آهي، هڪ 32-bit I/O آپريشن تيزيءَ سان مڪمل ڪيو ويندو 32-bit ڊيٽا بس سان. نقصانن ۾ شامل آهي پروگرام کي 32-bit ڊيٽا سان هلائڻ جي ضرورت، ۽ بورڊ کي 32 ٽريڪ رکڻو پوندو.

K1986BE1QI (هوائي جهاز) لاءِ ڊولپمينٽ بورڊ جي ترقي
جامد رام چپس، استعمال ٿيل (انداز ڪريو ته ڪهڙو عيب آهي)

هڪ متوازن حل 16-bit ميموري چپس استعمال ڪرڻ آهي. مون وٽ اسٽاڪ ۾ Integrated Silicon Solutions Inc. چپس آهن. (ISSI IS61LV25616AL، 16 x 256k، 10 ns، 3.3V). يقينن، ملندر ڪمپني جي پنهنجي جامد ميموري چپس آهي سيريز 1645RUپر اهي تمام مهانگو ۽ دستياب نه آهن. متبادل طور تي، پن سان مطابقت رکندڙ Samsung K6R4016V1D آهن. ان کان اڳ مون ذڪر ڪيو آهي ته مائڪرو سرڪٽس استعمال ٿيڻ لاءِ نڪتا آهن ۽ جيڪا ڪاپي مون انسٽال ڪئي هئي شروعات ۾ 15 هين ڊيٽا لائن ۾ ناڪامي ۽ افراتفري قدر ڏني هئي. هارڊويئر جي غلطين کي ڳولڻ ۾ ڪيترائي ڏينهن لڳا، ۽ اطمينان جو وڌيڪ احساس جڏهن مون خراب ٿيل چپ کي ڪم ڪندڙ چپ سان تبديل ڪيو. جيئن ته اهو ٿي سگهي ٿو، خارجي ياداشت سان ڪم ڪرڻ جي رفتار گهڻو ڪري گهربل هجي.

خارجي بس ۽ اسٽينڊ اڪيلو موڊK1986BE1QI مائڪرو ڪنٽرولر (هوائي جهاز) ۾ هڪ منفرد اسٽينڊ الون موڊ آهي، جيڪو هڪ خارجي بس ذريعي Ethernet ۽ MKIO ڪنٽرولرز (MIL_STD_1553) تائين سڌو ٻاهرئين پهچ لاءِ ٺهيل آهي، بنيادي طور ريٽ اسٽيٽ ۾ آهي، يعني. استعمال نه ڪيو ويو. هي موڊ پروسيسرز ۽ FPGAs لاءِ آسان آهي جن وٽ Ethernet ۽/يا MKIO ناهي.
ڪنيڪشن ڊراگرام هن ريت آهي:

  • ڊيٽا بس MCU(D0-D15) => SRAM(I/O0-I/O15)،
  • ائڊريس بس MCU(A1-A18) => SRAM(A0-A17)،
  • управление MCU(nWR,nRD,PortC2) => SRAM (WE,OE,CE),
  • SRAM (UB، LB) ڳنڍيل آهن يا هڪ رزسٽر جي ذريعي زمين ڏانهن ڇڪيل آهن.

سي اي لائن پاور سپلائي سان رزسٽر جي ذريعي ڳنڍيل آهي؛ MCU بائيٽ (BE0-BE3) نموني لاءِ پن استعمال نه ڪيا ويا آهن. اسپائلر جي تحت، مان بندرگاهن ۽ ٻاهرين بس ڪنٽرولر جي شروعات لاءِ ڪوڊ مهيا ڪريان ٿو.

Инициализация портов и контроллера EBC (external bus controller)

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);
}

LQFP-144 پيڪيج ۾ مائڪرو ڪنٽرولر ۽ TSOP-44 پيڪيج ۾ ميموري ۾ ڪيترائي لاڳاپيل پن آهن ۽ ڇپيل سرڪٽ بورڊ تي تمام گهڻي جاءِ کڻندا آهن. اقتصاديات جي ميدان ۾ اصلاح جي مسئلن کي حل ڪرڻ ۾ تجربو حاصل ڪرڻ، اهو مون لاء واضح هو ته اهو ضروري هو ته انهن مائڪرو سرڪٽس کي بورڊ تي پهريون ڀيرو رکڻو پوندو. مختلف ذريعن ۾ مون کي ساراهيو ويو آهي تبصرا جي باري ۾ CAD TopoR (Topological Router). Я скачал пробную версию (trial) и смог экспортировать туда свой проект из Eagle CAD только тогда, когда удалил почти все компоненты. К сожалению, даже 10 элементов программа TopoR не помогла мне разместить на плате. Сначала все компоненты были помещены в угол, а потом по краю расставлены. Меня такой вариант не удовлетворил, и я долго выполнял трассировку платы в ручном режиме в привычной среде Eagle CAD.

پرنٽ ٿيل سرڪٽ بورڊ جو هڪ اهم عنصر سلڪ اسڪرين پرنٽنگ آهي. ڊولپمينٽ بورڊ وٽ نه رڳو اليڪٽرانڪ حصن لاءِ ليبل هجڻ گهرجن، پر سڀني ڪنيڪٽرن تي پڻ ليبل هجڻ لازمي آهي. بورڊ جي پٺيءَ تي مون ٽيبل رکيا آهن جن سان ڪنٽرولر بندرگاهن جي ڪمن (مکيه، متبادل، ختم ٿيل، حقيقي). مون چين ۾ ڇپيل سرڪٽ بورڊ جي پيداوار جو حڪم ڏنو معروف PCBWay آفيس مان. مان ان جي ساراهه نه ڪندس ڇو ته معيار سٺو آهي. اهي بهتر ڪري سگهن ٿا، سخت رواداري سان، پر за отдельную плату.

K1986BE1QI (هوائي جهاز) لاءِ ڊولپمينٽ بورڊ جي ترقي
ٺاهيل MDB1986 ڇپيل سرڪٽ بورڊ، (c) ليکڪ طرفان فوٽو

مون کي 40-واٽ سولڊرنگ آئرن ۽ POS-61 سولڊر سان "منهنجي گوڏن تي" اجزاء کي سولڊر ڪرڻو پيو، ڇاڪاڻ ته مان سال ۾ گهٽ ۾ گهٽ 1-2 ڀيرا سولڊر ڪندو آهيان، ۽ سولڊرنگ پيسٽ سڪي چڪي هئي. مون کي چيني CS32F103 ڪنٽرولر کي اصل STM32F103 ۾ تبديل ڪرڻو پيو، ۽ پوءِ ميموري کي به تبديل ڪرڻو پيو. عام طور تي، هاڻي مان نتيجو سان مڪمل طور تي مطمئن آهيان، جيتوڻيڪ مون اڃا تائين RS-232 ۽ CAN جي آپريشن جي جانچ نه ڪئي آهي.

K1986BE1QI (هوائي جهاز) لاءِ ڊولپمينٽ بورڊ جي ترقي
MDB1986 ڊيبگ بورڊ آپريشن ۾ آهي - اهو چمڪندڙ ۽ گرم آهي، (c) ليکڪ طرفان فوٽو

Milandra ويب سائيٽ تي توهان ڪافي ڳولي سگهو ٿا سکيا ڪنٽرولرز لاء تعليمي مواد серии 1986BE9 (ядро Cortex-M3), но для микроконтроллера К1986ВЕ1QI (авиа) я не вижу там ничего. Просмотрев опубликованные там материалы, методички и лабораторные работы для ВУЗов, я радуюсь, что готовятся кадры по всей стране для работы с российскими контроллерами. Большинство учебных материалов готовят к работе с портами ввода-вывода, таймерами, АЦП, ЦАП, SPI, UART. Используются разные среды разработки IDE (Keil, IAR, CodeMaster). Где-то программируют с помощью регистров CMSIS, а где-то используют MDR Library. Необходимо упомянуть ресурс ملندر شروع ڪريو, который содержит немало статей от программистов-практиков. И, конечно же, следует не забывать про форум Миландра.

Дума о МиландреMicroelectronics روس ۾ ترقي ڪري رهيو آهي، ۽ Milander ڪمپني هن عمل ۾ هڪ نمايان ڪردار ادا ڪري ٿي. نوان دلچسپ مائڪرو ڪنٽرولرز ظاهر ٿي رهيا آهن، مثال طور، 1986BE81T ۽ Elektrosila SpaceWire ۽ MKIO انٽرفيس سان (جيئن ته 1986BE1 ۾ ۽، ممڪن آهي، ساڳئي مسئلن سان)، وغيره. پر عام شاگرد، استاد ۽ سول انجنيئر اهڙا مائڪرو سرڪٽ خريد نٿا ڪري سگهن. هن جو مطلب اهو آهي ته انجنيئرنگ ڪميونٽي هن چپ سان جلدي غلطين ۽ مسئلن جي نشاندهي ڪرڻ جي قابل نه هوندا. اهو مون کي لڳي ٿو ته سڀ کان پهريان اهو ضروري آهي ته پلاسٽڪ جي صورت ۾ microcircuits پيدا ڪرڻ، انهن کي سڀني دلچسپي پارٽين کي ورهايو، ۽ ماهرن جي منظوري (لاطيني منظوري - منظوري، سڃاڻپ) کان پوء، اهي هڪ ميزيڪل-سيرامڪ ڪيس ۾ نظرثاني تيار ڪري سگهن ٿا. سڀني خوفناڪ عنصر کان تحفظ. مون کي اميد آهي ته ويجهي مستقبل ۾ اسان سڀني نمائشن ۾ اعلان ڪيل نون منصوبن سان خوش ٿيندا.
ڊيبگ بورڊ جيڪو مون ٺاهيو آهي، تعليمي عمل ۾ هر ڪنهن طرفان بار بار، تبديل ۽ استعمال ڪري سگهجي ٿو. سڀ کان پهريان، مون پنهنجي لاء بورڊ ٺاهيو، پر اهو تمام سٺو نڪتو я решил со всеми поделиться.

K1986BE1QI (ايئر) هڪ تمام دلچسپ ڪنٽرولر آهي منفرد انٽرفيس سان جيڪو يونيورسٽين ۾ شاگردن کي سيکارڻ لاءِ استعمال ڪري سگهجي ٿو. مان سمجهان ٿو ته ڪنٽرولر ۾ سڃاڻپ ٿيل غلطين کي درست ڪرڻ ۽ سرٽيفڪيشن ٽيسٽ پاس ڪرڻ کان پوء، ڪنٽرولر لفظ جي صحيح معني ۾ پرواز ڪندو!

جو ذريعو: www.habr.com

تبصرو شامل ڪريو