Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Покритикуйте трассировку и саму схему, пожалуйста
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Работаем с трассировкой
SergeyIv1
Добрый день.

Разрабатываю схему. Цель - сбор информации с датчиков, в зависимости от данных - вращать шаговые двигатели, а также обрабатывать данные и передавать по bluetooth. В качестве контроллеров используется Arduino Nano, извините.

Всё работает достаточно хорошо. Но иногда возникают помехи. Или изредка вообще всё перестает работать, помогает только включение и выключение.

Может быть надо что-то изменить в трассировке? Как правильнее взаимно расположить чувствительные датчики, каналы от них и контроллеры шаговых двигателей?

Схема:



Трассировка верх:



Трассировка низ:

EvilWrecker
Цитата
Всё работает достаточно хорошо. Но иногда возникают помехи. Или изредка вообще всё перестает работать, помогает только включение и выключение.

"Хорошая работа" теперь так выглядит? Интересно laughing.gif Но плату текущую можете однозначно выкидывать и начать читать гайды по разводке- самые первые ссылки из гугла. В самую первую очередь про разводку земли и питания.
SergeyIv1
Цитата(EvilWrecker @ Jan 20 2017, 06:29) *
"Хорошая работа" теперь так выглядит? Интересно laughing.gif Но плату текущую можете однозначно выкидывать и начать читать гайды по разводке- самые первые ссылки из гугла. В самую первую очередь про разводку земли и питания.


Ссылку можете дать?
EvilWrecker
Цитата(SergeyIv1 @ Jan 20 2017, 08:33) *
Ссылку можете дать?

А просто вбиваете в гугле "pcb design guideline" и на самой первой странице чекаете пдфы.
AlexandrY
Цитата(SergeyIv1 @ Jan 20 2017, 07:20) *
Может быть надо что-то изменить в трассировке? Как правильнее взаимно расположить чувствительные датчики, каналы от них и контроллеры шаговых двигателей?



На схеме верхней платы показаны датчики по I2C, которых на плате нет.
Что за датчики? Гироскопы-акселерометры?

Дело скорее всего в подвисаниях I2C.
Вставьте для начала резисторы в I2C между верхней и нижней платами, должно все исправиться.

Но возможно и чисто программный баг. Программу пишите сами?

Трассировка тут имеет наименьшее значение.
Ардуинки сами по себе хорошо страссированы и микроконтроллеры у них достоточно непробиваемые.
novikovfb
Цитата(AlexandrY @ Jan 20 2017, 09:50) *
Дело скорее всего в подвисаниях I2C.

+1
а лучше - вообще отказаться от i2c через скользящие контакты в пользу интерфейса, не зависящего от подтягивающих резисторов и сопротивления линии, например, RS-232.
SergeyIv1
Цитата(AlexandrY @ Jan 20 2017, 06:50) *
На схеме верхней платы показаны датчики по I2C, которых на плате нет.


Да, акселерометр. Их действительно нет на плате, они вставляются в разъемы. На схеме это тоже разъёмы. Может не понятно нарисовано, извините.

Цитата
Вставьте для начала резисторы в I2C между верхней и нижней платами, должно все исправиться.


Так уже пробовал. Просто перестает работать связь. Может, номинал не тот? Ставил 1КОм и 10КОм.

Цитата
Дело скорее всего в подвисаниях I2C.


Возможно, но этот датчик не критичен. Самое важное, это что иногда возникают проблемы с UART-датчиком (разъем к нему слева вверху) и с Bluetooth.

Цитата
Но возможно и чисто программный баг. Программу пишите сами?


Нет, я профессиональный программист. Без ложной скромности. Программа наоборот компенсирует всякие проблемы схемы.

Цитата
Ардуинки сами по себе хорошо страссированы и микроконтроллеры у них достоточно непробиваемые.


Тут есть нюанс - Arduino UNO действительно работает очень хорошо. И когда она стояла в прототипе, помех почти не было. Но когда поставил Arduino Nano, начались проблемы.


Цитата(EvilWrecker @ Jan 20 2017, 06:43) *
А просто вбиваете в гугле "pcb design guideline" и на самой первой странице чекаете пдфы.


К сожалению, так можно пол-интернета прочитать, а эффекта не достигнуть.

Насчет того, что надо как-то экранировать питание и контроллер двигателя - я согласен, но как именно?

Цитата(novikovfb @ Jan 20 2017, 07:15) *
+1
а лучше - вообще отказаться от i2c через скользящие контакты в пользу интерфейса, не зависящего от подтягивающих резисторов и сопротивления линии, например, RS-232.


Спасибо, я подумаю о такой переделке.

Но тоже нюанс - сейчас больше всего глючат именно RS232 датчики и Bluetooth, который тоже RS232.
EvilWrecker
Цитата
Трассировка тут имеет наименьшее значение.

Ну конечно- ведь подвисания I2C оказываются умеют вешать всю плату, ага. А разводка платы это типа "соединить А и Б дорожкой", ага. Хотел уже и тут гайд предложить читать, но потом вспомнил ваши "платы" и наваждение прошло laughing.gif

Еще раз- основная и главная проблема этой платы с которой нужно начинать это земля и питание. Именно в такой последовательности. Пока оно не станет нормальным говорить о чем-либо дальше нет смысла.

Владимир
"Подвисания" I2C могут решаться программным образом, даже при плохой земле. Хотя это не всегда полезно. Так как в ответственный момент двигатель не работает из-за устранения "подвисания". Если устранение идет быстро-- может и не страшно, но кто даст гарантии?
Цитата
глючат именно RS232 датчики и Bluetooth

Земля (питание) батенька. Тут они никакие. Их вообще нет

EvilWrecker
Цитата
"Подвисания" I2C могут решаться программным образом, даже при плохой земле.

Можно, да- но это если "решающая" часть не зависла, в связи с чем очень быстро можно скатиться к проблеме курицы и яйца. Поскольку сказано что:
Цитата
Или изредка вообще всё перестает работать, помогает только включение и выключение.

то явно проблемы надо искать не в I2C а в
Цитата
Земля (питание) батенька. Тут они никакие. Их вообще нет

SergeyIv1
Ясно, питание переделаю. (Хотя от примера бы не отказался).

А насчет экранирования блоков можете что-то подсказать?
novikovfb
Цитата(SergeyIv1 @ Jan 20 2017, 09:20) *
Или изредка вообще всё перестает работать, помогает только включение и выключение.

как вариант - возникновение "тиристорного эффекта" в КМОП микросхеме из-за пропадания и восстановления контакта земли или питания на фоне подачи входного сигнала. Обычно это сопровождается существенным увеличением потребляемого тока. Обратновключенные в нормальном режиме диоды Шоттки между сигнальными цепями и цепями питания могут помочь, но гарантий не дают.
AlexandrY
Цитата(SergeyIv1 @ Jan 20 2017, 09:34) *
Ясно, питание переделаю. (Хотя от примера бы не отказался).

А насчет экранирования блоков можете что-то подсказать?


У вас не плата, а ребус какой-то.
В упор не разглядел где на плате нижнего блока КРЕН5 стоит.
Самое важное, это где находятся выводы контактного кольца. Тоже не вижу.

В I2C надо врезать не более 100 Ом. Этого хватит.

Экранирование здесь абсолютно ничего не даст.
Отрежьте ноги питания от ULN2003 и присоедините их проводами напрямую к разъему POWER.
В остальном трассировка сносная.
SergeyIv1
Добавил земляной полигон:



Ваше мнение?

Цитата(AlexandrY @ Jan 20 2017, 08:59) *
В упор не разглядел где на плате нижнего блока КРЕН5 стоит.


КРЕН временно убран, т.к. не было толку (извините, сразу не написал). Вверху - полная схема, как хотелось бы. Трассировка - уже с учетом реалий.
Также убраны 2 сопротивления 10К, подключающиеся к I2C.

Цитата
Самое важное, это где находятся выводы контактного кольца. Тоже не вижу.


Разъем вверху нижней платы.

Цитата
В I2C надо врезать не более 100 Ом. Этого хватит.


В оба контакта вставить по 100 Ом?


Цитата(novikovfb @ Jan 20 2017, 08:50) *
Обратновключенные в нормальном режиме диоды Шоттки между сигнальными цепями и цепями питания


Покажите пример такого подключения, пожалуйста.
_Sergey_
Цитата(EvilWrecker @ Jan 20 2017, 09:45) *
Еще раз- основная и главная проблема этой платы с которой нужно начинать это земля и питание. Именно в такой последовательности. Пока оно не станет нормальным говорить о чем-либо дальше нет смысла.


+1
SergeyIv1
Цитата(AlexandrY @ Jan 20 2017, 08:59) *
Отрежьте ноги питания от ULN2003 и присоедините их проводами напрямую к разъему POWER.


Не могу понять - как контроллер будет крутить двигатель, если отрезать ему питание?
novikovfb
Цитата(SergeyIv1 @ Jan 20 2017, 12:25) *
Покажите пример такого подключения, пожалуйста.

что-то вроде этого:

диоды нужны, чтобы на входе КМОП ИМС не возникло напряжение, достаточное для открывания внутреннего паразитного тиристора (0,7 В и более от питания)

SergeyIv1
Цитата(novikovfb @ Jan 20 2017, 09:33) *
что-то вроде этого:


Ясно, спасибо!

А для каналов UART тоже так стоит сделать?

И надо ли туда тоже поставить небольшое сопротивление?
novikovfb
Цитата(SergeyIv1 @ Jan 20 2017, 12:36) *
Ясно, спасибо!

А для каналов UART тоже так стоит сделать?

И надо ли туда тоже поставить небольшое сопротивление?

если используются стандартные UART приемопередатчики (которые ТТЛ уровни преобразуют в +/-12 В и обратно), в них все необходимые защиты уже есть, Если напрямую ТТЛ уровнями - надо. Сопротивление последовательно с выходом передатчика поставить стОит.
ikm
Цитата(SergeyIv1 @ Jan 20 2017, 10:34) *
Ясно, питание переделаю. (Хотя от примера бы не отказался).

А насчет экранирования блоков можете что-то подсказать?


Экранировать вам тут точно ничего не надо.

Если наиболее кратко и доступно.
По питанию и земле возьмите для начала как правило: запрет прохода цепей питания от одного устройства к другому через контактные площадки третьего блока. Должно быть одна линия с ответвлениями к каждому блоку либо все линии сходятся в одной точке от источника питания (предпочтительно для силовых блоков). Если вешаете датчики или м/сх с интерфейсами, то только прямое соединение ВСЕХ линий между двумя блоками, без подключения к лини питания других блоков (тут лучше не применять правило сведения в одну точку), и тут не стоит надеяться на земляной полигон если что то будет стоять по середине.
Так же в цепи питания НУЖНО ставить конденсаторы, причём как электролитические так и керамику. Какую и где обычно надо смотреть в даташите на конкретную м/сх. В вашем случае нелишним будет электролит до 22-100мкФ у каждой м/сх в том числе и КРЕН и плюс керамики 0,001мкф +0,1 мкф от помех (прямо на ножки м/сх).
А так для общего понимания что и почему почитайте как делают УМЗЧ и блокв питания, там доступно описаны пути протекания токов, этого хватит для начального уровня.
SergeyIv1
ikm, спасибо, по разводке понятно! Сделаю единую линию питания по внутреннему контуру.

Цитата(ikm @ Jan 20 2017, 09:50) *
В вашем случае нелишним будет электролит до 22-100мкФ у каждой м/сх в том числе и КРЕН и плюс керамики 0,001мкф +0,1 мкф от помех (прямо на ножки м/сх)


Пожалуйста, покажите пример такого подключения конденсаторов к микросхемам. Не до конца понял, как их "прямо на ножки" повесить.

Любой пример бы подошёл.
ikm
Цитата(SergeyIv1 @ Jan 20 2017, 12:08) *
ikm, спасибо, по разводке понятно! Сделаю единую линию питания по внутреннему контуру.



Пожалуйста, покажите пример такого подключения конденсаторов к микросхемам. Не до конца понял, как их "прямо на ножки" повесить.

Любой пример бы подошёл.


Ну к сожалению на вашей схеме тяжело орентироваться. Так же земля UNL...-1 почему то подключена к GND2.
Я имел ввиду физически, если ножки питания м/сх расположены рядом, то между ними чип конденсаторы размером 0805, если нет, то берем выводной и один конец в Vcc второй в GND ( которая отвечает за питание).
Например от электролита идут две дорожки питание и земля, их можно проложить вдоль нескольких м/сх работающих в одной связке, а вот делая отводы к каждой м/сх, на эти отводы вешаем керамику. Если например у тебя две интерфейсных микросхемы работают друг с другом или нужно подключить датчик, то их нужно подключать к одному и тому же отводу от общей цепи питания.

И ваш полигон лучше точно не будет, а вот хуже может.
Владимир
Цитата(SergeyIv1 @ Jan 20 2017, 11:25) *
Добавил земляной полигон:

Если так добавлять, то это тоже самое
EvilWrecker
Цитата(Владимир @ Jan 20 2017, 13:00) *
Если так добавлять, то это тоже самое

+1
ikm
Да, для начала приведите схему в порядок, хотя бы наименование цепей. Сначала целиком без разъёмов, посмотрите что с чем должно быть связано не прерывно. А потом уже вставляйте в разрыв ваши разъёмы. И при трассировке придерживайтесь схемы, группируя элементы вместе.
SergeyIv1
Цитата(ikm @ Jan 20 2017, 11:00) *
И ваш полигон лучше точно не будет, а вот хуже может.


Полигон не мой, тут просто советовали так сделать. А что с ним не так? Или вообще отказаться этой идеи?

С подключением микросхем я понял, сейчас переделаю.

Но насчет конденсаторов - думаю, надо их добавить. Но мне не понятно, как ими "обвесить" микросхему? Может в сети где-то есть пример? Мне именно для моей схемы не нужно, просто понять бы, как можно сделать.

Спасибо!

Цитата(Владимир @ Jan 20 2017, 11:00) *
Если так добавлять, то это тоже самое


А как правильно его добавить?
Corvus
Цитата(SergeyIv1 @ Jan 20 2017, 14:07) *
Полигон не мой, тут просто советовали так сделать. А что с ним не так? Или вообще отказаться этой идеи?

Не отказаться, а разобраться, зачем он нужен.

Цитата(SergeyIv1 @ Jan 20 2017, 14:07) *
Но насчет конденсаторов - думаю, надо их добавить. Но мне не понятно, как ими "обвесить" микросхему?

"обвесить" - разместить максимально близко к соответствующим выводам микросхем.
ikm
Цитата(SergeyIv1 @ Jan 20 2017, 14:07) *
Полигон не мой, тут просто советовали так сделать. А что с ним не так? Или вообще отказаться этой идеи?

С подключением микросхем я понял, сейчас переделаю.

Но насчет конденсаторов - думаю, надо их добавить. Но мне не понятно, как ими "обвесить" микросхему? Может в сети где-то есть пример? Мне именно для моей схемы не нужно, просто понять бы, как можно сделать.
Спасибо!
А как правильно его добавить?



Речь идет, как раз про Ваш полигон, точнее как вы его выполнили. Если вы хотите залить плату полигоном, то он должен заменить все земляные дорожки, а не проходить параллельно с ними. И ВСЁ что подключается к земле должно подключаться к полигону.

Про конденсаторы:
У каждой м/сх есть ножки питания, вот чем ближе к ним вы разместите конденсаторы тем лучше. Т.к. у вас корпус дип, то керамику лучше брать "чип" и размещать на обратной стороне платы, прямо под микросхемой. Электролит с выводами, как можно ближе к корпусу, но тут можно и +- 1 см, в вашем случае не страшно, но ГЛАВНОЕ что бы дорожки от него шли прямо на выводы питания м/сх. А не так чтобы одна напрямую, а вторая огибала весь корпус. Для м/сх в дип корпусе можно прокидывать дорожки между выводами, зазор позволяет, даже при изготовлении платы дома "утюгом". Тем более если вы будет отдавать плату в производство.
Пример: Красным верхний слой, зеленым нижний слой платы.
novikovfb
Цитата(ikm @ Jan 20 2017, 15:40) *
Электролит с выводами, как можно ближе к корпусу, но тут можно и +- 1 см, в вашем случае не страшно, но ГЛАВНОЕ что бы дорожки от него шли прямо на выводы питания м/сх. А не так чтобы одна напрямую, а вторая огибала весь корпус.

насчет электролитических конденсаторов - перебор, с их внутренним сопротивлением и высокочастотными свойствами и 10 см дорожки погоды не сделают. Насчет керамики - для высокочастотных схем полностью согласен.
Владимир
Цитата(ikm @ Jan 20 2017, 14:40) *
Речь идет, как раз про Ваш полигон, точнее как вы его выполнили. Если вы хотите залить плату полигоном, то он должен заменить все земляные дорожки, а не проходить параллельно с ними. И ВСЁ что подключается к земле должно подключаться к полигону.

И даже этого мало. Нужно расчистить все, чтобы полигон шел везде, и максимально широко, а не "порублен" на лапшу.
Посмотреть откуда и куда "бегают" токи. дабы особо проследить некоторые участки.
И прочая, прочая...
ikm
Цитата(novikovfb @ Jan 20 2017, 14:49) *
насчет электролитических конденсаторов - перебор, с их внутренним сопротивлением и высокочастотными свойствами и 10 см дорожки погоды не сделают. Насчет керамики - для высокочастотных схем полностью согласен.


Ну тут вопрос в размерах и конкретного применения, можно поставить 1 шт 1000 мкФ на всю плату или 3 маленьких по 22 мкФ. У ТС, много разрывов через разъёмы, так что электролиты необходимы, с габаритами у него тоже напряженка, судя по форме платы, так что лучше поставить мелких 5х5 мм на 10в. К то му мы знаем, что у него ещё подключено по питанию, может стартер автомобиля. Керамика для ВЧ (у каждого свое ВЧ sm.gif ), как раз опасна, если её ставить бездумно и не подходящими параметрами. В данном случае рекомендовалась для конкретной платы.

Цитата(Владимир @ Jan 20 2017, 14:54) *
И даже этого мало. Нужно расчистить все, чтобы полигон шел везде, и максимально широко, а не "порублен" на лапшу.
Посмотреть откуда и куда "бегают" токи. дабы особо проследить некоторые участки.
И прочая, прочая...


При данной плотности монтажа у ТС, при заливки полигоном с зазором 0,3мм и шириной дорожки 0,3мм, у него думаю получится полноценный земленой слой.
Владимир
Цитата(ikm @ Jan 20 2017, 15:06) *
При данной плотности монтажа у ТС, при заливки полигоном с зазором 0,3мм и шириной дорожки 0,3мм, у него думаю получится полноценный земленой слой.

Так ведь над этим работать надо. Это ж не просто соединить, лишь бы связь была
SergeyIv1
Цитата(ikm @ Jan 20 2017, 13:06) *
что у него ещё подключено по питанию, может стартер автомобиля


Ахахах) Нет, две батареи 18650 через повышающую напряжение микросхему.

Спасибо, сейчас переделываю с учетом всех советов. Как доделаю, пришлю "на проверку" sm.gif
ikm
Цитата(SergeyIv1 @ Jan 20 2017, 16:54) *
Ахахах) Нет, две батареи 18650 через повышающую напряжение микросхему.

Спасибо, сейчас переделываю с учетом всех советов. Как доделаю, пришлю "на проверку" sm.gif

Так это у вас по входу, а по выходу?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.