roboforum.ru

Технический форум по робототехнике.

TWI ATmega644P

TWI ATmega644P

KIG » 24 май 2010, 10:03

Здравствуйте.
Пытаюсь организовать связь между двумя МК (Atmega644P). При создании стартового события иногда напряжения на шинах SCL и SDA устанавливаются в 2,7 В при напряжении питания МК и данных шинок 5В. Программа в МК подвисает так как она ожидает установку флага TWINT. Если вручную замыкаю SCL шину на землю, то флаг TWINT устанавливается и программа продолжает работать. Подскажите, пожалуйста, из-за чего происходит установка 2.7 В на шинах SDA, SCL? как от этого избавиться? Заранее спасибо.

Re: TWI ATmega644P

galex1981 » 24 май 2010, 12:57

А резисторы подтягивающие на SCL и SDA к 5 В поставили?

Re: TWI ATmega644P

KIG » 24 май 2010, 17:17

Величина подтягивающих сопротивлений шин SDA и SCL 4,7 кОм. SLAVE МК включает свой TWI интерфейс за 5ms до начала сеанса связи, это время увеличивал до 500ms - не помогало

Re: TWI ATmega644P

blindman » 24 май 2010, 17:19

А 2.7 вольт чем меряется?

Re: TWI ATmega644P

KIG » 24 май 2010, 22:52

Мультиметром замерял. Ещё обнаружил, что после стартового события на ножках связывающих два МК (не подключенные к шинам SDA и SCL) напряжение 2,4В становится. Замерил ток протекающий с одного МК на другой, оказалось 76мА. Может быть нельзя соединять ножки 2 разных МК на прямую? (по идее там на входе что-то вроде операционника должно стоять с большим входным сопротивлением, откуда такой ток???)

Re: TWI ATmega644P

=DeaD= » 24 май 2010, 23:03

кто же цифровой интерфейс вольтметром щупает? там же напряжение скачет, это у вас среднее напряжение, а совсем даже не "установившееся" :)

Re: TWI ATmega644P

KIG » 25 май 2010, 11:15

А с чего вы взяли что оно там скачет? У меня сеанс связи длится максимум 1 сек, так что через секунду там должно все восстановится, а у меня 2,4В.

Re: TWI ATmega644P

blindman » 25 май 2010, 11:26

Ток в 76 ма говорит с большой вероятностью о том, что где-то ошибка в программе - когда ведущий выдает ноль, у ведомого ноги настроены на выход с единицей.

Re: TWI ATmega644P

KIG » 25 май 2010, 17:35

Ток был замерен на ножках не участвующих в интерфейсе TWI. Да дествительно я устанавливаю в логическую единицу ногу MASTER МК (не задействованную в TWI) для создания прерывания в SLAVE МК, по этому прерыванию вкл TWI в SLAVE МК. В данный момент конечно ножка SLAVE МК с около нулевым потенциалом. Получается нельзя соединять на прямую ножки двух МК???

Re: TWI ATmega644P

blindman » 25 май 2010, 17:45

А к чему такие извращения, если модуль TWI сам может генерить прерывания?

Re: TWI ATmega644P

boez » 26 май 2010, 12:29

KIG писал(а):Получается нельзя соединять на прямую ножки двух МК???

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

Re: TWI ATmega644P

Scorpio » 26 май 2010, 17:08

KIG писал(а):Величина подтягивающих сопротивлений шин SDA и SCL 4,7 кОм. SLAVE МК включает свой TWI интерфейс за 5ms до начала сеанса связи, это время увеличивал до 500ms - не помогало

4,7 кОм можно поставить последовательно мастеру, чтобы ноги не перегружать, а на подтяжку 82к, как и положено. Но ошибка конечно в программе.

Re: TWI ATmega644P

blindman » 26 май 2010, 17:45

Это кем так положено ?

Re: TWI ATmega644P

Scorpio » 26 май 2010, 18:04

Ну, может и не положено... Но, с последовательными 4,7 вроде как 82к в самый раз. У меня по крайней мере устройст 5 так работают. В принципе можно и килоом зацепить, если батарейки некуда расходовать, наверное тоже будет работать с открытыми стоками.

Re: TWI ATmega644P

galex1981 » 26 май 2010, 21:57

Если из описания стандарта брать в расчет, то именно 4,7 кОм в самый раз.
ЗЫ: Если не секрет, то какие устройства у вас с такими резисторами работают нормально?


Rambler\'s Top100 Mail.ru counter