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

 
 
> Помогите "подружить" по I2C два устройства, SC18IM700 + TAS5414B
ikm
сообщение Mar 30 2017, 09:42
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 891
Регистрация: 25-12-06
Из: С-Пб
Пользователь №: 23 894



Есть преобразователь SC18IM700 из UART to I2C, необходимо общаться с TAS5414B.
Но возникли сложности при считывании регистров:
В описании SC18 указано, что для считывания необходимо задать адрес ведомого и указать количество байт которые я ожидаю получить, но в инструкции на TAS5414 указано что помимо адреса надо еще указывать подадрес (регистры где необходимые значения), так вот как это сделать я чего то не пойму.
Для режима записи вроде понятно, там после указания количества байт можно указывать инструкции что и куда записать. Вот правда проверить правильность не получается.
Прикрепленные файлы
Прикрепленный файл  SC18IM700.pdf ( 118.99 килобайт ) Кол-во скачиваний: 16
Прикрепленный файл  tas5414b_q1.pdf ( 2.08 мегабайт ) Кол-во скачиваний: 19
 


--------------------
ОБХОДЯ РАЗЛОЖЕННЫЕ ГРАБЛИ - ТЫ ТЕРЯЕШЬ ДРАГОЦЕННЫЙ ОПЫТ!!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
k155la3
сообщение Mar 30 2017, 14:11
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Вам надо разделить адресацию (в смысле понимания) для мастера и слейва.
- Адресация по шине I2c - 7-битная, без всяких "подаресов".
- Адресация регистров мастера
- Адресация регистров слейва.
Добейтесь четкого отрабатывания:
- посылки адреса слейва
- проверки ответа от него ACK (ответ только на "свой" адрес)
Если это будет работать - можно двигать дальше.

Судя по даташиту, ОНО должно работать из терминалки - так как команды ASCII.
Также надо проверить инициализацию самого мастера (настройки его регистров)
Обратите внимание на fifo - возможно надо делать операции подобные purge/drain fifo
чтобы команда пошла на исполнение (как в PC так и в мастере).
Go to the top of the page
 
+Quote Post
ikm
сообщение Mar 30 2017, 14:58
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 891
Регистрация: 25-12-06
Из: С-Пб
Пользователь №: 23 894



Цитата(k155la3 @ Mar 30 2017, 17:11) *
Вам надо разделить адресацию (в смысле понимания) для мастера и слейва.
- Адресация по шине I2c - 7-битная, без всяких "подаресов".
- Адресация регистров мастера
- Адресация регистров слейва.
Добейтесь четкого отрабатывания:
- посылки адреса слейва
- проверки ответа от него ACK (ответ только на "свой" адрес)
Если это будет работать - можно двигать дальше.

Судя по даташиту, ОНО должно работать из терминалки - так как команды ASCII.
Также надо проверить инициализацию самого мастера (настройки его регистров)
Обратите внимание на fifo - возможно надо делать операции подобные purge/drain fifo
чтобы команда пошла на исполнение (как в PC так и в мастере).

Так я из терминалки сейчас и мучаю его.
До регистров мастера достучатся не проблема, там всё четко.
Чуть выше я не верно описал последовательно команд.
Было так: старт/адрес слейва+чтение/количество принимаемых байт/регистры ведомого (0С)/конец пакета это из описания на SC18
53 D9 01 0С 50
Из описания на слейв должно выглядеть так: старт/адрес слейва+чтение/регистры ведомого (0С)/рестарт/количество принимаемых байт//конец пакета
53 D9 0C 53 D9 01 50
Как я писал ранее Если послать слейву команду 53 D9 01 50, то я получу один байт в ответ, если 53 D9 0А 50 то соответвенно 10 байт в ответе. Но значения байтов в этих ответах всё время разные. На другие адреса слейв не отвечает.
Отсюда следует, что мастер воспринимает 3-ий байт как значение количества байт которые он должен принять от слейва.
Цитата(k155la3 @ Mar 30 2017, 17:11) *
Обратите внимание на fifo - возможно надо делать операции подобные purge/drain fifo

Не совсем понял где делать эти операции? FIFO у м/сх 16 байт, что вполне хватает для команды чтения.

Хм, поковырял еще немного вроде добился чтения вот такой командой, как раз как советовали read after write старт/адрес+бит записи/количество байт/регистр куда делать запись/рестарт/адрес+бит чтения/количество байт получаемых/стоп


--------------------
ОБХОДЯ РАЗЛОЖЕННЫЕ ГРАБЛИ - ТЫ ТЕРЯЕШЬ ДРАГОЦЕННЫЙ ОПЫТ!!!
Go to the top of the page
 
+Quote Post
Lagman
сообщение Mar 30 2017, 20:37
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245



Цитата(ikm @ Mar 30 2017, 17:58) *
Хм, поковырял еще немного вроде добился чтения вот такой командой, как раз как советовали read after write старт/адрес+бит записи/количество байт/регистр куда делать запись/рестарт/адрес+бит чтения/количество байт получаемых/стоп

Да, в фазу записи Вы указываете адрес устройства и как бы записываете субадрес откуда будете потом считывать второй фазой чтения (адрес устройства и байты для чтения). Это все без накладных указаний для SC18IM700.
Go to the top of the page
 
+Quote Post



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

 


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


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