roboforum.ru

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


2 простых вопроса

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

2 простых вопроса

Сообщение 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 нету. Так же указано что можна подключить некий внешний генератор символов, но где его взять я не знаю.
Crushor
 
Сообщения: 9
Зарегистрирован: 24 окт 2009, 22:43
Откуда: Феодосия

Re: 2 простых вопроса

Сообщение avr123.nm.ru » 10 ноя 2009, 18:56

1. Наверно сам настроит при включении TWI - там похоже при работе один меняет направление

2. даташит прицепите.
Последний раз редактировалось avr123.nm.ru 10 ноя 2009, 18:57, всего редактировалось 1 раз.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: 2 простых вопроса

Сообщение Michael_K » 10 ноя 2009, 18:56

1. Можно только управлять подтяжкой. Остальное он сам делает.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: 2 простых вопроса

Сообщение Crushor » 10 ноя 2009, 19:03

Ну то есть чтобы установить внутренные подтягивающие резисторы я должен написать:
DDRD=0;
PORTD=110;
?

Даташит прицепил.
Вложения
WG16080A-TGH-VZ#.pdf
(375.53 КиБ) Скачиваний: 5
Crushor
 
Сообщения: 9
Зарегистрирован: 24 окт 2009, 22:43
Откуда: Феодосия

Re: 2 простых вопроса

Сообщение MiBBiM » 10 ноя 2009, 19:07

3. если на шине два мастера, и оба одновременно обращаются по адресу 0x00, то кто выиграет арбитраж?

Добавлено спустя 3 минуты 40 секунд:
Crushor, вот хороший документ, в конце статьи есть исходник, в котором можно подсмотреть правильную инициализацию.
но имхо, трогать порты вообще не стоит, ибо в процессе функционирования ноги многократно переключаются между вход-выход состояниями[/b]
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: 2 простых вопроса

Сообщение Crushor » 10 ноя 2009, 19:43

Этот исходник у меня уже есть, его я и использую для работы с ТWI. Но передача даных таки не происходит, при отладке я вижу что при записи 1 во флаг прерывания, он не сбрасывается :shock: , т.е. программа просто виснет в цикле ожидания сброса этого флага. :(
Я в свою очередь полагаюсь чисто на функции модуля предложеного на сайте указаном MiBBiM , но так как внешних подтягивающих резисторов нет я лишь устанавливаю подтяжку к SCL SDA путем записи 1 в PORTD1 PORD2.
Проэкт клепаю в АВР студии с компилятором Си ВинАВР. Исходник на Си вложил. Подскажитн плз что можна с этим сделать.
Вложения
test.c
(12.7 КиБ) Скачиваний: 179
Crushor
 
Сообщения: 9
Зарегистрирован: 24 окт 2009, 22:43
Откуда: Феодосия

Re: 2 простых вопроса

Сообщение avr123.nm.ru » 10 ноя 2009, 20:06

Начать с подтяжек "железных" от 1.5 до 10 кОм :D
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: 2 простых вопроса

Сообщение MiBBiM » 10 ноя 2009, 20:08

+1, внутренний pull-up может не потянуть шину
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: 2 простых вопроса

Сообщение 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МГц

Правильно, конечно, ставить внешний пуллап.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: 2 простых вопроса

Сообщение galex1981 » 10 ноя 2009, 23:14

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

Re: 2 простых вопроса

Сообщение avr123.nm.ru » 10 ноя 2009, 23:22

Резисторы можно составить из имеющихся вналичии включая их последовательно и параллельно.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: 2 простых вопроса

Сообщение galex1981 » 10 ноя 2009, 23:24

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

Re: 2 простых вопроса

Сообщение avr123.nm.ru » 10 ноя 2009, 23:34

Про возможность комбинаций для получения номиналов резисторов, конденсаторов и индуктивностей ? ИМХО это конечно полезно знать и уметь.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: 2 простых вопроса

Сообщение MiBBiM » 10 ноя 2009, 23:43

а как насчет вопроса №3, процесс арбитража распространяется на данные?
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: 2 простых вопроса

Сообщение blindman » 11 ноя 2009, 07:41

MiBBiM писал(а):3. если на шине два мастера, и оба одновременно обращаются по адресу 0x00, то кто выиграет арбитраж?

На этапе адресации - никто. Конфликт может возникнуть впоследствии на этапе передачи данных - тогда и произойдёт арбитраж.
Проект [[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(?)
ФИО: Андрей Юрьевич


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

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

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

cron