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

 
 
> Из Atmega8 в Atmega16, TWI не хочет мигрировать
Basilkmv06
сообщение Jun 6 2006, 17:16
Сообщение #1





Группа: Участник
Сообщений: 13
Регистрация: 14-01-06
Пользователь №: 13 169



Очень внимательно прочитал ветку "Проблема с TWI", но вопросы остались.
Суть вопроса такова. До сихпор пользовался мегой8 и ее аппаратным TWI в слайве, но быстрый переход на мегу16 не удался. После долгих ковыряний всяких доков написал маленький софт на
LPT (что-то вроде мастера TWI). Пришел к выводу, что при таких равных условиях
1. Оба кристала подключены по одинаковой схеме;
2. Оба работают на внутреннем генераторе 8МГц;
3. Оба кристала выполняют одинаковый код
мега16 отказывается работать уже на частоте CLK ~150кГц, когда как м8 только на ~270кГц.
Обе проца 16мегагерцовые, единственное м8-PDIP, а м16- TQFP. В чем может быть пичина?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Woodoo
сообщение Jun 11 2006, 06:07
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 26-05-05
Из: Севастополь
Пользователь №: 5 391



осцилограф есть? может кинишь осцилограмки SDA/SCL меги16 на 160 и 250 kHz?
Go to the top of the page
 
+Quote Post
Basilkmv06
сообщение Jun 13 2006, 09:44
Сообщение #3





Группа: Участник
Сообщений: 13
Регистрация: 14-01-06
Пользователь №: 13 169



TWI ЗАРАБОТАЛ!!
Долгие размышления по поводу косяков привели к следующим выводам:
1.С ростом скорости передачи на линиях SDA SCL фронтов сигналов (очевидно заметна емкость длинного кабеля от LPT).
2.Эти ошибки отображаются в регистре статуса как TWSR=0x00.
3.Согласно документации АТМЕЛА
Status $00 indicates that a bus error has occurred during a Two-wire Serial Bus transfer.
A bus error occurs when a START or STOP condition occurs at an illegal position in
the format frame. Examples of such illegal positions are during the serial transfer of an
address byte, a data byte, or an acknowledge bit. When a bus error occurs, TWINT is
set. To recover from a bus error, the TWSTO flag must set and TWINT must be cleared
by writing a logic one to it. This causes the TWI to enter the not addressed slave mode
and to clear the TWSTO flag (no other bits in TWCR are affected). The SDA and SCL
lines are released, and no STOP condition is transmitted.

ошибка обрабатывалась так
//TWCR|=0x40; //Разрешить бит подтверждения
//TWCR&=~0x20; //Запретить START
//TWCR|=0x10; //перезагрузить TWI сформировав STOP
//TWCR|=0x80;
Данный текст отлично работает в меге8. Но в меге16 TWI не перезагружается
и при этом удерживает 0 на ноге SCL, сей факт для меня остался загадкой!

4.В меге16 обработку TWSR=0x00 сделал так
TWCR=0x41;//отключить модуль TWI
TWCR=0xC5;//подклучить модуль TWI
Все заработало!!!!!

Если у кого есть соображения по поводу данной непонятки, то поясните. Зарание благодарен.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Basilkmv06   Из Atmega8 в Atmega16   Jun 6 2006, 17:16
- - defunct   Цитата(Basilkmv06 @ Jun 6 2006, 20:16) ме...   Jun 6 2006, 19:10
- - GetSmart   Ух ты. Не знал, что LPT можно использовать как TWI...   Jun 6 2006, 23:29
|- - Basilkmv06   Цитата(GetSmart @ Jun 7 2006, 03:29) Ух т...   Jun 7 2006, 10:41
- - Faradey   может я не в тему а на какой частое узаете TWI? я ...   Jun 7 2006, 17:39
|- - Basilkmv06   Цитата(Faradey @ Jun 7 2006, 21:39) может...   Jun 8 2006, 15:19
- - GetSmart   А может микруха глючная? Если есть вторая, то пров...   Jun 9 2006, 00:09
- - GetSmart   Я бы не полагался на PC-i2c и для проверки связал ...   Jun 9 2006, 02:25
- - Starick   Цитата(Basilkmv06 @ Jun 6 2006, 20:16) Оч...   Jun 9 2006, 14:43
|- - Basilkmv06   Цитата(Starick @ Jun 9 2006, 18:43) Цитат...   Jun 9 2006, 15:32
- - bodja74   Внутрений генератор у мег на 1,2,4 и 8Мгц.   Jun 9 2006, 14:56
- - bodja74   Еще ,выкладывайте инициализацию TWI слейва,посмотр...   Jun 9 2006, 15:15
|- - Basilkmv06   Цитата(bodja74 @ Jun 9 2006, 19:15) Еще ,...   Jun 9 2006, 15:51
- - bodja74   А с чего Вы взяли что TWBR=0x08 это Bit Rate: 250,...   Jun 9 2006, 16:19
|- - Basilkmv06   Цитата(bodja74 @ Jun 9 2006, 20:19) А с ч...   Jun 9 2006, 17:13
|- - bodja74   Цитата(Basilkmv06 @ Jun 9 2006, 20:13) Чт...   Jun 9 2006, 21:09
|- - Basilkmv06   Цитата(bodja74 @ Jun 10 2006, 01:09) Цита...   Jun 10 2006, 05:52
- - GetSmart   Я не особо глубоко вникал в прогу, но на первый вз...   Jun 10 2006, 07:19
- - bodja74   Арбитраж(выяснение отношений кто из мастеров первы...   Jun 10 2006, 07:55


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

 


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


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