roboforum.ru

Технический форум по робототехнике.
Текущее время: 01 мар 2025, 09:00

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Аппаратный I2C slave на меге
СообщениеДобавлено: 07 апр 2010, 01:25 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
1. Я бы все-таки попробовал поднять частоту проца, потому что там что-то непонятное, судя по этому:
ATmega88 datasheet писал(а):
6.The actual low period generated by the ATmega48/88/168 2-wire Serial Interface is (1/fSCL - 2/fCK), thus fCK must be greater than 6 MHz for the low time requirement to be strictly met at fSCL = 100 kHz.
7.The actual low period generated by the ATmega48/88/168 2-wire Serial Interface is (1/fSCL - 2/fCK), thus the low time require-ment will not be strictly met for fSCL > 308 kHz when fCK = 8 MHz. Still, ATmega48/88/168 devices connected to the bus may communicate at full speed (400 kHz) with other ATmega48/88/168 devices, as well as any other device with a proper tLOW acceptance margin.


И этому:
AVRfreaks писал(а):
Any AVR with a TWI module:
TWI formula error: This (1/Fscl-2/Fck) formula appears in many data sheets Electrical Characteristics section, Two-wire Serial Interface Characteristics in notes 6 and 7. The formula is supposed to be (1/2*Fscl-2/Fck). The Tlow time period calculations work correctly with the new formula.

For note 6:
ATMEL support wrote:
Fck=6 MHz gives 4.67uS
Fck=7 MHz gives 4.71uS
So the idea was that Fck needed to be higher than 6MHz (or close to 7MHz) to meet these requirements.

BTW, newer versions of some of the above data sheets have already been released and the above errors have still not been fixed. The errors were reported to ATMEL and acknowledged as data sheet errors, but have never been dealt with. I fully intend to remove the above data sheet error information when (if) the data sheets actually get fixed. The initial JTD program example error was first acknowledged by ATMEL on March 10, 2005, has been re-reported and is now over 3 years old and counting Shocked. Now brand new data sheets have copied this same bug again Confused. However, three problems reported in the Attiny24/44/84 data sheet were fixed in less than two weeks. I do not understand what is going wrong at ATMEL, but something very important is badly broken.

И не всегда понятно, в каких режимах какие тайминги применимы...

Кроме того есть разные странные упоминания в разных даташитах, которые _могут_ зависеть от чипа и ревизии:
Например отчет об исправлениях в ATmega32:
Цитата:
TWCR Write Operation Ignored when Immediately Repeated
In ATmega32 consecutive write operations to the TWCR Register work as expected, and there is no need to insert a NOP in between


Цитата:
TWI is Speed Limited in Slave Mode
The speed limit in Slave mode does not apply to ATmega32. In ATmega32, the CPU clock frequency in the slave must be at least 16 times higher than the SCL frequency, as described in the datasheet.

То есть видно, что какие-то проблемы были, раз их пришлось исправлять. В каких кристаллах и каких ревизиях
торчат уши, можно только гадать...

Можно еще почитать AVR316: SMbus Slave Using the TWI Module - там немножко "в сторону", но по сути то же самое.

Вообще, имхо, как реализован I2C в АВР-ках можно описать несколькими словами... и все непечатные.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аппаратный I2C slave на меге
СообщениеДобавлено: 07 апр 2010, 01:42 
Не в сети

Зарегистрирован: 12 дек 2009, 23:44
Сообщения: 152
Откуда: Киев
ФИО: Алексей Диомидов
Michael_K писал(а):
1. Я бы все-таки попробовал поднять частоту проца

8 мгц - куда уж выше. Проц - 8L


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аппаратный I2C slave на меге
СообщениеДобавлено: 07 апр 2010, 02:15 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аппаратный I2C slave на меге
СообщениеДобавлено: 08 апр 2010, 10:03 
Не в сети

Зарегистрирован: 12 дек 2009, 23:44
Сообщения: 152
Откуда: Киев
ФИО: Алексей Диомидов
Чайниковский вопрос: какие номиналы резисторов использовать, что бы через звуковуху сигналы на ногах посмотреть программным осциллографом? Поставил делитель 3К3 и 2К2. Подключил между питанием и землей. Все красиво вроде. В центре 1.9В. Перекинул с питания на ногу - напряжение на ноге упало с 2.5 до 0.25В.

Еще. В коде в первом посте пропущена строка (в процессе упрощения кода ее удалил, но потом быстро восстановил):
Код:
  TWCR = (1<<TWINT) | (1<<TWEA) | (1<<TWEN) | (1<<TWIE);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аппаратный I2C slave на меге
СообщениеДобавлено: 09 апр 2010, 22:53 
Не в сети

Зарегистрирован: 12 дек 2009, 23:44
Сообщения: 152
Откуда: Киев
ФИО: Алексей Диомидов
Две рядом стоящие меги соединились. Прога слэйва не менялась. Похоже провода? Из-за дурацкого разъема NXT у меня получилось около 50см и 3 разъема по дороге. Завтра на радиорынке куплю RJ-12 разъем, откушу ему ухо :D и сделаю короткий провод.

PS: а номиналы на делитель никто так и не скажет? Не верится, как-то, что никто тут звуковую карту в качестве осциллографа не использует. :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аппаратный I2C slave на меге
СообщениеДобавлено: 09 апр 2010, 22:59 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Не надо делитель - просто резисторы 30-60 ком последовательно. Если защита нужна то после резисторов по паре встресно параллелных 1n4148 включите.

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аппаратный I2C slave на меге
СообщениеДобавлено: 10 апр 2010, 08:10 
Не в сети

Зарегистрирован: 12 дек 2009, 23:44
Сообщения: 152
Откуда: Киев
ФИО: Алексей Диомидов
Спасибо. Сегодня попробую.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аппаратный I2C slave на меге
СообщениеДобавлено: 10 апр 2010, 08:16 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
А зачем на i2c делитель? в NXT вроде подтяжка к 3.3В?

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аппаратный I2C slave на меге
СообщениеДобавлено: 10 апр 2010, 08:30 
Не в сети

Зарегистрирован: 12 дек 2009, 23:44
Сообщения: 152
Откуда: Киев
ФИО: Алексей Диомидов
Хз. Я в электронике ни бум-бум. :pardon:
Просто во всех найденных описаниях программных осциллографов написано, что нужен делитель. Вот я его и пытался втулить. Теперь спецы сказали, что не нужен - не буду ставить. :) Главное звуковуху не спалить. Ее в ноуте не заменишь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аппаратный I2C slave на меге
СообщениеДобавлено: 10 апр 2010, 09:24 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Ой, блин, пропустил посты, вы уже про ввод сигнала в звуковуху :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аппаратный I2C slave на меге
СообщениеДобавлено: 10 апр 2010, 18:12 
Не в сети

Зарегистрирован: 12 дек 2009, 23:44
Сообщения: 152
Откуда: Киев
ФИО: Алексей Диомидов
На коротком, тщательно обжатом кабеле сразу заработало. В общем правильно говорят: электроника - наука о контактах.
avr123.nm.ru писал(а):
Не надо делитель - просто резисторы 30-60 ком последовательно. Если защита нужна то после резисторов по паре встречно параллельных 1n4148 включите.

Встречно-параллельно это как? От резистора ко входу в звуковуху (а) или к земле (б)?
Вложение:
osc.PNG
osc.PNG [ 3.3 КиБ | Просмотров: 1816 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аппаратный I2C slave на меге
СообщениеДобавлено: 10 апр 2010, 19:23 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2009, 13:37
Сообщения: 750
Откуда: Porto Franco "Odessa"
б

_________________
die Wahrheit ist irgendwo da draußen


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аппаратный I2C slave на меге
СообщениеДобавлено: 13 апр 2010, 02:23 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2008, 18:49
Сообщения: 2683
Откуда: Где-то в Латинской Америке
Алексей писал(а):
На коротком, тщательно обжатом кабеле сразу заработало. [/attachment]

А без кварца интересно тоже работает?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аппаратный I2C slave на меге
СообщениеДобавлено: 15 апр 2010, 22:49 
Не в сети

Зарегистрирован: 12 дек 2009, 23:44
Сообщения: 152
Откуда: Киев
ФИО: Алексей Диомидов
Не знаю. МК перепрошиты под кварц. Какие установки фьюзов у Меги8 для работы без кварца?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO