TWI ATmega644P

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

TWI ATmega644P

Сообщение KIG » 24 май 2010, 10:03

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

Re: TWI ATmega644P

Сообщение galex1981 » 24 май 2010, 12:57

А резисторы подтягивающие на SCL и SDA к 5 В поставили?
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: TWI ATmega644P

Сообщение KIG » 24 май 2010, 17:17

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

Re: TWI ATmega644P

Сообщение blindman » 24 май 2010, 17:19

А 2.7 вольт чем меряется?
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: TWI ATmega644P

Сообщение KIG » 24 май 2010, 22:52

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

Re: TWI ATmega644P

Сообщение =DeaD= » 24 май 2010, 23:03

кто же цифровой интерфейс вольтметром щупает? там же напряжение скачет, это у вас среднее напряжение, а совсем даже не "установившееся" :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: TWI ATmega644P

Сообщение KIG » 25 май 2010, 11:15

А с чего вы взяли что оно там скачет? У меня сеанс связи длится максимум 1 сек, так что через секунду там должно все восстановится, а у меня 2,4В.
KIG
 
Сообщения: 6
Зарегистрирован: 24 май 2010, 10:00

Re: TWI ATmega644P

Сообщение blindman » 25 май 2010, 11:26

Ток в 76 ма говорит с большой вероятностью о том, что где-то ошибка в программе - когда ведущий выдает ноль, у ведомого ноги настроены на выход с единицей.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: TWI ATmega644P

Сообщение KIG » 25 май 2010, 17:35

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

Re: TWI ATmega644P

Сообщение blindman » 25 май 2010, 17:45

А к чему такие извращения, если модуль TWI сам может генерить прерывания?
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: TWI ATmega644P

Сообщение boez » 26 май 2010, 12:29

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

Нельзя соединять ножки, обе настроенные на выход, очень похоже что у тебя или у слейва эта нога тоже на выход настроена, или ее что-то на землю сильно садит, ошибка в монтаже.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: TWI ATmega644P

Сообщение Scorpio » 26 май 2010, 17:08

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

4,7 кОм можно поставить последовательно мастеру, чтобы ноги не перегружать, а на подтяжку 82к, как и положено. Но ошибка конечно в программе.
Аватара пользователя
Scorpio
 
Сообщения: 2681
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

Re: TWI ATmega644P

Сообщение blindman » 26 май 2010, 17:45

Это кем так положено ?
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: TWI ATmega644P

Сообщение Scorpio » 26 май 2010, 18:04

Ну, может и не положено... Но, с последовательными 4,7 вроде как 82к в самый раз. У меня по крайней мере устройст 5 так работают. В принципе можно и килоом зацепить, если батарейки некуда расходовать, наверное тоже будет работать с открытыми стоками.
Аватара пользователя
Scorpio
 
Сообщения: 2681
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

Re: TWI ATmega644P

Сообщение galex1981 » 26 май 2010, 21:57

Если из описания стандарта брать в расчет, то именно 4,7 кОм в самый раз.
ЗЫ: Если не секрет, то какие устройства у вас с такими резисторами работают нормально?
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26