реклама на сайте
подробности

 
 
> Не работают подтягивающие резисторы TWI
SMaster
сообщение Nov 14 2008, 04:21
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 9-03-06
Пользователь №: 15 099



Контроллер ATMega32, PUD = 0.

Код
PORTC = (1<<PC0) | (1<<PC1);
DDRC  = (1<<DDC0) | (1<<DDC1); // Для проверки. Здесь резисторы включаются, на выводах 1
TWCR = 1<<TWEN; // Резисторы выключились :(


По мануалу все должно работать. Есть соображения?

Сообщение отредактировал SMaster - Nov 14 2008, 04:23
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 12)
Палыч
сообщение Nov 14 2008, 06:54
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(SMaster @ Nov 14 2008, 07:21) *
По мануалу все должно работать. Есть соображения?
А, разве на рисунке в DS не нарисованы внешние pull-up резисторы?
Go to the top of the page
 
+Quote Post
Ivan A-R
сообщение Nov 14 2008, 07:30
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 92
Регистрация: 21-06-07
Из: Saint-Petersburg
Пользователь №: 28 607



Внешние резисторы надо ставить на подтяг. В обязательном порядке.

Палыч верно говорит, внимательно читаем DS
Go to the top of the page
 
+Quote Post
SMaster
сообщение Nov 14 2008, 07:47
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 9-03-06
Пользователь №: 15 099



Из даташита:
Цитата
Note that the internal pullups in the AVR pads can be enabled by setting the PORT bits corresponding to the SCL and SDA pins, as explained in the I/O Port section. The internal pull-ups can in some systems eliminate the need for external ones.
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Nov 14 2008, 07:54
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Цитата(SMaster @ Nov 14 2008, 11:47) *
Из даташита:


Но всёравно встроенных бывает недостаточно. На м8535 долго боролись с TWI пока не поставили внешние резисторы.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 14 2008, 07:55
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(SMaster @ Nov 14 2008, 07:21) *
Код
PORTC = (1<<PC0) | (1<<PC1);
DDRC  = (1<<DDC0) | (1<<DDC1); // Для проверки. Здесь резисторы включаются, на выводах 1

Здесь не резисторы включаются, а вывод в '1' переводится.

Цитата(SMaster @ Nov 14 2008, 07:21) *
По мануалу все должно работать. Есть соображения?

Снаружи-то что подключено?

Цитата(SMaster @ Nov 14 2008, 10:47) *
Из даташита:

In some systems - это с частотой I2C 10kHz и необязательной надежностью.
Go to the top of the page
 
+Quote Post
pavel-pervomaysk
сообщение Nov 14 2008, 08:17
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 253
Регистрация: 28-12-07
Из: Украина г. Первомайск
Пользователь №: 33 716



Наверное 2 резистора стоят дороже чем время потраченное свое ... smile.gif
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Nov 14 2008, 09:09
Сообщение #8


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(aaarrr @ Nov 14 2008, 10:55) *
In some systems - это с частотой I2C 10kHz и необязательной надежностью.
Откуда такие данные? (просто интересуюсь).


Цитата(Павлик @ Nov 14 2008, 11:17) *
Наверное 2 резистора стоят дороже чем время потраченное свое ... smile.gif
Если система прекрасно работает с внутренними pullup'ами, то для чего городить огород?


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 14 2008, 09:39
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(demiurg_spb @ Nov 14 2008, 12:09) *
Откуда такие данные? (просто интересуюсь).

Из раздела Electrical Characteristics DS: I/O Pin Pull-up Resistor 20-100 kΩ.
Со 100kΩ подтяжкой разогнаться трудно.

Цитата(demiurg_spb @ Nov 14 2008, 12:09) *
Если система прекрасно работает с внутренними pullup'ами, то для чего городить огород?

Хотя бы для соответствия спецификации I2C. И прекрасно работать оно не может, а может только на низкой скорости в определенном температурном диапазоне и т.д.
Go to the top of the page
 
+Quote Post
Nixon
сообщение Nov 14 2008, 09:56
Сообщение #10


Гуру
******

Группа: Админы
Сообщений: 2 736
Регистрация: 17-06-04
Из: Киев
Пользователь №: 48



400kHz - 2k pull-up
100kHz - 10k pull-up


--------------------
Вам помочь или не мешать?
Go to the top of the page
 
+Quote Post
SMaster
сообщение Nov 14 2008, 12:06
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 9-03-06
Пользователь №: 15 099



Цитата(demiurg_spb @ Nov 14 2008, 16:09) *
Откуда такие данные? (просто интересуюсь).
Если система прекрасно работает с внутренними pullup'ами, то для чего городить огород?


Согласен. Поэтому и хотел их подключить.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Nov 14 2008, 12:40
Сообщение #12


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(aaarrr @ Nov 14 2008, 12:39) *
Из раздела Electrical Characteristics DS: I/O Pin Pull-up Resistor 20-100 kΩ.
Со 100kΩ подтяжкой разогнаться трудно.
Хотя бы для соответствия спецификации I2C. И прекрасно работать оно не может, а может только на низкой скорости в определенном температурном диапазоне и т.д.
Спасибо, Вашу мысль понял. Если используется всего 1-2 низкоскоростных девайса (датчики комнатной температуры) на коротких линях связи, то возможно обойтись и без дополнительной обвески...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 14 2008, 13:59
Сообщение #13


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(demiurg_spb @ Nov 14 2008, 14:40) *
Если используется всего 1-2 низкоскоростных девайса (датчики комнатной температуры) на коротких линях связи, то возможно обойтись и без дополнительной обвески...
Как говорится, "если вас не интересует результат".


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 4th July 2025 - 22:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01402 секунд с 7
ELECTRONIX ©2004-2016