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

 
 
 
Reply to this topicStart new topic
> I2C, Ложное прерывание
bus16
сообщение Jul 11 2007, 05:35
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 78
Регистрация: 10-01-07
Пользователь №: 24 270



Вопрос к тем, кто "собаку съел" с I2C.
Кристалл LPC2148. Работаю с EEPROM типа 24xx256. Обмен на 400 кБит/сек. Так вот: при интенсивном обмене с устройством изредка возникают прерывания с состоянием I2C0STAT = 0xF8 (т.е. признака прерывания нет, а прерывание от модуля пришло). Обработчик прерывания - вылизан предельно, всё в соответствии с мануалами на оба устройства. Где может быть проблема, на что обратить внимание?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 11 2007, 07:54
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Niko1a$ @ Jul 11 2007, 08:35) *
Где может быть проблема, на что обратить внимание?

А дальнейшие последствия какие? На какой фазе сие случается?
Работаю в аналогичных условиях, но все неизвестные состояния просто молча игнорируются
(просто и не пробовал фиксировать факт непонятных сосстояний) в обработчике.
Абсолютно никаких проблем с конечным результатом не наблюдается вообще.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
bus16
сообщение Jul 11 2007, 08:53
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 78
Регистрация: 10-01-07
Пользователь №: 24 270



Цитата
А дальнейшие последствия какие? На какой фазе сие случается?

В том-то и дело, что последствий нет smile.gif Всё пучком!
Но, вопрос: почему такое происходит. Кстати, столкнулся с такой-же проблемой при прерывании от INTа и UART- признака нет, прерывание пришло... wacko.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 11 2007, 12:13
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Niko1a$ @ Jul 11 2007, 11:53) *
В том-то и дело, что последствий нет smile.gif Всё пучком!

Могу, конечно у себя поставить фиксацию фактов странных сосстояний при случае.
Цитата
Кстати, столкнулся с такой-же проблемой при прерывании от INTа и UART- признака нет, прерывание пришло... wacko.gif

C UART у меня аналогично - 'странные' молча игнорируются.
Сейчас как раз вожусь с большми потокам от UART, впихнул интереса ради фиксацию такого факта в виде 'beep'. Полет нормальный, проблем нет.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jul 11 2007, 21:15
Сообщение #5


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Niko1a$ @ Jul 11 2007, 09:35) *
Вопрос к тем, кто "собаку съел" с I2C.
Кристалл LPC2148. Работаю с EEPROM типа 24xx256. Обмен на 400 кБит/сек. Так вот: при интенсивном обмене с устройством изредка возникают прерывания с состоянием I2C0STAT = 0xF8 (т.е. признака прерывания нет, а прерывание от модуля пришло). Обработчик прерывания - вылизан предельно, всё в соответствии с мануалами на оба устройства. Где может быть проблема, на что обратить внимание?

0xF8 это переходное состояние внутреннего автомата i2c которое может возникать
между любыми другими состояниями, правда прерывание оно вызывать не должно.
Может быть помехи ?
Go to the top of the page
 
+Quote Post
bus16
сообщение Jul 12 2007, 04:48
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 78
Регистрация: 10-01-07
Пользователь №: 24 270



Цитата
Может быть помехи ?

Вряд-ли, проводников 4 см вместе с питанием.
У меня серьёзные подозрения о правильности работы системы прерываний у данной линейки контроллеров: при использованиии нескольких источников прерываний (в моём случае их 7) начинают возникать "несуществующие" состояния. Если источников 2-3 - таких вещей не наблюдается. Но опять повторюсь, что на конечный результат эти состояния не влияют.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 12 2007, 07:57
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Niko1a$ @ Jul 12 2007, 07:48) *
Если источников 2-3 - таких вещей не наблюдается.

Вчера весь день плотно копался с железкой со следующими прерываниями:
Все 4 внешних - 2ms тактировка системы, прерывание от нагруженного Entherhet, прерывание от 64Kbit интерфейса и от Slave висящего на SPI. Внутренние - UART(115K и прием и передача на прерываниях), RTC(ежесекундные) и ADC (пачками по 256-512 раз в несколько десятков секунд), I2C( в этом случае используется изредка - EEPROM только для конфигурации висит), FIQ от SPI. Итого - 9. Слежение за ложными на UART висит и.... не обнаружено.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Swed
сообщение Jul 14 2007, 21:19
Сообщение #8





Группа: Новичок
Сообщений: 6
Регистрация: 27-06-06
Пользователь №: 18 405



Есть маленькое подозрения, что это помехи.
Go to the top of the page
 
+Quote Post

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

 


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


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