atmega324pb TWI

Обсуждаем контроллеры компании Atmel.
Ответить
vt1980
Встал на лапы
Сообщения: 106
Зарегистрирован: Вс апр 01, 2012 22:15:14

atmega324pb TWI

Сообщение vt1980 »

был у меня рабочий код, для работы с TWI, написанный под atmega644pa
переделал его под atmega324pb (у которой два TWI)
переименовал нужные регистры добавив нолик,
и теперь не работает собака, виснет на строке

TWCR0=(1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
while(!(TWCR0 & (1<<TWINT)));

Из цикла не выходит.

Инициализировал как обычно

TWBR0 = (F_CPU/slaveF_SCL - 16)/2;
if (TWBR0 < 10) {TWBR0 = 10;}
TWSR0 &= (~((1<<TWPS1)|(1<<TWPS0)));

Проблема не в железе. Схема работала.

Кто работал с такими мегами с буквой B ? В чём причина может быть ?
Читаю мануал, но пока не нашёл.
Аватара пользователя
U235
Встал на лапы
Сообщения: 135
Зарегистрирован: Вт фев 21, 2012 20:42:26
Откуда: Санкт-Петербург, Россия, Земля

Re: atmega324pb TWI

Сообщение U235 »

Что происходит на PORTC0 и PORTC1? Регистры MCUCR и PRR0 не трогали?
vt1980
Встал на лапы
Сообщения: 106
Зарегистрирован: Вс апр 01, 2012 22:15:14

Re: atmega324pb TWI

Сообщение vt1980 »

Что происходит на PORTC0 и PORTC1

Никак не используются. Настроены как выходы.


Регистры MCUCR и PRR0 не трогали?

Сначала не трогал.

потом прописал даже
PRR0 &= (~(1<<PRTWI0));
чтоб удостоверится что режим энергосбережения не включен.


MCUCR не использую.
вообще прерывания не включаю.


Но факт в том что всё работало. В коде ничего кроме названий регистров не менялось.

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

Уже на грани забить на аппаратный TWI и перейти на программный вариант. Но хотелось бы всё-таки разобраться.
Аватара пользователя
U235
Встал на лапы
Сообщения: 135
Зарегистрирован: Вт фев 21, 2012 20:42:26
Откуда: Санкт-Петербург, Россия, Земля

Re: atmega324pb TWI

Сообщение U235 »

Я имел в виду, что снаружи на ножках PC0 и PC1 происходит.
А из наших труб идет необычный дым. Стой! Опасная зона! Работа мозга!...
vt1980
Встал на лапы
Сообщения: 106
Зарегистрирован: Вс апр 01, 2012 22:15:14

Re: atmega324pb TWI

Сообщение vt1980 »

U235 писал(а):что снаружи на ножках PC0 и PC1 происходит.

Вообще ничего не происходило. +5в на обеих.

Но похоже это сами микросхемы такие.
Поменял кварц на более низкочастотный, с 18.432 на 14.7456 , перенастроил частоту, и всё запустилось.
Хотя генерация была в норме. И код выполнялся нормально. кроме работы с TWI.

Ещё один неприятный нюанс с ними вылез, если тронуть пальцами ножки кварца, то в прошивке прописывается мусор.
В самом коде есть команды работы с флеш памятью, но с серией A и PA такого не наблюдалось.
То есть от малейшей помехи, содержимое рабочих регистров нарушается, и на высоких частотах периферия глючит.
Обвязка кварца и фьюзы по мануалу.

Либо партия такая попалась, либо серия PB такая в принципе.
Покупал на проверенной фирме.
Сейчас едет партия с другой фирмы, посмотрим.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19039
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: atmega324pb TWI

Сообщение Starichok51 »

vt1980 писал(а):если тронуть пальцами ножки кварца
а подать 220 Вольт из розетки на ножки кварца ты не пробовал?
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
vt1980
Встал на лапы
Сообщения: 106
Зарегистрирован: Вс апр 01, 2012 22:15:14

Re: atmega324pb TWI

Сообщение vt1980 »

а подать 220 Вольт из розетки на ножки кварца ты не пробовал?

туалетный юмор нынче не в моде.

задел чисто случайно, увидел эффект которого не должно быть.
в крайнем случае генерация должна пропасть и контроллер остановиться.

когда тестирую изделия на надёжность, то проверяю различные ситуации которые могут возникнуть.
в том числе и влияние внешних факторов на кварцевый генератор.

некоторые устройств для проверки цепей защиты и шокером могу треснуть и 220 подать.
Ответить

Вернуться в «AVR»