Технический форум по робототехнике.
KIG » 24 май 2010, 10:03
Здравствуйте.
Пытаюсь организовать связь между двумя МК (Atmega644P). При создании стартового события иногда напряжения на шинах SCL и SDA устанавливаются в 2,7 В при напряжении питания МК и данных шинок 5В. Программа в МК подвисает так как она ожидает установку флага TWINT. Если вручную замыкаю SCL шину на землю, то флаг TWINT устанавливается и программа продолжает работать. Подскажите, пожалуйста, из-за чего происходит установка 2.7 В на шинах SDA, SCL? как от этого избавиться? Заранее спасибо.
galex1981 » 24 май 2010, 12:57
А резисторы подтягивающие на SCL и SDA к 5 В поставили?
KIG » 24 май 2010, 17:17
Величина подтягивающих сопротивлений шин SDA и SCL 4,7 кОм. SLAVE МК включает свой TWI интерфейс за 5ms до начала сеанса связи, это время увеличивал до 500ms - не помогало
blindman » 24 май 2010, 17:19
А 2.7 вольт чем меряется?
KIG » 24 май 2010, 22:52
Мультиметром замерял. Ещё обнаружил, что после стартового события на ножках связывающих два МК (не подключенные к шинам SDA и SCL) напряжение 2,4В становится. Замерил ток протекающий с одного МК на другой, оказалось 76мА. Может быть нельзя соединять ножки 2 разных МК на прямую? (по идее там на входе что-то вроде операционника должно стоять с большим входным сопротивлением, откуда такой ток???)
=DeaD= » 24 май 2010, 23:03
кто же цифровой интерфейс вольтметром щупает? там же напряжение скачет, это у вас среднее напряжение, а совсем даже не "установившееся"

KIG » 25 май 2010, 11:15
А с чего вы взяли что оно там скачет? У меня сеанс связи длится максимум 1 сек, так что через секунду там должно все восстановится, а у меня 2,4В.
blindman » 25 май 2010, 11:26
Ток в 76 ма говорит с большой вероятностью о том, что где-то ошибка в программе - когда ведущий выдает ноль, у ведомого ноги настроены на выход с единицей.
KIG » 25 май 2010, 17:35
Ток был замерен на ножках не участвующих в интерфейсе TWI. Да дествительно я устанавливаю в логическую единицу ногу MASTER МК (не задействованную в TWI) для создания прерывания в SLAVE МК, по этому прерыванию вкл TWI в SLAVE МК. В данный момент конечно ножка SLAVE МК с около нулевым потенциалом. Получается нельзя соединять на прямую ножки двух МК???
blindman » 25 май 2010, 17:45
А к чему такие извращения, если модуль TWI сам может генерить прерывания?
boez » 26 май 2010, 12:29
KIG писал(а):Получается нельзя соединять на прямую ножки двух МК???
Нельзя соединять ножки, обе настроенные на выход, очень похоже что у тебя или у слейва эта нога тоже на выход настроена, или ее что-то на землю сильно садит, ошибка в монтаже.
Scorpio » 26 май 2010, 17:08
KIG писал(а):Величина подтягивающих сопротивлений шин SDA и SCL 4,7 кОм. SLAVE МК включает свой TWI интерфейс за 5ms до начала сеанса связи, это время увеличивал до 500ms - не помогало
4,7 кОм можно поставить последовательно мастеру, чтобы ноги не перегружать, а на подтяжку 82к, как и положено. Но ошибка конечно в программе.
blindman » 26 май 2010, 17:45
Это кем так положено ?
Scorpio » 26 май 2010, 18:04
Ну, может и не положено... Но, с последовательными 4,7 вроде как 82к в самый раз. У меня по крайней мере устройст 5 так работают. В принципе можно и килоом зацепить, если батарейки некуда расходовать, наверное тоже будет работать с открытыми стоками.
galex1981 » 26 май 2010, 21:57
Если из описания стандарта брать в расчет, то именно 4,7 кОм в самый раз.
ЗЫ: Если не секрет, то какие устройства у вас с такими резисторами работают нормально?