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

 
 
> Жесткие проблемы с I2C..., Помогите, знающие люди)
Genius1
сообщение Sep 19 2008, 17:53
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 14-05-08
Пользователь №: 37 515



Использую PIC18LF2520. Система состоит из 3 процессоров. Они обмениваются друг с другом по I2C. При этом один является мастером, а 2 других - слейвы. Один слейв я для отладки выключил.
Собственно суть проблемы: Мастер производит постоянное (через 10мс) чтение 16 байт с одного из слейвов. Сначала все идет по графику. А через некоторое время (может быть как 2мин, так и 40) мастер уходит в постоянную генерацию. Т.е. на линии SCL наблюдается постоянная генерация тактовых импульсов, а на SDA - постоянная 1. При этом что интересно процессор может так глючить какое-то время (обычно десятки минут) а затем восстановить нормальную работу. Перерыли казалось бы все... Кварц исправен, WDT включен на 4с., Подтяжка I2C 5,6кОм на питание.
И, кстати, еще, снимая питание с MCLR ноги обоих слейвов мастеру попрежнему кто-то в линии I2C отвечает. Фьюз = MCLREN. Так что оба слева вообще должны быть выключены... Кто тогда мастеру отвечает? Сам себе?
ПОМОГИТЕ!!! Тупим уже втроем... Все перебрали...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Sep 19 2008, 18:17
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Используете аппаратный модуль MSSP или программный I2C? Я бы попробовал на мастере сделать программный I2C. Уж он-то при сбросе 100% обязан "затыкаться".
Go to the top of the page
 
+Quote Post
Genius1
сообщение Sep 19 2008, 18:24
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 14-05-08
Пользователь №: 37 515



Цитата(rezident @ Sep 19 2008, 22:17) *
Используете аппаратный модуль MSSP или программный I2C? Я бы попробовал на мастере сделать программный I2C. Уж он-то при сбросе 100% обязан "затыкаться".

Аппаратный MSSP... Использование программного затруднительно, т.к. слейвы одновременно работают еще и через USART.
Go to the top of the page
 
+Quote Post
rezident
сообщение Sep 19 2008, 19:49
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Genius1 @ Sep 20 2008, 00:24) *
Аппаратный MSSP... Использование программного затруднительно, т.к. слейвы одновременно работают еще и через USART.
Не, вы не поняли меня. На слейвах пускай аппаратный остается. Программный I2C попробуйте только на мастере! Генерит (по спецификации I2C имеет право генерить) SCL ведь только мастер.
Go to the top of the page
 
+Quote Post
Constantka
сообщение Sep 20 2008, 02:17
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 47
Регистрация: 15-09-08
Из: Россия, Москва, САО
Пользователь №: 40 220



Цитата(rezident @ Sep 19 2008, 22:49) *
Генерит (по спецификации I2C имеет право генерить) SCL ведь только мастер.
могу подать идею, во время аномальной генерации посадить SDА на землю пинцетиком, если генерация осмысленная, мастер должен ждать, пока линию отпустят, но сама я так не пробовала. За неимением под рукой осциллографа с памятью на 40 минут smile.gif меня выручает ICD2 в режиме отладчика. По крайне мере можно остановить и посмотреть состояние упр. битиков MSSP.

Сообщение отредактировал Короткова Светлана - Sep 20 2008, 02:19
Go to the top of the page
 
+Quote Post



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

 


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


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