roboforum.ru

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

Аппаратный I2C slave на меге

Re: Аппаратный I2C slave на меге

Michael_K » 07 апр 2010, 01:25

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

Michael_K писал(а):1. Я бы все-таки попробовал поднять частоту проца

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

Re: Аппаратный I2C slave на меге

Michael_K » 07 апр 2010, 02:15

Сорри, мне показалось речь про мегагерц шла... :pardon:

Re: Аппаратный I2C slave на меге

Алексей » 08 апр 2010, 10:03

Чайниковский вопрос: какие номиналы резисторов использовать, что бы через звуковуху сигналы на ногах посмотреть программным осциллографом? Поставил делитель 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

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

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

Re: Аппаратный I2C slave на меге

avr123.nm.ru » 09 апр 2010, 22:59

Не надо делитель - просто резисторы 30-60 ком последовательно. Если защита нужна то после резисторов по паре встресно параллелных 1n4148 включите.

Re: Аппаратный I2C slave на меге

Алексей » 10 апр 2010, 08:10

Спасибо. Сегодня попробую.

Re: Аппаратный I2C slave на меге

=DeaD= » 10 апр 2010, 08:16

А зачем на i2c делитель? в NXT вроде подтяжка к 3.3В?

Re: Аппаратный I2C slave на меге

Алексей » 10 апр 2010, 08:30

Хз. Я в электронике ни бум-бум. :pardon:
Просто во всех найденных описаниях программных осциллографов написано, что нужен делитель. Вот я его и пытался втулить. Теперь спецы сказали, что не нужен - не буду ставить. :) Главное звуковуху не спалить. Ее в ноуте не заменишь.

Re: Аппаратный I2C slave на меге

=DeaD= » 10 апр 2010, 09:24

Ой, блин, пропустил посты, вы уже про ввод сигнала в звуковуху :)

Re: Аппаратный I2C slave на меге

Алексей » 10 апр 2010, 18:12

На коротком, тщательно обжатом кабеле сразу заработало. В общем правильно говорят: электроника - наука о контактах.
avr123.nm.ru писал(а):Не надо делитель - просто резисторы 30-60 ком последовательно. Если защита нужна то после резисторов по паре встречно параллельных 1n4148 включите.

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

Re: Аппаратный I2C slave на меге

Romikgy » 10 апр 2010, 19:23

б

Re: Аппаратный I2C slave на меге

Scorpio » 13 апр 2010, 02:23

Алексей писал(а):На коротком, тщательно обжатом кабеле сразу заработало. [/attachment]

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

Re: Аппаратный I2C slave на меге

Алексей » 15 апр 2010, 22:49

Не знаю. МК перепрошиты под кварц. Какие установки фьюзов у Меги8 для работы без кварца?


cron
Rambler\'s Top100 Mail.ru counter