Обсуждаем контроллеры компании Atmel.
Ответить

atmega324pb TWI

Вс ноя 21, 2021 07:22:51

был у меня рабочий код, для работы с 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 ? В чём причина может быть ?
Читаю мануал, но пока не нашёл.

Re: atmega324pb TWI

Вс ноя 21, 2021 16:58:51

Что происходит на PORTC0 и PORTC1? Регистры MCUCR и PRR0 не трогали?

Re: atmega324pb TWI

Вс ноя 21, 2021 21:09:32

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

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


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

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

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


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


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

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

Уже на грани забить на аппаратный TWI и перейти на программный вариант. Но хотелось бы всё-таки разобраться.

Re: atmega324pb TWI

Пн ноя 22, 2021 11:22:56

Я имел в виду, что снаружи на ножках PC0 и PC1 происходит.

Re: atmega324pb TWI

Пн ноя 22, 2021 12:08:41

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

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

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

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

Либо партия такая попалась, либо серия PB такая в принципе.
Покупал на проверенной фирме.
Сейчас едет партия с другой фирмы, посмотрим.

Re: atmega324pb TWI

Пн ноя 22, 2021 14:42:10

vt1980 писал(а):если тронуть пальцами ножки кварца
а подать 220 Вольт из розетки на ножки кварца ты не пробовал?

Re: atmega324pb TWI

Пн ноя 22, 2021 14:55:59

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

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

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

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

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