SergeyIv1 0 20 января, 2017 Опубликовано 20 января, 2017 · Жалоба Добрый день. Разрабатываю схему. Цель - сбор информации с датчиков, в зависимости от данных - вращать шаговые двигатели, а также обрабатывать данные и передавать по bluetooth. В качестве контроллеров используется Arduino Nano, извините. Всё работает достаточно хорошо. Но иногда возникают помехи. Или изредка вообще всё перестает работать, помогает только включение и выключение. Может быть надо что-то изменить в трассировке? Как правильнее взаимно расположить чувствительные датчики, каналы от них и контроллеры шаговых двигателей? Схема: Трассировка верх: Трассировка низ: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EvilWrecker 0 20 января, 2017 Опубликовано 20 января, 2017 · Жалоба Всё работает достаточно хорошо. Но иногда возникают помехи. Или изредка вообще всё перестает работать, помогает только включение и выключение. "Хорошая работа" теперь так выглядит? Интересно :laughing: Но плату текущую можете однозначно выкидывать и начать читать гайды по разводке- самые первые ссылки из гугла. В самую первую очередь про разводку земли и питания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyIv1 0 20 января, 2017 Опубликовано 20 января, 2017 · Жалоба "Хорошая работа" теперь так выглядит? Интересно :laughing: Но плату текущую можете однозначно выкидывать и начать читать гайды по разводке- самые первые ссылки из гугла. В самую первую очередь про разводку земли и питания. Ссылку можете дать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EvilWrecker 0 20 января, 2017 Опубликовано 20 января, 2017 · Жалоба Ссылку можете дать? А просто вбиваете в гугле "pcb design guideline" и на самой первой странице чекаете пдфы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 20 января, 2017 Опубликовано 20 января, 2017 · Жалоба Может быть надо что-то изменить в трассировке? Как правильнее взаимно расположить чувствительные датчики, каналы от них и контроллеры шаговых двигателей? На схеме верхней платы показаны датчики по I2C, которых на плате нет. Что за датчики? Гироскопы-акселерометры? Дело скорее всего в подвисаниях I2C. Вставьте для начала резисторы в I2C между верхней и нижней платами, должно все исправиться. Но возможно и чисто программный баг. Программу пишите сами? Трассировка тут имеет наименьшее значение. Ардуинки сами по себе хорошо страссированы и микроконтроллеры у них достоточно непробиваемые. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novikovfb 19 20 января, 2017 Опубликовано 20 января, 2017 · Жалоба Дело скорее всего в подвисаниях I2C. +1 а лучше - вообще отказаться от i2c через скользящие контакты в пользу интерфейса, не зависящего от подтягивающих резисторов и сопротивления линии, например, RS-232. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyIv1 0 20 января, 2017 Опубликовано 20 января, 2017 (изменено) · Жалоба На схеме верхней платы показаны датчики по I2C, которых на плате нет. Да, акселерометр. Их действительно нет на плате, они вставляются в разъемы. На схеме это тоже разъёмы. Может не понятно нарисовано, извините. Вставьте для начала резисторы в I2C между верхней и нижней платами, должно все исправиться. Так уже пробовал. Просто перестает работать связь. Может, номинал не тот? Ставил 1КОм и 10КОм. Дело скорее всего в подвисаниях I2C. Возможно, но этот датчик не критичен. Самое важное, это что иногда возникают проблемы с UART-датчиком (разъем к нему слева вверху) и с Bluetooth. Но возможно и чисто программный баг. Программу пишите сами? Нет, я профессиональный программист. Без ложной скромности. Программа наоборот компенсирует всякие проблемы схемы. Ардуинки сами по себе хорошо страссированы и микроконтроллеры у них достоточно непробиваемые. Тут есть нюанс - Arduino UNO действительно работает очень хорошо. И когда она стояла в прототипе, помех почти не было. Но когда поставил Arduino Nano, начались проблемы. А просто вбиваете в гугле "pcb design guideline" и на самой первой странице чекаете пдфы. К сожалению, так можно пол-интернета прочитать, а эффекта не достигнуть. Насчет того, что надо как-то экранировать питание и контроллер двигателя - я согласен, но как именно? +1 а лучше - вообще отказаться от i2c через скользящие контакты в пользу интерфейса, не зависящего от подтягивающих резисторов и сопротивления линии, например, RS-232. Спасибо, я подумаю о такой переделке. Но тоже нюанс - сейчас больше всего глючат именно RS232 датчики и Bluetooth, который тоже RS232. Изменено 20 января, 2017 пользователем SergeyIv1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EvilWrecker 0 20 января, 2017 Опубликовано 20 января, 2017 · Жалоба Трассировка тут имеет наименьшее значение. Ну конечно- ведь подвисания I2C оказываются умеют вешать всю плату, ага. А разводка платы это типа "соединить А и Б дорожкой", ага. Хотел уже и тут гайд предложить читать, но потом вспомнил ваши "платы" и наваждение прошло :laughing: Еще раз- основная и главная проблема этой платы с которой нужно начинать это земля и питание. Именно в такой последовательности. Пока оно не станет нормальным говорить о чем-либо дальше нет смысла. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Uladzimir 84 20 января, 2017 Опубликовано 20 января, 2017 · Жалоба "Подвисания" I2C могут решаться программным образом, даже при плохой земле. Хотя это не всегда полезно. Так как в ответственный момент двигатель не работает из-за устранения "подвисания". Если устранение идет быстро-- может и не страшно, но кто даст гарантии? глючат именно RS232 датчики и Bluetooth Земля (питание) батенька. Тут они никакие. Их вообще нет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EvilWrecker 0 20 января, 2017 Опубликовано 20 января, 2017 · Жалоба "Подвисания" I2C могут решаться программным образом, даже при плохой земле. Можно, да- но это если "решающая" часть не зависла, в связи с чем очень быстро можно скатиться к проблеме курицы и яйца. Поскольку сказано что: Или изредка вообще всё перестает работать, помогает только включение и выключение. то явно проблемы надо искать не в I2C а в Земля (питание) батенька. Тут они никакие. Их вообще нет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyIv1 0 20 января, 2017 Опубликовано 20 января, 2017 · Жалоба Ясно, питание переделаю. (Хотя от примера бы не отказался). А насчет экранирования блоков можете что-то подсказать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novikovfb 19 20 января, 2017 Опубликовано 20 января, 2017 · Жалоба Или изредка вообще всё перестает работать, помогает только включение и выключение. как вариант - возникновение "тиристорного эффекта" в КМОП микросхеме из-за пропадания и восстановления контакта земли или питания на фоне подачи входного сигнала. Обычно это сопровождается существенным увеличением потребляемого тока. Обратновключенные в нормальном режиме диоды Шоттки между сигнальными цепями и цепями питания могут помочь, но гарантий не дают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 20 января, 2017 Опубликовано 20 января, 2017 · Жалоба Ясно, питание переделаю. (Хотя от примера бы не отказался). А насчет экранирования блоков можете что-то подсказать? У вас не плата, а ребус какой-то. В упор не разглядел где на плате нижнего блока КРЕН5 стоит. Самое важное, это где находятся выводы контактного кольца. Тоже не вижу. В I2C надо врезать не более 100 Ом. Этого хватит. Экранирование здесь абсолютно ничего не даст. Отрежьте ноги питания от ULN2003 и присоедините их проводами напрямую к разъему POWER. В остальном трассировка сносная. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyIv1 0 20 января, 2017 Опубликовано 20 января, 2017 (изменено) · Жалоба Добавил земляной полигон: Ваше мнение? В упор не разглядел где на плате нижнего блока КРЕН5 стоит. КРЕН временно убран, т.к. не было толку (извините, сразу не написал). Вверху - полная схема, как хотелось бы. Трассировка - уже с учетом реалий. Также убраны 2 сопротивления 10К, подключающиеся к I2C. Самое важное, это где находятся выводы контактного кольца. Тоже не вижу. Разъем вверху нижней платы. В I2C надо врезать не более 100 Ом. Этого хватит. В оба контакта вставить по 100 Ом? Обратновключенные в нормальном режиме диоды Шоттки между сигнальными цепями и цепями питания Покажите пример такого подключения, пожалуйста. Изменено 20 января, 2017 пользователем SergeyIv1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Sergey_ 15 20 января, 2017 Опубликовано 20 января, 2017 · Жалоба Еще раз- основная и главная проблема этой платы с которой нужно начинать это земля и питание. Именно в такой последовательности. Пока оно не станет нормальным говорить о чем-либо дальше нет смысла. +1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться