Archive for the ‘Електроніка’ Category.

Падіння напруги на кабелі

Стало цікаво, як спадає напруга на кабелі, коли навантаження не зібрано все в одній точці на кінці, а розподілено рівномірно. Скажімо, декілька десятків споживачів із приблизно однаковим споживанням на приблизно рівних відстанях. Спочатку напруга спадатиме швидше, бо підключено більше споживачів, потім, ближче до кінця кабелю, швидкість спадання зменшиться. Але якими будуть загальні втрати напруги?
От якщо на кінці кабелю із загальним опором R висить навантаження зі споживанням струму I, то напруга впаде на величину IR. А що буде при рівномірному підключенні?

Позаяк і пристроїв доволі багато, і цікавить варіант, коли загальні втрати відносно невеликі (нехай з 20 до 18 вольт), та й самі споживачі не чисто резистивні (десь всередині є стабілізатор живлення частини електроніки, та частина разом із стабілізатором себе поводять як джерело постійного струму), в ідеалізованій моделі можна вважати, що навантаження зовсім рівномірне і незалежне від напруги.

Отже, струм I рівномірно розподілено на всю довжину L, з відстанню x від початку струм спадає i = I (1 − x/L). Загальний опір кабеля R, питомий R/L.

Зміна напруги:
dU = −idR = −I (1 − x/L)(R/L)dx = (IR/L2)(x − L)dx

Повна зміна на відстані a то інтеграл по x від 0 до a:
ΔUa = (IR/L2)(a2/2 − La) = (IR/(2L2)) ((L−a)2L2) = (IR/2)((1−a/L)2−1)
На кінці кабеля
ΔU = −IR/2

Якщо віднормувати напругу на падіння при зосередженому на кінці кабелю навантаженні IR, а відстань на довжину кабелю L, отримаємо такі графіки зміни напруги:

Падіння напруги на кабелі

Тобто втрата напруги на кінці при рівномірно розподіленому навантаженні вдвічі нижча, ніж була б при всьому навантаженні на кінці.

Або можна взяти кабель із вдвічі меншою площею перерізу і знизити собівартість.

Дрібна програмована логіка

Дивлюся оце на схему адаптера для програмування мікроконтролерів на мікросхемі FT2232 з перемиканням між JTAG і SWD і вкотре жалкую про передчасну смерть дрібної програмованої логіки. Дрібної не в сенсі корпусу ультра-нано-wlcsp, а в сенсі невеликої кількості логічних елементів.

Так, у продавців ще зустрічаються (вже Мікрочіпівські) ATF16V8/ATF22V10, але то старі серії швидше на підтримку старого обладнання, ніж на якісь нові розробки, бо Cypress і TI від різних PALCE вже відмовилися. І однак — ціна ATF16V8 штучно на DigiKey мало відрізняється від сумарної вартості (там же і теж штучно) тих трьох корпусів дрібної логіки, що стоять на JTAG/SWD-адаптері.

Так, PLD-шка ще потребувала б програмування, але при сучасних технологіях це не потребувало б 12-вольтової напруги і робилося б за долі секунди під час тестування зібраної плати. Ну хай тут, в адаптері, щось зовсім просте, навіть без тригерів. Але, як на мене, ще досить задач, де підійшло б щось на зразок (теж вже застарілої) EPM3032, але в корпусі TSSOP20…28 з програмуванням вбудованої EEPROM простим поширеним інтерфейсом на зразок I2C.

Перехідна плата qfp32

Зовсім випадково надибав на AliExpress чудову перехідну плату з qfp32 на два ряди штирів 2,54 мм для безпаєчної макетки. На відміну від інших, зі зворотного боку вона має не tssop32, виправданий з точки зору здешевлення макетки, а місця під корпуси 0805 з кожного виводу мікроконтролера, які виходять на полігон.

Адаптер з QFP32 на штирі з місцями 0805

Чудове рішення для того, щоб відразу з’єднати потрібні виводи з землею і якомога ближче до мікросхеми розмістити конденсатори. Також зручно для підтяжок до землі на потрібних виводах, наприклад, BOOT0 в мікроконтролерах STM32 (тут запаяно STM32L051K8). І не забудеш поставити при зміні схеми, і не займає дірочок у макетній платі.

Вона є у декількох продавців, я брав у цього.

p.s. Паяв знову не сам. Пора заводити тег скористався службовим становищем. 😉

Старий варіант перемикача гірлянд

Слово за слово, і таки поліз у барахлі шукати стару макетку, прототип позавчорашньої конструкції. Знайшов.

Хвіст на батарейку давно кудись відкушений, «гірляндочка» (стовпчик з трьох світлодіодів різного кольору) залишилася одна. На кінчиках дротиків гнізда з якихось розпиляних ГРПМ, а у макетці штирі, щоб можна було гірлянди підключати до різних виходіві отримувати різні ефекти. Можна оцінити довжину МГТФ-у і, відповідно, розмір ялинки, на яку було розраховано.

Тригери JK, К561ТВ1. Два елементи ЛН2 як генератор, чотири — як буфери для більшого струму світлодіодів. На виходах з 561ЛН2 резистори 470 Ом.

Макетка — огризок «ВУМ-івської», з тих, що вони собі самі робили для макетування плат розширення до «Поіск-2».

Стара макетка перемикача гірлянд

Судячи з кількості штирів, підключити взагалі можна було лише чотири гірлянди. Вільне місце на макетці натякає, що могла бути допаяна додаткова логіка для «пригасання на 1/4 періоду», про яку згадано у попередньому дописі, і буферну мікросхему після неї. Але було вирішено, що і так добре.

Простий перемикач гірлянд

Тему навіяно різким збільшенням інтересу до моєї старої публікації щодо відмінностей між «А-» і «не-А»-версіями мікроконтролерів AVR. Переходи з логу на сторінки-джерела посилань показують, що цікавить переважно відмінність ATtiny13A від ATtiny13. З урахуванням календаря у мене склалося таке враження, що десь є старі (на tiny13) схеми-прошивки простої світлодіодної блималки, яку всім чухається повторити до новорічних свят, а дотягнутися можна лише до ATtiny13A.

І я згадав той перемикач гірлянд на мікросхемах К561ТВ1 і К561ЛН2, що його напаяв на макетці років 25 тому, теж за кілька днів до Нового року. Пропрацював він років п’ятнадцять. «Гірлянд», може, й гучно сказано, але для невеличкої ялинки пару десятків вогників вистачало.

Зараз повторив схему на безпаєчній макетці на мікросхемах HEF4013 (два D-тригери) і HEF4093 (чотири елементи 2I-НЕ з тригерами Шмітта на входах).

І ось що з цього вийшло » » »

Недорога плата розробки для STM32L05x

Останнім часом я трохи працюю з мікроконтролерами STM32, зокрема STM32L011 і STM32L051, але то все конкретні плати, на яких виводи задіяно під конкретні функції. І коли раптом хочеться поколупатися із якоюсь ідеєю, то на тих тісних платах то страшенно незручно. А використати їх як носій мікросхеми, прибравши все зайве, так прибирати доведеться майже все і то буде навіть гірше, ніж просто перехідник «TQFP на штирі».

Існують плати STM32L1xxDISCOVERY, але там на найдешевших одна радість — вбудований «фірмовий» ST_LINK. Платити за те під 500 гривень неохота. Та й на них L100 або L152, а мені сподобалися STM32L0xx.

От для STM32F103C8 є декілька варіантів плати, яку називають «синя таблетка» (що викликає деякі застарілі асоціації[1]). Недорого, є необхідний мінімум.
Але то F103…
Тю, так виводи ж у STM32 стандартизовані!
STM32F103C8 і STM32L051C8… Співпадають!
Чудово, вчора син по дорозі зі свого університету заїхав у мікроАмпер і забрав потрібну плату, я ж заїхав у Імрад і взяв STM32L052C8, щоб вже й USB було.

Сьогодні на роботі скористався службовим становищем — попросив похімічити, здути F103 і запаяти на її місце L052:
Створення плати розробки STM32L052 із плати STM32F103

Під дією тепла проведено реакцію, у результаті якої я отримав бажану плату, а STM32F103C8 випала в осад. Залежно від того, чи буде цей мікроконтролер десь використаним, плата розробки для L05x обійшлася у суму від десь 110 до 180 гривень.

p.s. Там ще STM32F303C у такому ж корпусі TQFP48 бувають 😉


1 Колись давно мем про червону і синю таблетки використовували на форумах як вибір між червоним кольором PIC/Microchip і синім AVR/Atmel. Тепер і те і те мірочіпівське, хоч кольори і не помінялися.

Оболонка Arduino українською

Потихеньку завершив переклад оболонки Ардуіно українською мовою. Станом на кінець літа там близько третини (із майже шестисот) рядків у .po-файлі було ще не перекладено. Дещо було перекладене, але не потрапляло в оболонку жодною мовою, довелося шукати проблемне місце, виправляти і робити pull-request.

Дещо з перекладеного раніше також довелося виправити. Напевне ж, ще треба виправляти, як старе, так і зроблене мною. Хоча б тому, що в англійській мові нема відмінків, а я сам не пройшов всю оболонку, не викликав усі можливі повідомлення і не знаю контексту, у якому вони виникають. У дуже підозрілих місцях я просто по java-коду оболонки здогадувався про цей контекст.
От цікаво, де виникає повідомлення «Як сюрреалістично!» (в оригіналі «How very Borges of you»), але в код не ліз, такий квест треба проходити чесно 😉

Зараз з сайту Arduino можна завантажити Arduino IDE «стабільної» версії 1.8.5 від кінця вересня, туди частина перекладу вже увійшла.
У чергову preview-версію 1.8.6 від 30 жовтня (нижче, розділ HOURLY BUILDS) ще не потрапили дві фрази (див. issue), тепер вони є в перекладі. В релізі (чи наступному пре-релізі) 1.8.6 мають бути.

Будь-ласка, хто використовує Arduino, беріть найсвіжішу збірку (зараз ота 30 October 2017) звертайте увагу на меню і всі повідомлення, які трапляються у реальній роботі. Як щось криве побачите — пишіть. Хочу підчистити до релізу. Ну і потім продовжувати підтримувати стан.

Зовнішні відносно Arduino плагіни для роботи з платами/бібліотеками, навіть якщо вони прямо із сайту завантажуються разом з оболонкою, не мають можливості перекладу. Але пишіть про все, а я вже розбиратимуся — то щось нове додали і треба перекласти, чи воно не вміє бути перекладеним.

До речі, довідка в Arduino IDE, на відміну від власне оболонки, існує лише англійською. Так і не зрозумів, чи збираються додавати перемикання. Пізніше питатиму, зараз інша в чомусь близька робота час забрала.

Запобіжник в Ardunio Nano

Часом треба щось нашвидкоруч перевірити і найпростіше те зробити через ардуінку та безпаєчну макетку. Біда в тому, що я («досі»? чи «вже»? 😉 ) не завжди акуратно тикаюся тестером або забуваю перемкнути його зі струму на напругу чи роблю ще дурнішу помилку.

Тут треба відволіктися і нагадати, як на платі Ardunino Nano організоване живлення. Живитися вона може або від USB, або від запаяного на неї стабілізатора, на вхід якому через ніжку Vin подається нестабілізована напруга. Розв’язано ці два живлення дуже просто — одним діодом від USB на внутрішню шину «+5V».

Тамтешнього діода Шоткі MBR0520 з головою вистачає для роботи, але він спрацьовує як одноразовий запобіжник коли я підкорочую живлення. Двічі я його міняв, на третій раз вирішив нарешті поставити туди самовідновлюваний запобіжник. З’ясувалося, що MF-NSMF020 розміру 1206 дуже добре стає на місце діода, тільки трохи незручно паяти сторону, яка ближча до штирів:

Запобіжник в Arduino Nano

OpenOCD, STM32L011 і всі-всі-всі

Тему так і не закінчено. Доводиться тримати на столі обидва адаптери — і саморобний на FT2232H, і китайський ST-Link.

Мікроконтролери STM32L011, на відміну від інших STM32L0, мають одну особливість. Якщо флеш стерта (точніше, якщо стерте перше слово флеша, у якому початкова адреса стеку сидить), то незалежно від ніжки BOOT0 мікроконтролер стартує у boot-loader. Зроблено це з метою «полегшити початкове прошивання», але мені лише поважчало.

Біди не було б, якби OpenOCD у комбінації з адаптером на FT2232 з цією ситуацією міг упоратися. Але він чомусь не може прошити флеш. Під’єднується по SWD до ядра, показує вміст вказівника команд десь у діапазоні системної пам’яті, каже, який мікроконтролер побачив і обсяг флеш-пам’яті, а от шити відмовляється. Цей же OpenOCD з адаптерами ST-Link, що з «чесним» з плати STM32F3DISCOVERY, що з китайським, — перешиває.

Іноді потрібно стерти геть усе, через що влетіти у бут-лоадер, а плату DISCOVERY, у якої є reset, використовувати як програматор мені трохи незручно.
От тому лежать на столі два адаптери.

p.s. Про всяк випадок повторю: якщо не зупиняти основний генератор (не піднімати біт SLEEPDEEP у регістрі SCB->SCR) і не перепрограмовувати ніжки, потрібні для SWDIO/SWDCLK, то цілком можна обійтися китайським ST-Link-ом. Інакше — доведеться шукати/робити інший програматор або додавати кнопку reset і вчитися її відпускати у потрібний момент 🙂

Китайський ST-Link v2 проти STM32F3-Discovery

Щоб вже закінчити вчорашню тему.

Витягнув із шухлядки плату STM32F3-Diіcovery — на ній є вбудований ST-Link, який можна відключити від процесора на платі і використовувати для програмування інших плат. На штирі виведено всі сигнали, включно з RESET і SWO. До речі, перемички розривають лише лінії SWCLK і SWDIO, тому свою плату можна скидати, натиснувши кнопку на платі Discovery.

Ну що — все працює, RESET піднімає мікроконтролер зі Stop-у і перепрошиває. Тобто проблема в тому, що клон ST-Link з Ali-Express-у не вміє виконувати відповідні команди.

Коли вже знову сів за макетку з STM32L051, то перевірив і роботу команд stm32lx lock / stm32lx unlock і швидкість програмування. У клонованого ST-Link тут теж щось в генотипі порушене, бо набагато повільніший. Хоча в ньому стоїть STM32F101, тобто USB зроблене програмно, тому швидким він і не може бути, але ж одиниці кілобайт на секунду не така вже й велика швидкість.

Результати тестування на швидкість (файли для прошивки 2-12kB).
Команда “reset init” перемикає STM32L0x з внутрішнього MSI 2 MHz на HSI 16 MHz і піднімає частоту обміну.

Програматор Fswclk = 300 kHz
(-c “reset halt”)
Fswclk = 2.5 MHz
(-c “reset init”)
Клон ST-Link 1.5-1.7 KiB/s 1.5-1.7 KiB/s
F3-Discovery 4.9-5.0 KiB/s 5.2-5.3 KiB/s
FT2232H 3.8-4.2 KiB/s 8.0-8.3 KiB/s

Платку з FT2232D діставати було ліньки, на цих швидкостях має бути не набагато повільніша за FT2232H, хіба ото не зможе виставити 2.5 MHz частоти SWCLK, буде 2.

[flagcounter image]