|
|
 |
Ответов
|
Feb 18 2009, 06:54
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 4-12-05
Из: Екатеринбург
Пользователь №: 11 773

|
Цитата(ARV @ Feb 18 2009, 11:19)  а разве по стандарту i2c подтяжки делаются 10-килоомными? и что вы подразумеваете под "большими" и "низкими" скоростями? стандартом i2c определено 2 скорости - 100 кбит/с и 400 кбит/с Согласно мануалу... в модуле TWI имеется Bit Rate Generator задающий период следования импульсов по линии SCL. В mege16, к примеру, частота этого генератора задается значениями регистра TWBR и битами TWPS1:TWPS0. Соответственно меняя значение этого регистра, я так понимаю, можно регулировать скорость передачи. В моем случае, при тактовой частоте обоих контроллеров 4МГц, стабильно данные начинают передаваться при TWBR>0x3f, а на меньших значениях происходит потеря некоторых байт. Мне в моем проекте необходимо передавать информацию с максимально возможной для этого интерфейса скоростью, поэтому этот вопрос весьма интересен :-)
|
|
|
|
|
Feb 18 2009, 10:18
|
Местный
  
Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101

|
Цитата(zoddy @ Feb 18 2009, 09:54)  ... В моем случае, при тактовой частоте обоих контроллеров 4МГц, стабильно данные начинают передаваться при TWBR>0x3f, а на меньших значениях происходит потеря некоторых байт. Напомнило советский плакат: "В прошлом году собрали 29 центнеров с гектара, в этом - 13000 пудов по краю, в следующем - на 15% больше!" Какая частота при значении 3F? Частота клока меньшается или увеличивается "при TWBR>0x3f"? Там ещё есть ограничение по частоте контроллера от частоты SCL. Дальше. Если "потеря некоторых байт" то надо смотреть программу выдёргивания байт из потока, может пока идёт операция с байтом на АСК уже опоздали... Клок стретчинг предусмотрен?
Сообщение отредактировал Maik-vs - Feb 18 2009, 10:21
|
|
|
|
|
Feb 18 2009, 11:29
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 4-12-05
Из: Екатеринбург
Пользователь №: 11 773

|
Цитата(Maik-vs @ Feb 18 2009, 15:18)  Напомнило советский плакат: "В прошлом году собрали 29 центнеров с гектара, в этом - 13000 пудов по краю, в следующем - на 15% больше!" Какая частота при значении 3F? Частота клока меньшается или увеличивается "при TWBR>0x3f"? Там ещё есть ограничение по частоте контроллера от частоты SCL. Дальше. Если "потеря некоторых байт" то надо смотреть программу выдёргивания байт из потока, может пока идёт операция с байтом на АСК уже опоздали... Клок стретчинг предусмотрен? Гм... Если Вы, многоуважаемый, хоть раз читали мануал по контроллерам AVR, то вполне бы наткнулись там на формулу Fscl=Fclk/(16*TWBR*4^TWPS)...как вы думаете, что происходит с частотой?....:-) А вообще ситуация обстоит в следующем... сперва ведущий отправляет SLA+R и читает несколько байт, затем после задержки в несколько тактов процессора отправляет SLA+W и скидывает на ведомый несколько байт, затем опять повторяем операцию чтения(читаем те же байты которые до этого отправляли)... и тут самое интересное... эти байты считываются неправильно!!! Если же частоту понижаем, выставив значение TWBR>0x3F то обмен происходит без потерь. З.Ы. Для программы ведущего используется атмеловский драйвер(описан в AVR315), для ведомого написана небольшая программка на асме.
|
|
|
|
|
Feb 19 2009, 10:20
|
Местный
  
Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101

|
Цитата(zoddy @ Feb 18 2009, 14:29)  Гм... Если Вы, многоуважаемый, хоть раз читали мануал по контроллерам AVR, то вполне бы наткнулись там на формулу Fscl=Fclk/(16*TWBR*4^TWPS)...как вы думаете, что происходит с частотой?....:-)
А вообще ситуация обстоит в следующем... сперва ведущий отправляет SLA+R и читает несколько байт, затем после задержки в несколько тактов процессора отправляет SLA+W и скидывает на ведомый несколько байт, затем опять повторяем операцию чтения(читаем те же байты которые до этого отправляли)... и тут самое интересное... эти байты считываются неправильно!!!
Если же частоту понижаем, выставив значение TWBR>0x3F то обмен происходит без потерь. Вы, я вижу, уже решили проблему резисторами (на этой длине линии). Но в этом посте напрягает "после задержки в несколько тактов процессора". Возможно, Вам, многоуважаемый, стоит более внимательно отнестись к параметру tbuf, приведённом на рис. 27 фирменного руководства по I2C.
Сообщение отредактировал Maik-vs - Feb 19 2009, 10:21
|
|
|
|
|
Feb 19 2009, 11:04
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 4-12-05
Из: Екатеринбург
Пользователь №: 11 773

|
Цитата(Maik-vs @ Feb 19 2009, 15:20)  Вы, я вижу, уже решили проблему резисторами (на этой длине линии). Но в этом посте напрягает "после задержки в несколько тактов процессора". Возможно, Вам, многоуважаемый, стоит более внимательно отнестись к параметру tbuf, приведённом на рис. 27 фирменного руководства по I2C. Да не напрягайтесь Вы так, право же.. это лишнее!!! :-) Все когда-нибудь бывает в первый раз, в том числе и изучение интерфейсов навроде i2c, и не всегда под рукой бывает "фирменное руководство... с рисунком 27". И именно для этого создаются подобные форумы, чтобы была возможность получить дельный совет, консультацию и т.п. ,а не "подколки" и чьи-либо "напряжения"... так что... если нечего посоветовать, то лучше оставляйте свои размышления при себе... поэкономьте здоровье и время :-)
|
|
|
|
|
Feb 19 2009, 12:41
|

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

|
Цитата(zoddy @ Feb 19 2009, 19:04)  Все когда-нибудь бывает в первый раз, в том числе и изучение интерфейсов навроде i2c, и не всегда под рукой бывает "фирменное руководство... с рисунком 27". Позволю себе заметить, что чтение документации не отменялось. Ведь на форуме не могут же изложить все содержимое даташита на I2C. А порой даже прочтение его 50% дает ответы на многие вопросы. Цитата(zoddy @ Feb 19 2009, 19:04)  И именно для этого создаются подобные форумы, чтобы была возможность получить дельный совет, консультацию и т.п. ,а не "подколки" и чьи-либо "напряжения"... так что... если нечего посоветовать, то лучше оставляйте свои размышления при себе... После ответов в таком стиле обычно что самое хорошее, так это вообще не отвечать вопрошающему. Человек просит помощи, а потом говорит Цитата(zoddy @ Feb 19 2009, 19:04)  лучше оставляйте свои размышления при себе... поэкономьте здоровье и время :-)
--------------------
Выбор.
|
|
|
|
|
Feb 19 2009, 23:18
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(haker_fox @ Feb 19 2009, 14:41)  После ответов в таком стиле обычно что самое хорошее, так это вообще не отвечать вопрошающему. Человек просит помощи, а потом говорит Я тоже было порывался выступить с негодованием! Но потом понял что - тут все в порядке. Плюс с юмором ;> Просто задайтесь вопросом как бы Вы искали некий tbuf на рисунке N27 "фирменного руководства"? Цитата Позволю себе заметить, что чтение документации не отменялось. Автор нигде не дал повода полагать обратное. С документацией по TWI модулю он ознакомился. Возможно Вы удивитесь, но даже слова I2C в Atmel'овском даташите, например, на M16 Вы не найдете!! Теперь представим гипотетическую ситуацию - не знакомы даже со словом "I2C", читаем док на AVR и находим, что TWI интерфейс как раз то, что надо для связи парочки МК. Пишем программу, но она работает нестабильно на высоких частотах. Приходим на форум, задаем вопрос по TWI (насколько можно настолько точно описав что делаем и как подключаем), а тут пишут - с места в карьер - а tbuf на рисунке фирменной документации I2C учел? Ну и... хоть стой, хоть падай - глобальный конфуз
|
|
|
|
|
Feb 26 2009, 21:07
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(defunct @ Feb 20 2009, 01:18)  Автор нигде не дал повода полагать обратное. С документацией по TWI модулю он ознакомился. ... Пишем программу, но она работает нестабильно на высоких частотах. Приходим на форум, задаем вопрос по TWI (насколько можно настолько точно описав что делаем и как подключаем), а тут пишут - с места в карьер - а tbuf на рисунке фирменной документации I2C учел? Ну и... хоть стой, хоть падай - глобальный конфуз  Я, как это часто бывает, позанудничаю. С одной стороны оно так. А с другой... Если "с документацией по TWI модулю ознакомился", то должен был видеть в ней параметр t BUF "Bus free time between a STOP and START condition". Раздел Electrical Characterisitcs, подраздел 2-wire Serial Interface Characteristics. Для меги168 это таблица 28-5 на странице 309 и картинка 28-4 на следующей странице. (версия документа 2545M). На мой взгляд, тема, поднятая не в "для начинающих", предполагает предарительное внимательное прочтение хотя бы "док на AVR". А уже потом "Плюс с юмором ;>" обижаться на то, что подсказали название параметра, который был в этой "док на AVR", но до него читалка недочитала.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Feb 27 2009, 00:34
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(ReAl @ Feb 26 2009, 23:07)  Я, как это часто бывает, позанудничаю. С одной стороны оно так. А с другой... ... А уже потом "Плюс с юмором ;>" обижаться на то, что подсказали название параметра Попытаюсь обратить Ваше внимание на то, что название параметра всплыло, к сожалению, только после того как вопрос был решен. Если бы он всплыл "до".... А так, право же, нет повода для занудствования  Цитата который был в этой "док на AVR", но до него читалка недочитала Резисторы решили проблему - значит автор учел упомянутый "Bus free time between a STOP and START condition" сразу, стало быть читалка дочитала?
|
|
|
|
|
Feb 27 2009, 10:26
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(defunct @ Feb 27 2009, 02:34)  Резисторы решили проблему - значит автор учел упомянутый "Bus free time between a STOP and START condition" сразу, стало быть читалка дочитала? Ах, извините, значит читалка недочитала про резисторы. Что тоже довольно странно - на всех картинках номиналы не даны, так что можно было бы и задуматься - так какие же нужны? И полезть в ту же таблицу, где про t BUF и прочесть допустимые границы изменения сопротивления этих резисторов - минимум исходя из V CC и допустимого тока, максимум - исходя из характерных времён для класса частоты шины и C b - ёмкости шины. Так чта... Извиниться могу только за неправильно указанное "до чего" читалка недочитала. Впрочем, недочитывающие читалки достаточно распространены, часто именно про резисторы.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
Сообщений в этой теме
zoddy вопрос по работе TWI Feb 18 2009, 04:53        VladimirYU Цитата(defunct @ Feb 20 2009, 02:18) ....... Feb 20 2009, 06:27         zoddy Цитата(VladimirYU @ Feb 20 2009, 11:27) М... Feb 20 2009, 07:43          haker_fox Цитата(zoddy @ Feb 20 2009, 15:43) Огромн... Feb 20 2009, 09:38           Maik-vs Рад, что мой пост так оживил тему!
Собственно,... Feb 20 2009, 13:38            VladimirYU Цитата(Maik-vs @ Feb 20 2009, 16:38)... Feb 21 2009, 07:05           defunct Цитата(ReAl @ Feb 27 2009, 12:26) Что тож... Feb 27 2009, 12:02            ReAl Цитата(defunct @ Feb 27 2009, 14:02) Согл... Feb 27 2009, 13:43 demiurg_spb Чем выше скорость тем резче должны быть фронты. На... Feb 18 2009, 09:06 IgorKossak zoddy, Вам уже напоминали о резисторах подтяжки. 1... Feb 18 2009, 17:44 zoddy Цитата(IgorKossak @ Feb 18 2009, 22:44) z... Feb 19 2009, 08:01 DS Господа знатоки ATMeg !
Есть ли способ вывест... Feb 28 2009, 16:19 defunct Цитата(DS @ Feb 28 2009, 18:19) Есть ли с... Feb 28 2009, 17:16  DS Цитата(defunct @ Feb 28 2009, 20:16) Сбро... Feb 28 2009, 17:26   defunct Цитата(DS @ Feb 28 2009, 19:26) Таймаут н... Feb 28 2009, 17:30    DS Цитата(defunct @ Feb 28 2009, 20:30) Тайм... Feb 28 2009, 17:32     defunct Цитата(DS @ Feb 28 2009, 19:32) А как узн... Feb 28 2009, 17:45      DS Цитата(defunct @ Feb 28 2009, 20:45) В сл... Feb 28 2009, 18:01 singlskv Цитата(DS @ Feb 28 2009, 19:19) Господа з... Feb 28 2009, 18:08  DS Цитата(singlskv @ Feb 28 2009, 21:08) Пок... Feb 28 2009, 19:02   singlskv Цитата(DS @ Feb 28 2009, 22:02) Вот так п... Feb 28 2009, 19:59    DS Цитата(singlskv @ Feb 28 2009, 22:59) Кар... Feb 28 2009, 20:07     singlskv Цитата(DS @ Feb 28 2009, 23:07) Слэйв дер... Feb 28 2009, 20:35 DS А не может ли вызывать завис изменение режима SPI ... Mar 1 2009, 00:13 defunct ЦитатаА не может ли вызывать завис изменение режим... Mar 1 2009, 01:06 DS Цитата(defunct @ Mar 1 2009, 04:06) Не до... Mar 1 2009, 09:43 DS Вот код, который вызывает неадекватное поведение 4... Mar 1 2009, 11:46 DS Блин, классическое "сам дурак" - Наводки... Mar 1 2009, 13:00 SasaVitebsk Цитата(DS @ Mar 1 2009, 17:00) Так и рожд... Mar 1 2009, 16:34
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|