Перейти к содержанию
    

В этом то и проблема я не полностью понимаю как выделить конкретно данные из 12С чтоб получить не всю информацию а только разширения

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В этом то и проблема я не полностью понимаю как выделить конкретно данные из 12С чтоб получить не всю информацию а только разширения

Ну для начала изучайте как работает I2C.Вот ссылка для примера http://easyelectronics.ru/interface-bus-iic-i2c.html

Если вкратце:

1. Старт условие

2. Адрес EEPROM

3. Бит указывающий, что вы обращаетесь с чтением.

4. Проанализировать ответила ли EEPROM. Т.е Выполнилось ли ACK условие.

5. Повторный старт

6. Адрес ячейки, где расположено разрешение.

7. Прочитали 1 байт подали ACK условие.

8. Когда прочитали все-что нужно подаете NACK.

9. Потом подаете стоп условие.

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

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

Ключевой пункт - пункт 6. Работая с EEPROM вы имеете полное право указывать при обращении адрес ячейки с которой хотите общаться. Вот только если ячейки расположены не подряд, то после каждого прочитанного байта, необходимо будет завершать чтение, и снова обращаться с новым адресом ячейки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А нет примера работы с 12с masters

Есть первая же ссылка в GOOGLE.RU по запросу "i2c vhdl"

Хотя не уверен, что там есть возможность выдавать повторный старт для указания адреса, но не думаю, что будут особые сложности добавить его самостоятельно. Проще самому написать, тем более реализовать I2C MASTER куда проще чем I2C SLAVE.

Изменено пользователем Flip-fl0p

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12c master проще но осталось разобраться в работе а я никогда не работал с 12с ещё

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

по ссылке (ссылка действует в течении 7 дней)

по ссылке xapp 333 (с исходниками)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

. Когда прочитали все-что нужно подаете NACK.

Может я чего то забыл, но зачем пороть обмен ошибкой перед завершением? Для штатного окончания есть стоп последовательность, НАК то зачем?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может я чего то забыл, но зачем пороть обмен ошибкой перед завершением? Для штатного окончания есть стоп последовательность, НАК то зачем?

Это стандартный ответ мастера когда он больше не нуждается в услугах SLAVE. Во всяком случае во всех datasheet на I2C EEPROM описано именно так. Вот к примеру http://www.atmel.com/images/Atmel-8700-SEE...C-Datasheet.pdf (стр. 11). - окончанию чтения предшествует ответ мастера NACK.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ох и правда по окончанию чтения мастер накает, спасибо.

Nack для того, чтобы слейв освободил шину и не мешал, когда мастер будет выставлять стоп или повторный старт.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...