Технический форум по робототехнике.
Crushor » 10 ноя 2009, 18:51
1. Каким образом нужно настраивать выводы к которым подключен ТWI, т.е. если SCL SDA подключены к PORTD1 PORTD2 нужно ли присваивать DDRD какие-то значения или МК сам их настроит?
2. Если кто пользовался дисплеем WG16080A-TGH-VZ# подскажите пожалуйста как в нем выводить крупные символы ибо в мануале указано что есть возможность симводы 5х7 5х11 и 8х16, но коды символов даны тока для первых 2, для интересующих меня 8х16 нету. Так же указано что можна подключить некий внешний генератор символов, но где его взять я не знаю.
avr123.nm.ru » 10 ноя 2009, 18:56
1. Наверно сам настроит при включении TWI - там похоже при работе один меняет направление
2. даташит прицепите.
Последний раз редактировалось
avr123.nm.ru 10 ноя 2009, 18:57, всего редактировалось 1 раз.
Michael_K » 10 ноя 2009, 18:56
1. Можно только управлять подтяжкой. Остальное он сам делает.
Crushor » 10 ноя 2009, 19:03
Ну то есть чтобы установить внутренные подтягивающие резисторы я должен написать:
DDRD=0;
PORTD=110;
?
Даташит прицепил.
- Вложения
-
WG16080A-TGH-VZ#.pdf
- (375.53 КиБ) Скачиваний: 5
MiBBiM » 10 ноя 2009, 19:07
3. если на шине два мастера, и оба одновременно обращаются по адресу 0x00, то кто выиграет арбитраж?
Добавлено спустя 3 минуты 40 секунд:Crushor, вот
хороший документ, в конце статьи есть исходник, в котором можно подсмотреть правильную инициализацию.
но имхо, трогать порты вообще не стоит, ибо в процессе функционирования ноги многократно переключаются между вход-выход состояниями[/b]
Crushor » 10 ноя 2009, 19:43
Этот исходник у меня уже есть, его я и использую для работы с ТWI. Но передача даных таки не происходит, при отладке я вижу что при записи 1 во флаг прерывания, он не сбрасывается

, т.е. программа просто виснет в цикле ожидания сброса этого флага.
Я в свою очередь полагаюсь чисто на функции модуля предложеного на сайте указаном MiBBiM , но так как внешних подтягивающих резисторов нет я лишь устанавливаю подтяжку к SCL SDA путем записи 1 в PORTD1 PORD2.
Проэкт клепаю в АВР студии с компилятором Си ВинАВР. Исходник на Си вложил. Подскажитн плз что можна с этим сделать.
- Вложения
-
test.c
- (12.7 КиБ) Скачиваний: 189
avr123.nm.ru » 10 ноя 2009, 20:06
Начать с подтяжек "железных" от 1.5 до 10 кОм

MiBBiM » 10 ноя 2009, 20:08
+1, внутренний pull-up может не потянуть шину
Michael_K » 10 ноя 2009, 20:28
Внутренний пуллап будет работать при низких скоростях.
У меня он работает с DS1307, например.
Вот так инициализирую:
TWCR= 0X00; //disable twi
TWBR= 0x20; //set bit rate
TWSR= 0x02; //set bit rate
TWCR= 0x04; //enable twi
Проц atmega128 от кварца 11.059МГц
Правильно, конечно, ставить внешний пуллап.
galex1981 » 10 ноя 2009, 23:14
По-любому правильнее ставить подтяжки на эти линии (во всех даташитах указаны)
avr123.nm.ru » 10 ноя 2009, 23:22
Резисторы можно составить из имеющихся вналичии включая их последовательно и параллельно.
galex1981 » 10 ноя 2009, 23:24
to Avr: я так думаю что начинающие это в первую очередь должны знать...
avr123.nm.ru » 10 ноя 2009, 23:34
Про возможность комбинаций для получения номиналов резисторов, конденсаторов и индуктивностей ? ИМХО это конечно полезно знать и уметь.
MiBBiM » 10 ноя 2009, 23:43
а как
насчет вопроса №3, процесс арбитража распространяется на данные?
blindman » 11 ноя 2009, 07:41
MiBBiM писал(а):3. если на шине два мастера, и оба одновременно обращаются по адресу 0x00, то кто выиграет арбитраж?
На этапе адресации - никто. Конфликт может возникнуть впоследствии на этапе передачи данных - тогда и произойдёт арбитраж.