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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> вопросы по TWI
PowerF1
сообщение Aug 30 2005, 12:28
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 34
Регистрация: 12-03-05
Из: Новосибирск
Пользователь №: 3 288



сразу несколько вопросов
1. В схеме подключения TWI устройств в документации присутствуют подтягивающие резисторы. Какого они сопротивления? Также сказано, что В НЕКОТОРЫХ СЛУЧАЯХможно использовать внутренние подт резисторы взамен внешним. Что это за случаи?
2.Непонятно про блок согласования адреса (Address Match Unit). Не разобрался для чего он и что позволяет делать.
3.Если к шине подключено всего одно устройство, можно ли к нему обращаться без посылки адреса. И каким образом идет распределение адресов по устройствам? Как конкретное ус-во определяет, что обрааются именно к нему?
4.И для общего развития. Что можно подключить по TWI? например EEPROMы подключают.

заранее большое спасибо.
Go to the top of the page
 
+Quote Post
ValeraVi
сообщение Aug 30 2005, 12:40
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 44
Регистрация: 30-07-05
Из: Kyiv, Ukraine
Пользователь №: 7 211



1 - точно не помню спецификации i2c но, я у верен, что там поддягивающие резисторы намного меньшего сопротивления чем внутренние поддягивающие резисторы у AVR, след. AVRовские резисторы можно юзать токо в простейших случаях - при соединении небольшого ко-ва устройств на маленьких расстояниях (в пределах платы)
2 - он используется, если AVR работает в режиме подчиненного (slave) - и детектит, к нему или к другому AVR пытается обратится мастер.
3 - нельзя (такой стандарт)! Адреса устройствам назначает производитель устройства но иногда их можно подстраивать в небольшом диапазоне. Например в некоторых еепромках на наружу выведено несколько младших адресных линий, которые можно подключать к 0 или 1 по своему.
4 - все что имеет шину i2c: другой AVR в режиме слейва, часы реального времени, измерители температуры, АЦП, ЦАП, цифровые резисторы, регуляторы парамертов звука в аудио технике... короче - много чего smile.gif
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Aug 31 2005, 07:29
Сообщение #3


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(PowerF1 @ Aug 30 2005, 15:28)
сразу несколько вопросов
1. В схеме подключения TWI устройств в документации присутствуют подтягивающие резисторы. Какого они сопротивления? Также сказано, что В НЕКОТОРЫХ СЛУЧАЯХможно использовать внутренние подт резисторы взамен внешним. Что это за случаи?
...
*

Обычно номиналы лежат в пределах 1.5кОм - 2.2кОм для скоростей 100-400кГц.
Внутренние резисторы AVR ничего не дают ввиду гораздо большего сопротивления, фронты сигналов будут слишком завалены.
Go to the top of the page
 
+Quote Post
PowerF1
сообщение Aug 31 2005, 11:33
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 34
Регистрация: 12-03-05
Из: Новосибирск
Пользователь №: 3 288



Большое спасибо за ответы.
Я посмотрел доки на ееромы, нашел там про линии младших адресов. С подстройкой стало понятно, а где можно узнать адрес устройства (который, Вы говорите, назначает производитель устройства)? Может невнимательно смотрел, но в доках не увидел сего.
Go to the top of the page
 
+Quote Post
andrvisht
сообщение Aug 31 2005, 11:35
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064



Как правило, они там обычно диаграмки приводят, в них и ответ можно увидеть. А что за EEPROM?
Go to the top of the page
 
+Quote Post
PowerF1
сообщение Aug 31 2005, 13:23
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 34
Регистрация: 12-03-05
Из: Новосибирск
Пользователь №: 3 288



Я вроде разобрался.
К примеру, если это AT24C256, то она имеет два "подстроечных" пина A0 и А1.
Старшие 5 бит адреса при этом фиксированы и равны 10100.
Похоже, что для всей серии AT24Cxxx старшие 4 бита есть 1010. Посмотрел несколько док, везде эти старшие 4 бита неизменны.
Go to the top of the page
 
+Quote Post
ValeraVi
сообщение Aug 31 2005, 13:26
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 44
Регистрация: 30-07-05
Из: Kyiv, Ukraine
Пользователь №: 7 211



2 PowerF1
да, в даташите ищите описание байта slave address для еепрмки, в нем же - младший бит - направление (чтение / запись - R/W). Битами по старше могут быть A0, A1, A2 и т.д. в зависимости от еепромки - это и есть те выводы, которые выведены наружу и позволяющие подстраивать адрес...
Go to the top of the page
 
+Quote Post
andrvisht
сообщение Aug 31 2005, 13:34
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064



И еще маленькое дополнение. Обратите внимание что запись данных ведется постранично, в то время как чтение таких ограничений не имеет.
Go to the top of the page
 
+Quote Post
ValeraVi
сообщение Aug 31 2005, 15:59
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 44
Регистрация: 30-07-05
Из: Kyiv, Ukraine
Пользователь №: 7 211



2 &-rey
это вы какие еепромы имеете ввиду? smile.gif AT24Cxxx (покрайней мере AT24C04, с которой я работал) без проблем можно писать по-байтово.
Go to the top of the page
 
+Quote Post
andrvisht
сообщение Sep 1 2005, 06:12
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064



Да, именно эти XXX.
Дело в том, что для 04-й Старший байт адреса вы задаете в 1-м байте вместе с адресом девайса. Так что вы впринципе выбираете банк при адресации. А вот для 64, 128, 256 там адресация 2-мя байтами. Так вот если Вы к примеру собираетеся писать от адреса 3F до адреса 41 итого 3 байта, то
нужно будет сначала его адресовать 3F записать 1 байт, потом адресовать 40 и дописать еще 2 байта. В противном случае эти 2 байта запишутся по адресам 00 и 01. Это впринципе описано в документации но кто же её читает wink.gif
Go to the top of the page
 
+Quote Post
NickB
сообщение Sep 1 2005, 07:38
Сообщение #11


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

Группа: Свой
Сообщений: 114
Регистрация: 22-06-04
Пользователь №: 102



Цитата(PowerF1 @ Aug 30 2005, 15:28)
сразу несколько вопросов
3.Если к шине подключено всего одно устройство, можно ли к нему обращаться без посылки адреса. И каким образом идет распределение адресов по устройствам? Как конкретное ус-во определяет, что обрааются именно к нему?
*


Распределение адресов на шине для большинства популярных устройств
стардантизовано разработчиком протокола(Philips)
Поэтому к примеру EEPROM будет иметь одинаковую адресацию что у Atmel
что у Micrоchip etc. То же самое и для часов RTC - Maxim и ST к примеру имеют одинаковый адрес
Go to the top of the page
 
+Quote Post
*SERG
сообщение Jan 16 2006, 19:03
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 274
Регистрация: 10-08-05
Из: Екатеринбург
Пользователь №: 7 517



У меня то же проблема с at24c256, для записи вроде с диаграммами разобрался, записываю побайтово
(не постранично), а вот со чтением ни как не пойму что к чему.......................
Мне надо считывать с начального адреса памяти микросхемы, и дo n-ого, но в диаграммах чтения не увидел байты адреса в которых указывается к какой ячейке идёт обращение blink.gif ........
Что делать??? Каким образом адрес задать???
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jan 17 2006, 08:30
Сообщение #13


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(*SERG @ Jan 16 2006, 21:03) *
У меня то же проблема с at24c256, для записи вроде с диаграммами разобрался, записываю побайтово
(не постранично), а вот со чтением ни как не пойму что к чему.......................
Мне надо считывать с начального адреса памяти микросхемы, и дo n-ого, но в диаграммах чтения не увидел байты адреса в которых указывается к какой ячейке идёт обращение blink.gif ........
Что делать??? Каким образом адрес задать???

Адрес задаётся в процедуре записи, но сама запись не делается.
Потом делается повторный старт и инициируется процедура чтения (с указанного ранее адреса).
Далее всё как по маслу.
Go to the top of the page
 
+Quote Post
*SERG
сообщение Jan 17 2006, 08:56
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 274
Регистрация: 10-08-05
Из: Екатеринбург
Пользователь №: 7 517



Цитата(IgorKossak @ Jan 17 2006, 11:30) *
Цитата(*SERG @ Jan 16 2006, 21:03) *

У меня то же проблема с at24c256, для записи вроде с диаграммами разобрался, записываю побайтово
(не постранично), а вот со чтением ни как не пойму что к чему.......................
Мне надо считывать с начального адреса памяти микросхемы, и дo n-ого, но в диаграммах чтения не увидел байты адреса в которых указывается к какой ячейке идёт обращение blink.gif ........
Что делать??? Каким образом адрес задать???

Адрес задаётся в процедуре записи, но сама запись не делается.
Потом делается повторный старт и инициируется процедура чтения (с указанного ранее адреса).
Далее всё как по маслу.

Понятно, спасибо!!!
Ещё вот проблемка, на могу в AVRstudio перейти на адрес обработки прерывания TWI.......
кусок проги (cvavr):

adres_m=0x0000;
pered_bait_mass_i2=0;
mas_peredachi_i2[0]=0b10100001;
mas_peredachi_i2[2]=*ukaz_m_hl;
mas_peredachi_i2[1]=*++ukaz_m_hl;
mas_peredachi_i2[3]=*++ukazatel[prinat_ussap-delta_hex];
mass_i2_peredan=0;
TWCR=0B10100101;//формирую СТАРТ
.......
........
.........

col_pered_bait_simvola--;
adres_m++;
*--ukaz_m_hl;

Задуманно так что после передачи условия СТАРТ, формируется прерывание и подпрограмма прерывания передаёт массив "mas_peredachi_i2" . Даг вот проблемма, уже ручками устанавливаю и сбрасываю бит TWINT - тишина, не заходит в подпрограмму обработки прерывания от TWI.
Что может быть???
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jan 17 2006, 09:15
Сообщение #15


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата
mas_peredachi_i2[0]=0b10100001;

А разве на Си можно писать двоичное представление числа? Насколько мне известно - нет. Возможно здесь ошибка программы.

P.S. Если я не ошибаюсь, то можно писать числа в шестнадцатиричном и десятичном представлениях...

Сообщение отредактировал haker_fox - Jan 17 2006, 09:19


--------------------
Выбор.
Go to the top of the page
 
+Quote Post

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

 


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


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