Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
27.02.2009, 10:37
|
|
Прописка
Регистрация: 14.11.2007
Сообщений: 150
Сказал спасибо: 3
Сказали Спасибо 47 раз(а) в 43 сообщении(ях)
|
Величина подтягивающих резизторов TWI(I2C) на 3.3 В
Имеются две atmega128 соединенные по шине TWI, напряжение питания 3.3 В. Какой номинал должны иметь потягивающие резисторы шины? В даташите написано что-то вроде "Номинал Rp зависит от VCC и емкости шины (обычно 4.7 кОм)."
-- Прилагается рисунок: --
|
|
|
|
27.02.2009, 13:01
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
График выбор резисторов i2c есть на - http://avr123.nm.ru/02.htm
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
27.02.2009, 16:13
|
|
Прописка
Регистрация: 14.11.2007
Сообщений: 150
Сказал спасибо: 3
Сказали Спасибо 47 раз(а) в 43 сообщении(ях)
|
Эмм..Не нашел я там графиков, только про токоогроничительные резисторы почитал...
Изначально плата должна была питаться от 5В, а количесвто уствройств на шине TWI равно 4-м, в этом случае я поставил внешние подтягивающие резисторы на 10кОм(на работоспособность TWI не проверялся). Теперь же нужно чтобы было 2 устройства на шине питающихся и от 5 и от 3.3 В. На 3.3 вольтах, при тех же резисторах на 10кОм от мастера отправляется адрес, принимается слайвом, высылается подтверждение, а при попытке отправить данные в регистре TWSR появляется 0х10 что значит был повторный старт, хотя по программе никакого повторного старта не было.
|
|
|
|
27.02.2009, 23:30
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Сообщение от svad0
|
Теперь же нужно чтобы было 2 устройства на шине питающихся и от 5 и от 3.3 В.
|
http://www.standardics.nxp.com/suppo...df/an97055.pdf
|
|
|
|
28.02.2009, 14:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Сообщение от svad0
|
Эмм..Не нашел я там графиков, только про токоогроничительные резисторы почитал...
|
А ему главное дать ссылку на свою страничку.. а есть там или нет.. дело десятое
Величина подтягиввающего зависит от ёмкости ИМС и шины на твоих платах. Ставиш резистор скажем на 10 Ком и измеряеш на сколько затягивается импульс после перехода в "1" -(ЗАРЯД ЁМКОСТИ ШИНЫ ).
Потом подбираеш РЕЗИСТОР что бы шина зарядилась до того момента, когда МК считывает уровень с ножки, То есть что бы уровень УЖЕ был = 1.
А вообще, примерный расчёт для постоянной времени 0,7RC.
|
|
|
|
02.03.2009, 09:24
|
|
Прописка
Регистрация: 14.11.2007
Сообщений: 150
Сказал спасибо: 3
Сказали Спасибо 47 раз(а) в 43 сообщении(ях)
|
Я правильно отметил на рисунке время затягивания импульса? Только тут показано время спада, а мне нужно мерять время нарастания, так? И еще: как поймать момент считывания микросхемой уровня с ножки(JTAG имеется)? По прерыванию или раньше?
-- Прилагается рисунок: --
|
|
|
|
02.03.2009, 12:05
|
|
Прописка
Регистрация: 14.11.2007
Сообщений: 150
Сказал спасибо: 3
Сказали Спасибо 47 раз(а) в 43 сообщении(ях)
|
В протеусе все прекрасно работает. Выкладываю прект. В обмене данными учавствуют только U1 и U2. U3 и U4 - хоть и подсоединины к шине,их порты SCL и SDA включены на вход без подтяжки по питанию. U1 - мастер, передает 8 бит данных U2.
Прикрепленный файл: 6263070.rar
|
|
|
|
02.03.2009, 14:34
|
|
Прописка
Регистрация: 14.11.2007
Сообщений: 150
Сказал спасибо: 3
Сказали Спасибо 47 раз(а) в 43 сообщении(ях)
|
Вот чьёрт! Резисторы оказались непричем. Вычитал в даташите, что "TWSTA необходимо сбрасывать программно после передачи условия СТАРТ". Я же этот бит не сбрасывал вообще до конца передачи. Теперь понятно откуда появлялся статус повторного старта.Кстати если бит TWSTA сбросить сразу же после условия СТАРТ, то передатчик войдет в режим ведущего приемника и байты не отправит. Бит TWSTA сбросил уже после записи байта данных в регистр TWDR. Все заработало =) Всем спасибо.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:59.
|
|