Uart usb з використання. Конвертер usb-uart: перепрошивка адаптером. Перевірка ланцюгів і ще одна прикра помилка
Все почалося з того, що мені треба було підключитися до одного пристрою по USART. Я відразу взяв адаптер USB to UASRT (бо в ноутбуці COM порт не передбачений) на AtTiny2313 (рекламою займатися не буду, схема легко знаходиться в інтернеті), підключив, запустив і раптово зрозумів, що у адаптера фіксована швидкість 9600, а у девайса, до якому було потрібно підключитися, швидкість 57600. Справа, звичайно, було пізно увечері, і купити що-небудь на зразок FT232 можливості не було. Тому після нетривалого роздуми, було вирішено змінити швидкість UASRT в адаптері звичайної перепрошивкой. В результаті з'єднання було успішно налагоджено. Але погодьтеся - це ж не вихід, програматора може під рукою не виявитися, та й незручно кожен раз з прошивкою шаманів. В наслідок цього я серйозно задумався над створенням нормального адаптера, з регульованою швидкістю (і не тільки).
Звичайно, найпростіший варіант - купити FT232, але порівнявши її вартість з вартістю Mega8, я прийшов до висновку, що цей варіант мені не підходить. Тому було вирішено зробити адаптер на МК. А раз він на МК, то робити тільки USART якось не раціонально. Тому непогано було б в цей адаптер засунути ще кілька інтерфейсів, якщо вже робити, то щось універсальне і корисне. Майже відразу в пам'яті спливли "приємні" спогади про встановлення драйверів для адаптера на Tiny2313 (для Windows7 x64 це досить болісно). А це означає, що від пристрою "віртуальний COM" доведеться відмовитися, отже, треба буде написати програму для ПК, інакше робота з пристроєм буде неможлива. Загалом, після обмірковування протягом деякого часу, сформувалася остаточна ідея девайса. Функціонал вийшов ось таким:
- адаптер USB-> USART;
- адаптер USB-> SPI;
- адаптер USB-> I 2 C;
- а пристрій повинен бути HID (Human Interface Device), щоб не морочити голову з установкою драйверів.
Об'єктом знущань став МК Mega8, тому що в TQFP корпусі він займає зовсім мало місця (набагато менше, ніж AtTiny2313) і володіє цілими 8 Кб. пам'яті. Спочатку планувалося зробити все інтерфейси програмними, але після розведення плати довелося відмовитися від апаратного I 2 C, тому що на односторонній платі вивести його ніяк не виходило (в майбутньому все-таки треба буде вирішити це питання, може окремо вивести збоку плати). Тому його функціональність трохи обмежена, але USART і SPI залишилися повнофункціональними. Для зв'язку з ПК була застосована бібліотека V-USB.
Схема пристрою вийшла ось такий:
Як видно, нічого складного в ній немає. МК харчується напругою 5 В., узгодження рівнів для USB виконано за допомогою дільників напруги резистор 68 Ом. + Стабілітрон 3.3 В .. Тактова частота МК - 12 МГц. Це мінімальна частота для роботи з шиною USB. Так само в схемі присутні три світлодіода для індикації режимів роботи. Один з світлодіодів показує, який режим роботи включений, а два інших индицируют прийом / передачу даних. Ніяких кнопок і перемикачів в пристрої не передбачено, і всі налаштування виконуються програмно, прямо з ПК. Так, на все висновки, які використовуються для роботи інтерфейсів включені резистори на 68 Ом. для захисту МК від КЗ. Як уже було відзначено вище, пристрій представляється ПК як HID і не вимагає установки драйверів. VID і PID були обрані з наданих V-USB: VID - 0x16c0, PID - 0x05df. В іншому випадку довелося б віддати кругленьку суму за покупку індивідуального ідентифікатора для USB пристрою. Але тому що проект Open Source і некомерційний, абсолютно вільно можна використовувати ідентифікатори, запропоновані V-USB.
Плата вийшла ось така:
А в спаяному вигляді:
Це був тестовий зразок та ще й розведений з помилками. Я чомусь вважав, що висновок CE виводити не варто. Ну нічого, все вже виправлено і до статті додається правильна плата.
Отже, зі схемою все зрозуміло, він проста до межі і паяется за один вечір. Але, як було сказано вище, вийшло пристрій визначається ПК як HID, тобто ОС підбирає під нього драйвер зі своєї бази. Простіше кажучи, Windows думає, що працює з пристроєм введення. Це робить можливим роботу на будь-якому ПК без мороки з драйверами. Але з цим пов'язана одна невелика проблема, жодна з існуючих програм для обміну даними через USART працювати з цим пристроєм не буде. А значить потрібна якась спеціальна програма для роботи з модулем, інакше він ніякої цінності з себе не представляє. Тому я відкрив свій улюблений C ++ Builder (нині його обізвали CodeGear RAD Studio, що в іншому не змінює сенсу), версія 2007, і написав ось таку програму:
Нічого особливо складного в ній немає, для кожного інтерфейсу присутня деяка кількість налаштувань. Так, одночасно кілька інтерфейсів працювати не можуть, тільки по одному. Працює все це справа дуже просто, при підключенні пристрою до ПК у вікні програми активізуються кнопки, натискання на які запускає відповідний інтерфейс. Потім досить написати дані в поле введення в певному форматі і натиснути кнопку "Send". Для кожного інтерфейсу свій формат даних. Зараз розглянемо їх більш детально:
USART: (Прийом даних йде весь час, поки активний режим, так би мовити, на автоматі)
- відправка кількох HEX чисел, просто пишемо їх через пробіл в необмеженій кількості, наприклад 01 05 fa aa ...
- відправка рядки (текст, числа і т.п.). Тут вже на початку рядка пишеться ідентифікатор S (s), наприклад: s www.сайт
- для відправки даних пристрою формат рядка такий: Адреса (кому передавати і в яку комірку пам'яті) А (а) і Дані D (d). Наприклад: aa3 dfa;
- для запиту даних з пристрою: Адреса (від кого приймати і з якої комірки пам'яті) і ідентифікатор читання R (r). Наприклад: aa3 r
- для відправки даних пристрою: Адреса пристрою (біт читання в 0) А (а) Адреса комірки пам'яті M (m) Дані D (d). Наприклад Аа2 m03 d15
- запит даних виглядає ось так: Адреса пристрою (біт читання в 0) А (а) Адреса комірки пам'яті M (m) Адреса пристрою (біт читання в 1) А (а) Ідентифікатор читання з кількістю елементів пам'яті для читання R (r). Наприклад: aa2 m03 aa3 r1
Для SPI в режимі Slave ніяких команд не передбачено, просто сидимо і чекаємо, поки нам що-небудь пришлють. Для роботи з девайсом підключаємо його до ПК, чекаємо деякий час, поки ОС не повідомить, що драйвера успішно знайдені і встановлені, запускаємо програму і починаємо обмін даними. Все гранично просто, адже простота і була одним з критеріїв при створенні пристрою.
Так, до речі, програма сумісна з усіма версіями Windows, починаючи з Windows XP і закінчуючи Windows 8, і не вимагає для роботи різної екзотики, типу NetFramework і т.п. Як, втім, і сам модуль.
Ось, власне, і все, програма, плата та вихідні додаються.
Фьюз виставляються для роботи від зовнішнього кварцу з високою частотою. Виглядають ось так:
На зображенні LOW фьюз в 1, коли не зазначені, і в 0, коли відзначені. HIGH фьюз навпаки. У шістнадцятирічному вигляді це виглядає ось так: HIGH: D9, LOW: FF.
Ну і звичайно ж відео, тому що краще один раз побачити, ніж ... (USART працює в режимі ехотест (Rx і Tx з'єднані), а SPI і I 2 C тестуються з мікросхемою PCA2129T, стаття про неї)
список радіоелементів
позначення | Тип | Номінал | кількість | Примітка | Магазин | Мій блокнот |
---|---|---|---|---|---|---|
МК AVR 8-біт | ATmega8 | 1 | В блокнот | |||
VD1, VD2 | стабілітрон | BZX55C3V3 | 2 | 3.3 Вольт | В блокнот | |
HL1-HL3 | світлодіод | 3 | В блокнот | |||
C1 | електролітичний конденсатор | 100 мкФ | 1 | конденсатор танталові | В блокнот | |
C2, C3 | конденсатор | 0.1 мкФ | 2 | В блокнот | ||
C4, C5 | конденсатор | 22 пФ | 2 | В блокнот | ||
R1 | резистор | 1.5 кОм | 1 | В блокнот | ||
R2 | резистор | 10 кОм | 1 | В блокнот | ||
R3, R4, R8-R13 | резистор |
Для управління і налаштуванням деяких конструкцій на мікроконтролерах PIC і ATMEGA потрібен зручний їх підключення до комп'ютера або ноутбука. У серії мікроконтролерів PIC16 (на яких я зазвичай і роблю свої саморобки) немає апаратної реалізації USB, але є звичайний послідовний порт UART, який є урізаною версією COM-порту старих комп'ютерів. Робота з ним не викликає особливих труднощів, а також необхідно не багато ресурсів самого мікроконтролера, тому що на відміну від USB в ньому більш простий протокол, який тим не менш дозволяє так само передавати дані. У деяких комп'ютерах все ще є COM-порт, правда іноді він не виведений назовні - в такому випадку для підключення необхідно тільки підключення перетворювача рівнів (наприклад, MAX232), але на новіших материнських платах, а також ноутбуках його немає зовсім.
У таких випадках можна використовувати UART-USB перехідник на поширеною мікросхемі CH340. На сайті Aliexpress її зазвичай продають вже у вигляді готового модуля на платі, але іноді для постійного використання зручніше замовляти її окремо.
В такому випадку мікросхему можна припаяти прямо на свою плату, а там вже встановити гніздо micro-USB для зручного підключення кабелю і більш закінченого вигляду конструкції.
Підключення мікросхеми досить просте навіть для початківця радіоаматора.
Для харчування необхідно 3.3V (VCC), кварц на 12 МГц (Висновки XI і XO), інші висновки використовуються для роботи з COM-портом (для роботи досить RX і TX, інші для передачі сигналів готовності пристрою і на практиці використовуються рідко).
Стаття застаріла - Зараз вже не знайти data-кабелі з USB на старенькі телефони; тому готовий перехідник можна за недорого замовити на аліекспрессе (примітка домовичка сайту).
Чесно кажучи, ми все заледащіли ... наші прадіди могли спаяти схему із сотні елементів за один вечір і не обломлювалися. Нам же подавай все готовеньке. Прикладом є простою перехідник з COM порту на TTL рівень. Здається схема в 5 деталей, а як ліниво паяти. Тим більше що послідовні порти тепер у великому дефіциті. А на ноутбуках так їх взагалі немає. Можна звичайно скористатися інтерфейсом USB, але, хто-небудь пробував його програмувати? Жесть! Та й не всякий контролер його тримає. А ось UART є майже у всіх AVR, причому апаратно реалізований.
Висновок напрошується сам. Потрібен дешевий, простий і надійний перехідник з USB на UART (COM) з рівнями TTL-логіки (0-5вольт). І бажано додатковими ланцюгами харчування, щоб наше пристрій можна було живити прямо від перехідника, не підключаючи додаткове харчування. І такий перехідник є. Причому готовий посперечатися, що ні далі ніж в кілометрі від вас. У будь-якому салоні Евросети можна всього за 300рублей (або 160 як пощастить) купити таке чудо. Простий Data-кабель. Перехідник з USB на телефон. У більшості моделей трубок дані передаються саме через TTL-UART. Тобто послідовний інтерфейс з рівнями напруг 0-5вольт. (Я використовував кабелі для старих ericsson R-320)
Ось так виглядає це диво на прилавку. Всередині - проводок і диск з драйвером. Бажано брати саме такого виду, бо схожі за формою, але без етикетки Евросети - повний відстій: працюють через одного і не розв'язані з компом по харчуванню. Зверніть увагу, що проводок повинен бути з невеликої пластикової коробочкою. У ній вся сіль. Це і є наш перехідник.
Отже, розкурочив наше придбання. Усередині плата з чіпом PL-2303HX компанії Prolific і дві групи контактних майданчиків. Одна - це вхід USB, друга це якраз те що нас цікавить. UART з TTL рівнями сигналу. Залишилося визначити, який із контактів хто. У моєму варіанті це було так:
Отже, нам необхідні тільки GND, RxD, TxD, для особливих естетів можна взяти + 5V для живлення (струм маленький 100мА в стрибку з кепкою) і сигнал DTR якщо потрібно відстежити чи підключено пристрій до комп'ютера (або, наприклад, включити світлодіод прямо в коробочці щоб красиво було, і видно коли пристрій в роботі) Підключаємо землю до землі, приймач до передавача, передавач, відповідно до приймача. От і все. Залізо готове. До речі, на диску є кілька цікавих PDF файлів c описом схеми і самого чіпа. І якщо ваша плата відрізняється від моєї, то просто прослідкуйте до якого контакту яка нога цього чіпа підключена.
Тепер інсталюємо софт з диска ... каталог F: \ 2303dirver \ pl2303new \ newpl2303_setup \ DRIVER \ SETUP ... запускаємо «PL-2303 Driver Installer.exe». Якщо немає диска, то драйвери і додаткову інформацію можна завантажити у компанії виробника PL-2303 USB to Serial Bridge Controller. Що дуже приємно, для даного пристроює драйвера під всі мислимі сістами і операційки (Linux, PDA, Mac OS, ітд.) що істотно розширює коло можливих застосувань.
Почалося все з того, що я купив собі Orange Pi, піддавшись рекламному слогану «аналог Rasberi Pi всього за 15 $». Девайс був замовлений на аліекспрессе і прибув через п'ятнадцять днів ще в лютому. Тоді ж були куплені всі необхідні додаткові компоненти: радіатор на процесор, 15 ватний блок живлення, картка micro SD об'ємом 32 Гб, HDMI-кабель для підключення монітора. Через брак часу він припадав пилом у шухляді столу аж до червня. І ось нарешті дійшли руки перевірити його працездатність.
На стандартних прошивках, пропонованих на офіційному сайті працездатність не викликало нарікань. Але стандартні прошивки мене не влаштовують з тієї причини, що вже так я влаштований - будь-який потрапив мені в руки девайс повинен бути кастомизировать по повній програмі. Тому в руки був узятий U-boot, вихідні коди якого завантажені з офіційного FTP, а так само складання Arch Linux для ARM. В якості опорного мануала і відправну точку для копання був узятий ось цей мануал для Banana Pi.
Шляхом деяких нехитрих маніпуляцій (опис яких більш підходить для Хабра) і завантажувач і арч були поставлені на карту пам'яті і пристрій повинен бути увімкненим. Однак, після завантаження на мене чекав чорний екран і палаючий зелений світлодіод на «апельсині».
Ну не біда, подумав я. На «апельсині» розпаяний UART, підключуся як я до нього терміналом та подивлюся що відбувається. Були куплені необхідні деталі і дріт і спаяний ось такий кабель (картинка під спойлером)
Нубскій варіант кабелю
Той хто в темі, відразу зрозуміє в чому я був неправий, зробивши такий кабель, і таких серед тих, хто читає більше половини. Я ж запідозрив недобре після того як побачив кракозябри, які плював в термінал мій «апельсин». Саме розуміння причини моєї дурнуватій помилки і спонукало мене до дій, описаних нижче.
1. У чому різниця між UART і RS232
Різниця в рівнях. Послідовний інтерфейс, реалізований в Orange Pi і інших подібних пристроях, заснований на TTL-логіці, тобто нульового біту відповідає нульовий рівень напруги, а одиниці рівень в +5 В. RS232 використовує більш високий рівеньнапруги, до 15 В, і одиниці відповідає -15 В, а нулю +15 В. Для збільшення перешкодозахищеності каналу як нуль сприймається будь-який рівень напруги нижче 3 В по модулю. Протокол передачі даних на утраті послідовності логічних значень і у UART і у RS232 абсолютно однаковий. Все це ілюструється наступною діаграмою передачі байта
Ось як я міг про це забути? Під час перебування своєї роботи в електровозобудівному НДІ ці речі я знав. А тут чомусь дурість бовкнув. Загалом стало зрозуміло, що потрібен якийсь перетворювач рівнів з інвертуванням сигналу. Вибір припав у бік підключення всього господарства до COM-порту, який є на матплата мого домашнього комп'ютера. Хоча звичайно можна було подивитися в бік UART<->USB, бо старовинний послідовний інтерфейс неухильно втрачає актуальність. Однак моя схильність до більш простих рішень перемогла і в якості кандидата на придбання сплив ось такий девайс
Продаваний на тому ж «али» за 464 рубля. В принципі, таке можна було знайти і в магазинах або на радіоринку в моєму місті, але свербіж зробити щось руками вже був розбуджений. Тому я відкинув думки про покупку плати сполучення і вирішив спробувати зробити її самостійно.
Треба сказати, що з паяльником я взагалі-то дружу. У школі та університеті до покупки першого комп'ютера пайка будь-якої корисної і не дуже нісенітниці була для мене головним захопленням. Але я жив в селі, були дев'яності роки. Грошей особливо не було, компоненти діставалися шляхом розбирання потрапив в поле зору радіохлама. Джерелом інформації були книги з районної бібліотеки - «інтернети» тоді були далеко не у кожного. Багатого інструменту теж не було. Фольгований текстоліт і хлорне залізо були легендарним дивом. Загалом було важко.
Після покупки комп'ютера вся захопленість переключилася на нього. А скил паяльщика дрібних підсилювачів-пріемнічков покладено на полицю. Так що я «чайник». Тому багато такого, про що я напишу нижче, прошу ставиться поблажливо. І ця стаття, по великим рахункомдля таких же «чайників» як і я.
2. Вибір схеми пристрою і його комп'ютерне моделювання
Схему подібного девайса знайти в мережі раз плюнути. Таких схем реально багато. Вибір припав на таке рішення
Серцем всього пристрою є мікросхема типу MAX232 - перетворювач рівнів, що діє за принципом "зарядового насоса". Підвищення напруги з 5 в здійснюється за рахунок почергового зарядки зовнішніх конденсаторів C4 і C5. У моменти видачі сигналу на RS232 ці конденсатори з'єднані послідовно, і напруга накопичене в них складається. При зворотному передачі мікросхема працює як дільник. В обох напрямках передачі сигналу відбувається його інвертування.
Діод VD1 грає роль «захисту від дурня» - замикає ланцюг харчування при подачі напруги невірної полярності.
Перш ніж приступати до виготовлення пристрою я вирішив подивитися, як все це буде працювати, тому почав з моделювання майбутнього устрою в середовищі Proteus. Для випробування схеми був зібраний віртуальний стенд
Перше що хотілося зробити - змоделювати все, включаючи ланцюги харчування, так як мене цікавив вплив діода на роботу схеми. За замовчуванням в Proteus Піни харчування на мікросхемах приховані і підтягнуті до плюса потрібного рівня і землі. Щоб їх розблокувати, потрібно, по-перше, показати приховані Піни. Для цього йдемо в меню Template -> Set Design Colors і ставимо галку Show hidded pins
В якому ставимо галки Draw body і Draw Name. Після цього виділяємо всю мікросхему, включаючи текст, яким підписані висновки і правою кнопкою меню вибираємо Make Device. Нам буде запропоновано вибрати ім'я для нового пристрою і зберегти його. Все, після цього ланцюга харчування будуть включені в процес симуляції явно.
Далі, передавати по UART будемо щось осмислене, наприклад букву «A» кодованих в ASCII кодом 65 в десятиричное системі числення або послідовністю 01000001b в двійковій. Крім того, щоб ініційований передачу необхідно надіслати стартовий біт з рівнем «0», а для завершення передачі послати один або два стоп-біта рівнем «1». Таким чином, тимчасова діаграма кадру, що передається по UART буде виглядати так
Для формування подібного сигналу використовуємо джерело іменований Digital Pattern Generator (DPATTERN) з настройками виду
Ширина імпульсу в 104 мікросекунди відповідає швидкості 9600 бод. Форма сигналу задається строковим шаблоном де «L» означає низький рівень, а «F» - високий рівень. Відповідно наша рядок буде виглядати як «FLFLLLLLFLF». Контроль прийнятих в RS232 даних будемо виробляти віртуальним терміналом, налаштувавши його так
Не будемо використовувати біт парності, і будемо використовувати один стоп-біт. Крім того, скажімо що сигнал, що подається на термінал инвертирован, що відповідає протоколу RS232. Запустивши моделювання схеми отримуємо осциллограмму сигналів і висновок у віртуальний термінал
Каналом A йде вихідний сигнал, що подається в COM-порт. На каналі B - вхідний TTL-сигнал. У термінал виводиться заповітна буква «A». Таким чином ми переконуємося в тому, що пропонована схема цілком працездатна. В теорії.
3. Підбір і покупка компонентів
З найближчих до місця мого проживання магазинів, де можна розжитися радіодеталями є два заслуговують на увагу: магазин «Радіодеталі» на Будьонівському проспекті (це місто Ростов-на-Дону) та магазин «1000 радіодеталей» на проспекті Нагібін, навпроти ТЦ «Ріо». Останній вигідно відрізняється тим, що у нього є сайт, правда досить древній, і мабуть ліниво оновлюваний (і зроблений на Joomla ...). Поползать по прайсу я підібрав список того, що мені потрібно прикупити.
Відразу скажу, я старанно уникав SMD-компонентів на увазі свою недосвідченість. Тому я вибрав MAX232CPE у виконанні для монтажу в отвори. Такі ж взяв і електроліти і діод. Однак по місце виявилося, що в наявність тільки мікросхема MAX232CWE - те ж саме, тільки ... SMD! Подумавши з секунду я погодився з пропозицією продавця - треба ж колись починати ... конденсатора на 15 В не знайшлося, зате знайшлися на 100 В тій же ємності і тих же габаритів. Ну ладно, теж нічого. Замість роз'єму DB-9 типу «тато» мені запропонували «маму». Таким чином вийшов наступний список
Хлорне залізо, цапон лак і текстоліт, зрозуміло не були використані повністю. Крім того, в цей список я не включив придбаний інструмент: простеньку паяльну станцію (бо до цього мав лише 40 ватним паяльником з мідним жалом), бокорізи і маленькі плоскогубці, ножиці по металу для різання текстоліту, рідкий каніфольно-спиртовий флюс ЛТИ-120 ну і так далі. Загалом ця епопея коштувала мені близько 3000 рублів.
Загалом компоненти були куплені і принесені додому. 40-піновий PLS-колодки були відпиляні під потрібне число контактів. Один з контактів виймуть, з метою забезпечення однозначності з'єднання. Отвір в гніздовий колодці, відповідне вийняти піну забите поліетиленом.
4. Складання на макетної платі і перевірка роботи
В принципі, для такого простого девайса це і не обов'язково. Але я ж «чайник», тому перш ніж робити плату, вирішив все-таки перевірити схему в реальній роботі.
Найскладніше довелося з мікросхемою. Щоб впаяти її на макетну плату довелося перекрутити з подпайкі дванадцяти ніг до мідним провідникам. Вийшов павук-монстр про дванадцять ногах
У цей момент я зрозумів дві речі: добре, що я все-таки купив паяльну станцію. А погано те, що мені доведеться неабияк повозиться з цієї дрібнотою. Загалом компоненти були запаяні на «макетке», схема зібрана з «апелісновой» платою. Харчування +5 В взято з «апельсина» - 2-й контакт на дворядної 40-піновий штирьовий колодці
Для конекту з пристроєм використовувався термінал putty, який є і під Linux, і на відміну від minicom має кольоровий висновок і не вимагає додаткової настройкина введення символів в термінал з клавіатури.
Загалом, плата запрацювала - по екрану терміналу побігли рядки балки завантаження: спочатку від u-boot а потім і від ядра linux
Чи треба говорити як я зрадів: по-перше схема працює правильно, а по-друге - лінукс на «апельсині» встановлено вірно, нормально працює в многопользовательском режимі
Непрацюючий HDMI-роз'єм і відсутність Ethernet-інтерфейсу, таким чином пов'язано з налаштуванням самого дистрибутива. Ці проблеми, зрозуміло будуть вирішені і мова тут не про них. Тому перейдемо до наступного пункту програми
5. Розведення друкованої плати
Робив її в Altium Disigner. Розводку плати краще робити після того, як куплені компоненти. Можливо, як і в моєму випадку, буде потрібно установка додаткових бібліотек компонентів для Altium. Розміри компонентів і топологія посадкового місця для кожного повинні відповідати фактично наявними деталям. Тут про мене не обійшлося без прикру помилку, але про це нижче.
Скажу відразу - не користуйтеся автоматичною розводкою. Можливо це і налаштовується, але авторазводка норовила протягнути доріжку між ніг у конденсаторів, що при відстані в 2 мм між ними робить доріжку шириною близько чверті міліметра, що для мене як для «чайника» було занадто круто. Та й інтуїція підказувала, що таких речей бажано уникати. Тому я використовував ручну розводку (спираючись на результати автоматичної), задавши в правилах розведення ширину доріг 0,5 мм (Design -> Rules -> Routing -> Width)
Крім того, за замовчуванням Altium вважає, що плата двошаровий. Щоб змусити його розводити односторонню плату в правилах розводки слід вказати розводку в одному шарі, скажімо в Top Layer
Схема була набрана в редакторі схем
При цьому треба враховувати той факт, що вільні неподпаянние входи мікросхеми (ноги 8 і 10) слід підтягнути до землі, інакше Altium НЕ скомпілює схему для передачі її в редактор плат.
У підсумку, шляхом самостійних колупання в програмі і уроків Олексія Сабунінамета була досягнута і плата розлучена
Всі компоненти з монтажем в отвори розташувалися з чистою боку текстоліту, а мікросхема, в силу SMD-виконання - з боку доріжок. Для виведення розводки схеми на друк необхідно створити в проекті пристрою так званий Output Job File
Який налаштовується в такий спосіб. У списку опцій налаштування вибираємо Documentation Output і клацаємо на Add New Docimentation Outpu, вибираючи в меню PCB Prints і проект плати, що стосується нашого пристрою.
Перейменовуємо з'явився пункт документації, назвемо його скажімо LUT, по транслітерації технології (ЛУТ), яку збираємося використовувати для перекладу малюнка плати на мідь. Правою кнопкою миші клацаємо по LUT і в контекстному меню вибираємо Configure. В налаштуваннях шарів виводяться на друк залишаємо тільки два пункти: Top Layer і Multi-layer і розставляємо галки як показано на скрині
Галка Mirror потрібна зокрема для дзеркального відображення малюнка на друку. Це важливо, інакше при перекладі малюнка на мідь вийде дзеркальне відображення наших доріжок, а нам це не треба. Крім того, слід заглянути в Page Setup
Щоб вибрати формат паперу і звернути увагу на масштабний коефіцієнт (Scale). При першій друку він виявився рівним 1,36 чомусь, а повинен бути дорівнює одиниці
Тепер тиснемо Print. У мене немає свого принтера, тому я роздрукував в PDF використовуючи Foxit Reader, а потім відніс отриманий файл на флешці в найближчу до мене «шарашку», в якій роздрукував малюнок на глянцевому фотопапері. У підсумку вийшло ось це
Розмір плати вийшов 62 х 39 мм, з цього розміру ножицями по металу вирізаний шматочок текстоліту. Раніше я пиляв текстолит ножівкою і часто (а точніше завжди) це виходило жахливо. Ножицями ж виходить рівненько, без сміття та пошкодження струмопровідного шару.
6. Виготовлення друкованої плати
Був обраний метод ЛУТ (лазерно-прасувальну технологія) через свою простоту і доступність. Керівництвом до дії послужила. Намагався не порушувати технологію: пройшовся по міді нулевкой, знежирити, правда не ацетоном, бо не знайшов де купити, а універсальним знежирювачем на основі уайт-спіриту, купленим в Lerua Merlin. Ретельно і з зусиллям пропрасувати бутерброд з текстоліту і малюнка уюгом на максимальній температурі. Або через те, що десь помилився, або тому що не дав охолонути заготівлі, або просто в «шарашці» економлять тонер на принтері, в загальному вийшло не надто
Однак, я розсудливо запасся перманентним маркером Edding 404, яким, не без допомоги своєї коханої дружини (з прокачаним Скіла підведення вій і малювання візерунків на нігтях) обвів все доріжки
Далі був розлучений розчин 6-ти водного хлорного заліза з розрахунку близько 180 грам на 300 мл води (воду набрав з-під крана, гарячу) і плата була кинута на поталу в кювету для травлення. Щоб протравити плату і не отруїти при цьому дружину, операцію проводив на заході на балконі
«Хлоняк» не підвів, ходять ходять чутки що часто продають неякісний. Травлення зайняло 13 хвилин, останні острівці міді йшли прямо на очах. Головне не забувати періодично штовхати плату пінцетом по кюветі і стежити за процесом. Як тільки зайва мідь зникне, дістаємо плату терміново і промиваємо рясним потоком води.
Після промивання, протирання і просушування настає момент істини. Треба зняти захисне покриття. Я намагався робити це уайт-спіритом,
Але справа йшла туго. Потім дружина запропонувала свою рідину для зняття лаку для нігтів - цей чудо-еліксир змив покриття миттєво (я до сих пір в шоці від того, якими реактивами користуються наші жінки. Краса - страшна сила!)
Чи не підвів і маркер - все доріжки вціліли
Після очищення захисного покриття можна приступати до свердління отворів. І ось тут я зробив прикру помилку - у мене не виявилося свердла на 0,5 мм, і замість того щоб відкласти справу до завтра, купивши потрібну свердло, я поквапився і взяв міліметрове, вважаючи що воно підійде. У підсумку я пошкодив багато контактні площадки, на щастя не сильно і не безповоротно. Але все ж ніколи не поспішайте. Як казав мій знайомий Марк з лабораторії кафедри мехатроніки Мюнхенського університету, де я проходив переддипломну практику «Дмитро, для кожної роботи бери відповідний інструмент». І він був тисячу разів правий.
7. Лудить плати і пайка компонентів
Місця пайки компонентів повинні бути покриті тонким блискучим шаром припою. Це основна умова успішності роботи. Я не став лудити доріжки цілком. По-перше, побоявся образити їх, а по-друге все одно збирався покривати плату цапон лаком. Так що я облуди лише місця пайки. Для цього пензликом наносимо на них каніфольно-спиртовий флюс ЛТИ-120 і паяльником, розігрітим до 250-300 градусів, з жала якого звисає крихітна крапелька припою, проводимо по потрібних крапок плати. За рахунок збільшення флюсом поверхневого натягу припій розтікається по точно контактних площадок.
Після цього була розібрана «макетке», проводки видалені з мікросхеми і в першу чергу була припаяна вона. Акуратно руками або пінцетом поміщаємо мікросхему на її місце відповідно до цоколевкой, так щоб кожна ніжка зайняла свою площадку. Потім ряди ніжок змащуємо флюсом. Короткими і точними рухами торкаємося всіх ніжок по черзі, не забуваючи набирати припій на жало паяльника (але не надто багато, досить маленької краплі). Якщо все зроблено правильно, то ніжки паяются до майданчик дуже швидко і точно, без «соплів» і замикання сусідів. На запаювання мікросхеми у мене пішло менше хвилини, а я роблю це вперше. Надихнуло мене на цей подвиг таке відео, За що я дуже вдячний його автору. Все виявилося дійсно не так страшно.
Схожим чином я розібрався і з іншими деталями. Головне тут акуратно обрізати висновки деталей на потрібну довжину - я залишав стирчати над доріжкою не більше міліметра виведення, і правильно і акуратно зігнути їх, якщо потрібно. Важливо, вкрай важливо нікуди не поспішати і робити все вдумливо. У результаті вийшло те що вийшло
Від «соплів» піти не вдалося, але для першого разу вийшло досить непогано, хоч мене, ймовірно і розкритикують.
8. Перевірка ланцюгів і ще одна прикра помилка
Після пайки змиваємо весь флюс спиртом, беремо в руки мультиметр і дзвонимо все ланцюга, з метою перевірки їх провідності і відповідності принциповій схемі. І ось тут бяка підкралася непомітно. Роз'єм COM-порту виявився розпаяна дзеркально! «Земля» сиділа на першій нозі замість п'ятої, Rx - на четвертій замість другої. І я до сих пір не зрозумію як, адже при розведенні в Altium все було вірно. Це залишилося для мене загадкою. Ніякої загадки - просто маючи за фактом роз'єм «маму», при формуванні схеми в Altium все одно використовував «папу». Звідси і дзеркальна розпаювання, вийшла в підсумку. На щастя я вирішив цю проблему відповідної розпаюванням кабелю, призначеного для підключення девайса в COM-порту комп'ютера. Але через цю помилку COM на платі виявився таким ось «пропрієтарним».
В іншому монтаж виявився вірним і я, розпаяно сполучні кабелі і прибравши робоче місце, Підключив новеньку плату до «апельсину» і комп'ютера
За вікна терміналу знову побігли рядки балки завантаження. Я був щасливий!
9. Наводимо «красу»
З метою захисту контактів від окислення і додання девайсу виду «промислового» плата була забарвлена зеленим цапон лаком. Всі мітки, нанесені перед монтажем перманентним маркером були цим самим лаком змиті. Ну да ладно ... Ось фото готового виробу разом з комплектом кабелів
Тепер можна приступити до подальшої доведенні ПО для «апельсина». Тепер я не буду сліпий і німий, а зможу налагоджувати систему через послідовний термінал.
висновок
Це було цікаво. Цікаво для мене, тому що вперше. Перший пристрій спроектоване на комп'ютері і зібране на друкованій платі своїми руками. І якщо хтось іронічно посміхнеться, то нехай згадає, що він теж колись робив це вперше ...
Спасибі всім за увагу, приділену моєї писанини!
Це широко відома у вузьких колах і всенародно улюблена FT232R. Дуже надійна, стабільна, підтримувана всіма операційними системами по дефолту. Загалом, рулез.
Нестачі у ній три:
- Дорога, що то близько 150 рублів
- У bitbang режимі працює ДУЖЕ повільно, через що її не можна застосовувати з програматором Громова та інших елементарних COM программаторах з гівна і палиць. .
- Дрібна шо писар, паяти і розводити її так це вирви око. Втім, після QFN мені нічого не страшно. Прорвемося!
Є ще старіша FT232BM вона робить те ж саме, але їй треба дофіга обв'язки. Кварц, ще купа кондерів всяких. Ну її в пень.
Ось що, власне вийшло:
Це друкована плата, файл з макросом цього микроблока для Sprint Layout буде в кінці статті.
Розвелося досить легко, на подив ноги не перехрещені виходили. Я аж здивувався. Також насобачився туди світлодіодів - Харчування, RX і TX так що вона у мене тепер косить під новорічну ялинку.
Далі відчеканив лутом планку відразу на чотири примірники з яких один виявився косячний. Ні, вийшов він ідеально, що що, а по ЛУТ у мене звання не нижче старшого джедая, але чому то він був дзеркальний ... О_о Мабуть випадково тицьнув на отзеркалить і не помітив.
Ось плата перед зануренням в травильний розчин. Зубочистка для масштабу лежить. Ну і я їй доріжки підчищав від глянцю.
Залуділ при 230 градусах. Вище не можна, крихітні пади поотлетают тільки так. Та й при 230 треба ДУЖЕ ніжно і швидко. Можна було лудити сплавом Розі. Лудити тут треба, інакше ризик отримати непропай під висновками, а результат тут візуально не проконтролюєш.
Так, у багатьох аксесуарах де стоїть COM можна викинути MAX232 і поставити туди FT232, але навіщо плодити сутності? Якщо мені потрібна зв'язок з компом, то я просто залишаю RX TX GND Піни і вішаю на них або той же MAX-шнурок, або ось зараз цей мікроблочек. Так що однією мікросхеми вистачить на все часи :)
Файли до статті:
бонус:
Що то мене на письменство поперло, видать позначаються спирти в мізках і відсутність інтернету - відключили за несплату :) Пишу поки «в стіл» ... Дам ка короткий мануал по пайку радіо пилу.
Як паяти таку дрібноту:
Коли я допетрю як закріпити фотік так, щоб це можна було адекватно записати те буде відео. А поки на словах.
Підготовляти полігон:
- В одній руці пінцет, в інший зубочистка.
- Плата надійно закріплена на столі. Можна прям на двосторонню липучку приклеїти до столу. У мене в мінітісках затиснута.
- Контактні майданчики рясно змащені флюсом.
спочатку позиціонування
- Пінцетом максимально точно виставляємо микрухой на майданчики. Причому нам важливо щоб хоча б один з крайніх висновків встав рівно, Будь-який який тобі зручніше. Решта якомога ближче до ідеалу.
- Тільки виставив, не відпускаючи пінцетом зверху притискаєш її вістрям зубочистки, міцно притискаєш. Пальцем не можна - палець товстий і ти її зрушиш, а зубочистка у перших гостра і тисне в одній точці, по-друге дерев'яна, а значить не розкришити ніжну микрухой.
- Не відпускаючи зубочистку я зазвичай її перехоплюю іншою рукою (лівої), а правою хапаю паяльник. Микруха при цьому не ворушиться ні на волосся. Оскільки тиск тільки в одній точці, вниз, то обертального моменту там просто нема звідки взятися.
- Припаюю ОДИН крайній висновок.
- Якщо мікросхема стоїть як і раніше рівно і тебе все влаштовує, то тут же пріхивативаешь крайній висновок з іншого боку, а потім два крайніх з іншого ряду.
- Якщо ж микруха коштує трохи криво, то ти можеш її спробувати трохи покрутити щодо припаянности ніжки, чуть чуть. На частки градуса, аби інші ніжки встали. Як встануть - прихоплюй другу. Ну, а далі нікуди вона не дінеться.
Ну і припаюють інші висновки:
- Угажіваешь все висновки флюсом і взявши зовсім небагато припою на жало, реально мало - 1мм дротяного припою діаметром 0.5мм. Якщо немає такого припою, розплющити той що є в фольгу.
- Цю крапельку спокійно розмазувати по висновків. Вона повинна добре розтектися НЕ зліплені висновки. Головне флюсу не шкодувати.
- Надлишки припою знімаються сухим паяльником або зафлюсованним багатожильним проводочков, який вбере їх в себе.
Важливо!
Якщо ви крутили мікросхему щодо будь-якої ніжки, то в кінець, коли припаяти інші ніжки, треба торкнутися цього першого виведення паяльником, щоб він відпаявся і знову припаявся - зняти механічне напруження, яке там могло виникнути.
Має вийти приблизно ось так:
UPD:
За розведення спасибі Rol20