Отладочная плата для К1986ВЕ1QI

В этот раз посмотрим на одну плату, спроектированную ещё в 2015-м году за одну рабочую неделю. Надо было срочно спроектировать схему («для себя», сдавать документацию не требовалось), развести плату и отдать герберы на изготовление платы, сроки, как обычно, «еще вчера надо». Правда, в итоге проект так не дошел до логического завершения по некоторым причинам… Наработки же остались, чтобы они бесполезно «не пылились» на NASе, я решил сделать небольшую статью и выложить проект для Альтиума как он есть с некоторыми замечаниями да объяснениями (исходники выложить не могу, а вот железячную часть — без проблем). Думаю, это пригодится как и разработчикам ВП, так и студентам (заметил, что немало материала у меня берут для курсовиков и дипломов :) ), мне не жалко, даже приятно, если этот материал пригодится кому нибудь ещё.

B6-0

Общие требования

Проект планировался как что-то типа серии управляемых по Ethernet контроллеров на российской элементной базе для автоматизации пультов и других промышленных объектов. Исходя из этого требовался как минимум Ethernet и достаточно много разнообразного типа IO портов. Первостепенно требовался вариант с приёмкой ОТК в виде отладочной платы, на которой можно было максимально просто и быстро опробовать различные идеи программной части.

Общие требования к отладочной плате в итоге вышли следующие:

  • Приёмка ОТК как можно дешевле для отладочных целей;
  • Если не полностью, то с максимальной возможностью перевода комплектации в последующем на отечественные компоненты;
  • Ethernet 10\100 Мбит для организации управления и контроля состояния;
  • Минимум 20 шт I\O пинов с различными типами входа\выхода;
  • CAN и RS-485 для сопряжения с относительно локальными устройствами.

Из дополнительных и необязательных опций добавлено в процессе проектирования:

  • Установка графического ЖКИ от МЭЛТ (а также возможность на его место установить китайский ЖКИ 320*240 с SPI интерфейсом и тачем — TJCTM24024-SPI);
  • Выведены все свободные I\O на гребёнку для максимально легкой отладки или подключения других модулей;
  • Выведены на отдельные разъёмы SPI, UART интерфейсы;
  • Задействованы АЦП и ЦАП в качестве звуковых трактов по одному каналу и дополнительно выведено по одному каналу с буферами на BNC разъёмы;
  • Микрофон на плате и селектор аудио-входа;
  • Светодиоды, чтобы помигать было чем;
  • Немного усложнённая система питания с автовыбором, от какого источника питаться (USB или разъём питания через DC-DC преобразователь);
  • MicroSD холдер (для игрушек, типа поднятия WEB-сервера);
  • Энкодер с кнопкой для простого управления;
  • USB Device разъём;
  • Кварц для RTC и дополнительно для сравнения работы с внутренними часами установлены внешний RTC по SPI — PCA2129T;
  • Контрольные точки, их мало не бывает!

Схемотехника

Скачать полную схему в PDF вот тут — К1986ВЕ1QI-Dev.Board Schematic. А далее разберём по кусочкам со всеми косяками, что мною были допущены при спешке.

Начнём с аналоговой части. Эпик фейл тут в том, что я перепутал прямой и инверсные входы DA4, на схеме ниже я уже поправил, как должно быть, но это был самый эпичный фейл из-за спешки. В остальном же тут обычный простейший микрофонный усилитель на ОУ K1407УД2Т, который был в наличии (так-то его применение в целом ничем более, кроме низкого питающего напряжения и невысоких шумов, не аргументированно):

B6-1

Далее усилитель для наушников, схема практически стандартная на довольно древнем MC34119, но для стабильной работы впаянного белорусского аналога IL34119D потребовалась RC цепочка 10 Ом + 0,1 мкФ на выходе (напаял на разъём):

B6-2

Оставшиеся вход АЦП и выход ЦАП были просто выведены на BNC разъёмы (как оказалось, не лучшее решение, лучше бы SMA поставил) через буферы на
Rail-To-Rail ОУ MCP6001UT для возможных экспериментов:

B6-3

Примечание: номиналы аналоговой части на схеме толком не рассчитывались и уже корректировались к приходу печатной платы, поэтому не опирайтесь на номиналы, стоящие в проекте альтиума!

Далее цифровая часть. Следующий фейл по спешке, чуть менее обидный, это согласование уровней. У МК К1986ВЕ1 часть портов толерантна  к 5 В, а часть нет — смотрим в спецификации, какие пины толератны:

B6-20

А если по простому, то если на порте на каком-либо пине есть аналоговая периферия, то не следует его использовать с 5 В уровнями.

Смотрим на схему включения драйверов RS-485 К5559ИН10БSI и CAN К5559ИН14АSI:

B6-4

Вроде бы ничего криминального. А теперь смотрим, куда же подключены выводы RS-485 и CAN:

B6-5

Правильно! По соседству на портах с АЦП и ЦАП…молодцом. :) Не делайте таких глупых ошибок. Выход в данном случае — применить микросхемы с питанием 3,3 В (в качестве примера для CAN — MAX3051ESA и для RS-485 — SN65HVD12IDREP) с доработкой питания (сменить с +5 В на + 3,3 В).

Примечание: хоть в спецификации и написано, что PE (3-5, 8-15) толерантны к 5 В, но при впаивании CAN драйвера портилась работа ЦАП, появлялось постоянное смещение на выходе, поэтому лучше вообще не использовать порты целиком с 5 В уровнями, если на порте есть аналоговая периферия!

Далее, ЖКИ с SPI на ILI9341 и тач-скрином на ADS7843 (или, скорее всего, будет стоять его китайский клон — XPT2046):

B6-6

Вроде бы вполне неплохо, но и тут есть проблема — я объединил SPI для самого ЖКИ и для тач-контроллера, не посмотрев, что тач-контроллер довольно медленный и может работать на частоте до 2 МГц, в то время как ILI9341 спокойно на 12 МГц и выше для быстрого обновления картинки… В итоге путей решения два: программный, постоянно переключать скорость SPI, что даст задержки в обновлении ЖКИ, и аппаратный, переключить тач-скрин на другой SPI.

SPI так же используется и для microSD карточки, холдер 112J-TDAR-R:

B6-7

С такой сложной схемой проблем не возникло. :)

Да, все nCS для SPI не забываем подтянуть к питанию:

B6-8

И последнее, что сидит на одной из SPI шин — RTC PCA2129T, также никаких проблем:

B6-9

Интерфейс Ethernet незатейлив, схема из даташита, на выходе разъём со встроенным трансформатором — SK02-111015NL (в УГО схалтурил, нарисовал как обычный разъём), если делать на отечественных компонентах, то можно поставить трансформатор ТрС-ЛС*, ферритовая бусина BLM21PG331SN1, но можно и без последней:

B6-10

Мелочь, но стоит о ней помнить для использования одновременно USB\Ethernet на К1986ВЕ1 и просто удобства написания ПО:

B6-11

Требуется поставить 2 кварца (для RTC 3й не в счёт) — на 25 МГц для Ethernet PHY и на 8 МГц для остального (а лучше 12 МГц, чтобы можно было достичь максимальной тактовой частоты в 144 МГц).

Также на фрагменте схемы выше можно заметить, что вывод CM (6) — смещение для средней точки приёмника не подключено, что вполне допустимо согласно спецификации (цитата, стр.397):

В микросхемах К1986ВЕ1QI, 1986ВЕ1Н4 и К1986ВЕ1Н4 вывод CM подключается согласно схеме. В микросхемах 1986ВЕ1Т, К1986ВЕ1Т, К1986ВЕ1ТК вывод CM отсутствует, остальные подключения выполняются согласно схеме.

Просто «сделаем вид», что СМ вывод не доступен. :)

Контрольные точки, контрольных точек мало не бывает!!1 %)

B6-12

В подключении JTAG ничего примечательного, разве что, когда поначалу использовали ULink2 (по опыту использования — барахло ещё то, лучше взять
J-Link Edu хотя бы), при R59, R60 = 47 кОм всё ОК, а при = 10 кОм ULink2 не может подключиться к МК (настолько слабые выходы что ли ?… ), шлейф стандартный из комплекта был (около 10 см):

B6-13

А вот тут привет Ардуино. :) Почему? Да просто селектор питания сделан примерно аналогично тому, что в последних платах Ардуино Uno — на компараторе LM393MX (отечественный аналог К1464СА1АТ). DC-DC же сделан на основе MC34063A (отечественный аналог К1156ЕУ5АТ), который просто достать, и для малого тока вполне нормально работает, но, для использования в контроллерах автоматизации на производстве не рекомендую, лучше искать более надежную в боевых условиях замену (хотя именно на российской элементной базе это будет довольно сложно, в качестве примера альтернативы — К1290ЕФ1Х).

B6-14

Аналоговое питание вообще незатейливое, на плате сделано на LM1117MPX-ADJ, в бою же в качестве замены использовать КФ1158ЕН3.301 (или другие, из этой серии):

B6-15

Единственное, с чем может быть проблема — L6, L7, на плате установил ферритовые бусины BLM21PG331SN1, а вот отечественных SMD ферритовых бусин вроде бы не водится ещё…

Разводка

В разводке же никаких хитростей нет, толком никакого выравнивания длин, нет и расчетов для волнового сопротивления дорожек USB, Ethernet. Просто сделано достаточно аккуратно и с грамотным подходом к питающим шинам.

Плата 4-х слойная, расположение слоёв:

  1. Top Layer — почти весь обвес, типа аналога, питания, RS-485, CAN и элементов управления на этом слое.
  2. Power — слой питания полигонами, различные уровни питания распределены на свои участки.
  3. GND — самый простой слой, заливка всего одним полигоном, без разделений на аналоговую\цифровую земли, это компромисное решение, если нет времени\опыта в проектировании смешанных плат с аналоговыми и цифровыми блоками на единой плате.
  4. Bottom Layer — всё оставшееся, цифровая часть во главе с 1986ВЕ1QI.

По слоям (кликабельно):

Это слайд-шоу требует JavaScript.

Основные рекомендации в разводке, которые стоит выделить при проектировке подобных плат:

  • Полигоны и переходные отверстия — для уменьшения паразитных компонентов, увеличения теплоотвода создайте правило прямого подключения полигона к переходным отверстиям без теплового барьера;
  • Полигоны и пады компонентов требуется с большой осторожностью подключать напрямую к полигонам, лучше воздержаться от этого и использовать прямое подключение только в случае протекания через пад больших токов или критичных моментов на паразитные компоненты, теплоотдачу от нагревающегося компонента, иначе в случае необдуманного прямого подключения к полигонам можно обзавестись такими проблемами, как:
    • при пайке паяльной пастой SMD компонентов в случае несимметричного отвода тепла от падов компонента они могут не корректно центроваться, не пропаиваться отдельные выводы, появляться замыкания на микросхемах или компоненты будут становится «гробиком»;
    • выводные компоненты могут не пропаиваться или пропаиваться с большим трудом вследствие возможной большой теплоотдачи с пада на полигон.
  • Подключения к падам небольших SMD компонентов следует делать максимально симметрично по отводимой площади и близости переходных отверстий относительно пада, иначе возникнут проблеме при пайке, особенно в случае применения паяльной пасты;
  • При расчетах волнового сопротивления можно воспользоваться встроенными средствами Альтиума, предварительно настроив параметры и правила, или, в простом случае, быстрее даже будет воспользоваться такой отличной утилитой, как Saturn PCB Design Toolkit, в которой немало и других полезных инструментов (новичкам настоятельно советуется!);
  • Питающие дорожки желательно утолщать и делать дублирующие переходные отверстия, при переходах на другие слои для минимизации паразитной индуктивности и сопротивления;
  • Для внутренних слоёв питания и общего провода в альтиуме лучше использовать Internal Plane вместо обычного слоя — это даёт больше гибкости и удобства в разводке, поначалу непривычно, т. к. разделять заливки в слое требуется обычными линиями, но потом очень удобно (на плате из статьи этого не сделано!)
  • Повторяться смысла нет, т. к. довольно хорошие рекомендации для новичков можно прочитать в этой статье 7 правил проектирования печатных плат, рекомендуется к прочтению!

Ну и, конечно же, советую изучить саму плату в альтиуме, скачав проект целиком К1986ВЕ1QI-Dev.Board Altium Project.

Рабочий экземпляр

Этот раздел просто как эстетическое дополнение, фотографии одного из нескольких собранных экземпляров (кликабельно):

Ссылки

 

Реклама

Добавить комментарий

Please log in using one of these methods to post your comment:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

w

Connecting to %s