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

Транзисторні ключі — економимо резистори

Стандартний транзисторний ключ

Стандартний транзисторний ключ

Типовий транзисторний ключ для вмикання напруги, вищої за напругу живлення мікроконтролера, виглядає приблизно так. Конкретні номінали резисторів та типи транзисторів залежать від комутованого струму.

Багатенько резисторів. По ціні — не так того резистора, як його запаяти. Часом, особливо на невеликих платах, просто жаль місця.

Резистори R2 та/або R3 іноді можна викинути. Діапазон цього «іноді» залежить від темпераменту розробника :-) . R1 та R4 обмежують базові струми. Наче і не прибереш. Але… R4 можна прибрати.



Транзисторний ключ з джерелом струму

Транзисторний ключ з генератором струму

Обмежити струм бази VT2 можна, перетворивши каскад на транзисторі VT1 на генератор струму. Резистор R1, який обмежував базовий струм VT1, вилучається, натомість додається R5, який задає струм бази для VT2. R4 вже непотрібен.

Особливості схеми — струм бази VT2 не міняється у широкому діапазоні напруг +UIN і струм бази VT1 (споживання від джерела сигналу ON) — мінімально можливий.



Двополярний транзисторний ключ

Двополярний транзисторний ключ

Доволі цікавим, на мою думку, є розвиток цього підходу на двополярний ключ.

Основою ключа є двополярний генератор струму на транзисторах VT1, VT3 та резисторі R5. Співвідношенням опорів R3, R6 та R5 можна обрати необхідні напруги на затворах. Як і струм бази у попередньому варіанті, ці напруги не залежатимуть від вхідних напруг +UIN, -UIN.



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

p.s. Про «цифрові транзистори» я знаю і їх теж використовую. У них — свої недоліки.
p.s.2 Продовження теми — ще один транзисторний ключ

AOYUE 936

Зламався.
Думав, що доведеться міняти нагрівач, але там лише обірвалася одна з жил кабеля на вході в з’єднувач. Ремонт був нескладним. Проте з’ясувалося, що в інструкції на паяльник переплутано контакти нагрівального елемента та термопари.

Опори між контактами вказано правильно: між контактами 4-5 опір близько 1.7 Оми, між контактами 1-2 — під 20 Ом. Але і в табличці, і в тексті помилково «двохомний» ланцюг названо «heating element», а «двадцятиомний» — «sensor». Довго б хтось шукав плюс та мінус у такого сенсора :-)

Судячи з усього, помилка давня, бо в знайденій інструкції на LUKEY 936A точно така ж помилка — відносно високоомний ланцюг названо сенсором, низькоомний — нагрівачем.

Вніс виправлення у своєму екземплярі, правильно так:

Виправлена інструкція на AOYUE 936

p.s. Виловити плюс та мінус термопари можна і вольтметром, підігрівши нагрівач паяльника, що ремонтується, тим, за допомогою якого проводиться ремонт.

Мікроампери

Працюю зараз з платкою, яка повинна мати якнайменше споживання.
Сьогодні щось дописав, щось виправив і вирішив знову перевірити струм. І виявив, що плата їсть на 20-50 мікроампер більше, ніж очікувалося. Та ще й струм залежить від положення плати!

Винним виявився… світлодіод.
Зрозуміло, зрештою винний я сам і причина зайвого струму вічна і банальна — не ініціалізована ніжка мікроконтролера. Вона десь пізніше таки ініціалізується, але аж тоді, коли світлодіод треба увімкнути. А до того — високоомний вхід.
Світлодіод працює як фотодіод, від положення плати залежить освітленість цього «фотодіода» і, відповідно, напруга на цифровому вході. От звідти і змінна зайвина у споживанні.

ATmega48PB

А також вся компанія ATmega88PB та ATmega168PB. Зацікавило, оскільки саме мега48 — один з небагатьох представників AVR, який я досі використовую. Іноді ATmega168 — на тих же платах під час налагодження, для свободи використання printf. Ще іноді ATtiny13A для малоногого та ATtiny26-ATtiny261 за їхню 64-мегагерцову PLL для таймера.

У порівнянні з ATmega48P/ATmega48PA зміни достатньо значні, навіть сигнатура помінялася :-) , чого не було при переході від ATmega48P до ATmega48PA.

  • Нарешті викинули оту дурницю з двома парами VCC/GND (на додаток до VCCA/GNDA) і додали звільнені ніжки у PORTE. У той же порт додали ніжки ADC6 та ADC7, які тепер можуть бути і виходами.
  • Вихід аналогового компаратора тепер доступний на одному з цих доданих IO-виводів. Тепер можна зробити чесний апаратний гістерезис та ще й подати цей вихід на вхід RXD, а не ліпити програмний UART у випадках, коли сигнал приймається саме на компаратор (ну от такий він, сигнал).
  • Детектор стартового біта USART тепер працює в усіх sleep-режимах, тобто навіть у power down! Внутрішній RC вмикається по спаду на RXD, але тактування подається лише на USART, процесор піднімається вже після приймання. Особливо цікаво у поєднанні з попереднім пунктом.
  • 9-байтовий унікальний ідентифікатор кристалу. Але чомусь недоступний для програматора — розміщений у горішній частині регістрів і читається лише з програми. Принаймні у цій версії документації інших методів отримати не описано.
    Дрібна дурниця — в документації молодший регістр унікального ідентифікатора названо DIDR0 (Device IDentifier Register 0), тобто так само, як регістр заборони цифрових входів на аналогових ногах (Digital Input Disable Register 0).

Чого досі не вистачає:

  • Можливості перемкнути бітиком компаратор у low power режим — хай він спрацьовує не за 0.5-0.7 мкс, а за 3-5, але при цьому перестає жерти аж 60 мкА (при 3,3 В). Було б особливо приємно при використанні аналогового компаратора з UART у режимі power down.
  • Перемикання тактування на ходу, а не лише через fuse CKSEL. У деяких нових ATtiny це вже зробили, то могли б і тут.
  • Хоча у багатьох випадках мені б вистачило мультиплексора перед таймером 2, який вже має асинхронний режим. От туди б запускати не лише зовнішній «годинниковий» кварц, а ще й «128-кілогерцовий» генератор. Залишається додати до цього таймера input capture та прокидання по цій події — і можна з основного 8-мегагерцового RC йти в сон, звідки прокидатися, маючи час від попередньої події.

Logic analyzer

Періодично у мене виникало бажання таки мати не надто потужний (вдома я зовсім нескладні роботи роблю), але невеличкий і недорогий пристрій, який можна назвати логічним аналізатором. Про всяк випадок. Про них стільки на форумах говорять :-)

Кілька років то поглядав на плату з CY7C68013-128AC (але вона зрідка використовується як Altera USB blaster, а тулити макетку з двома EEPROM-ками та перемикачем ліньки), то, проходячи «кардачами», звертав увагу на платку під 56-виводну версію тієї мікросхеми. Потім вирішив, що не настільки воно мені потрібне і не настільки дороге, щоб я гаяв час. Простіше купити — «ну от як буде сильно треба, то куплю».

Нарешті десь у лютому, шукаючи дещо на алі-експресі, наштовхнувся на аналізатор saleae. Вже в корпусі, з хвостиками та гарним USB-кабелем і доставкою — менше 80 гривень. «А чом би й ні» — замовив. Заразом іще й хвостики з затискачами, щоб на ніжки мікросхем чіплятися.

Інше прийшло ще у квітні, а аналізатора нема. У кінці квітня стукаюся до продавця — у відповідь приходить у пошту повідомлення від самого алі-експреса, що продавець відсунув термін на два тижні. Та, думаю, однак воно не пече, як буде, так буде.

Майже через тиждень після великих травневих канікулів прийшло. Забрав зранку і поїхав на роботу. По дорозі заскочив, забрав перепрошити стару плату плату з AT90S8515. У вихідні взявся за плату, а вона не програмується, нема синхронізації. Через FT2232. Через LPT програмується. Стало зрозуміло, що це помилка в avreal. Плату перепрошив через LPT, а сам подумав — «от бач, як припекло, так і saleale прийшло».

У наступні вихідні трохи відсунув усе й сів шукати помилку:

Зручно. Декодер протоколів — то не на осцилографі бітики рахувати:

Помилку знайшов швидко, виправив. Ще раз подумав про те як вчасно отримав аналізатор :-)
До речі, хвостики-кліпси хоч і гірші, ніж старенькі від Hewlett-Packard, але кращі за ті, що йшли у комплекті з RIGOL-1062CD. Не якістю виконання, а зручністю використання :-)

Програма відмовилася працювати на 24 мегагерцах, сказала, що аналізатор не підтримує. На 16 мегагерцах все нормально. Ще не перевіряв, у чому справа — чи у лінуксі, чи в тому, що було через хаб підключено, чи в самому хабові. «От як припече — перевірю» :-D

p.s. Якщо б я поспішав, то я б віддав перевагу EV-uLogic на Evodbg — було б дорожче, але набагато швидше…

[flagcounter image]