Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
3 / 3 / 1
Регистрация: 27.02.2014
Сообщений: 103

Запутался в адресах и регистрах

18.09.2024, 21:48. Показов 850. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет форумчанам!
Собираю поделку на ADV7623 и на стадии написания прошивки и запутался в документации..
Что-то не особо понимаю как организована память и структура регистров.
С первого взгляда вроде все понятно, но когда начал наполнять заголовочный файл, заметил, что адреса повторяются, но как это может быть, что-то не могу понять.
В первые с такой ситуевиной сталкиваюсь.
Может глянет кто свежим взглядом, так сказать..
Вложения
Тип файла: pdf ADV7623_REG_MAP.pdf (3.20 Мб, 7 просмотров)
Тип файла: pdf ADV7623.pdf (3.26 Мб, 14 просмотров)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.09.2024, 21:48
Ответы с готовыми решениями:

О динамических IP адресах
Добрый вечер, администрация сайта и все форумчане! Большая просьба о помощи! Подскажите, пожалуйста, есть ли выход из следующей ситуации:...

Об адресах и адресации
Занимаюсь настройкой wireguard. Там главный адрес сервера имеет вид: 10.8.0.1/24 я так понял это адрес внутри vpn сети. При...

О внешних и внутренних IP адресах
Доброго времени суток всем. Помогите разобраться в следующем вопросе: есть провайдер который дает мне доступ в интернет, он выделил мне IP...

12
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
18.09.2024, 22:10
Цитата Сообщение от aleksandr_l Посмотреть сообщение
заметил, что адреса повторяются, но как это может быть, что-то не могу понять.
Я не специалист, но в "11 Register Access and Serial Ports Description" указано что на шине I2C у устройства есть 11 адресов.
The ADV7623 has eleven 256-byte maps that can be accessed via the main I2C ports
Как я понимаю, адреса регистров указаны уже внутри "основных".
0
3 / 3 / 1
Регистрация: 27.02.2014
Сообщений: 103
18.09.2024, 22:56  [ТС]
1) В файле ADV7623.pdf на странице 398 есть таблица с описанием всех адресов.
2) В ADV7623_REG_MAP.pdf Полная структура регистров описана.
3) в файле ADV7623_RecSet.pdf на странице 3 указаны адреса состоящие из 2х байт.
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
B2 EE 90 OSD Map I2C address
B2 EF 12 HDMI Tx INFOFRAME Map I2C address
B2 F0 84 TX EDID Map I2C address
B2 F4 80 CEC Map I2C address
B2 F5 7C INFOFRAME Map I2C address
B2 F8 4C DPLL Map I2C address
B2 F9 64 REPEATER Map I2C address
B2 FA 6C EDID Map I2C address
B2 FB 68 HDMI Receiver Map I2C address
B2 FD 44 CP Map I2C address 
 
B2 - Адрес микросхемы
EF - Адрес Блока
хх - А это кто и откуда берется?
Что-то чем дальше, тем я больше путаться начинаю.
Вложения
Тип файла: pdf ADV7623_RecSet.pdf (107.9 Кб, 7 просмотров)
0
3758 / 2637 / 580
Регистрация: 11.09.2009
Сообщений: 9,409
19.09.2024, 01:17
Цитата Сообщение от aleksandr_l Посмотреть сообщение
путаться начинаю.
Попробуйте при чтении каждого пункта описания держать в голове физический протокол передачи по I2C. Никаких других адресов регистров нет. При чтении "подсматривайте", о каком регистре идёт речь.
Всего есть по 256 регистров внутри каждого из 11 Slave-адресов (отсюда наверное у вас путаница, что "адреса повторяются"):

Да, повторяются. 11 раз.
(Это ADV7623.pdf, стр. 397).

И обязательно держите в голове, какой адрес как передаётся на физическом уровне. Это нужно, чтобы не путаться при написании кода функций I/O:

(Это ADV7623.pdf, стр. 399-400).

Ну и конечно не забывать смотреть, в каких битах регистров расположены какие поля управления (чтобы набирать значение регистра в функции I/O):

(Это ADV7623_REG_MAP.pdf)
1
3 / 3 / 1
Регистрация: 27.02.2014
Сообщений: 103
19.09.2024, 12:03  [ТС]
Лучший ответ Сообщение было отмечено i8085 как решение

Решение

i8085, Благодарю пояснение.
Что называется "переспал с этой мыслью" и картинка сложилась.
В общем, ADV7623 имеет 2 статических адреса и 9 адресов которые задаются программно.
1) В файле ADV7623_REG_MAP.pdf карта регистров разложена по функциональным блокам у каждого свой адрес.
2) В блоке IO MAP с адресом 0xB0/0xB2 есть регистры с заданными адресами по умолчанию, но их можно поменять.
Code
1
2
3
4
5
6
7
8
9
OSD_Map = 0xEE
TX_Packet_Map = 0xEF
TX_EDID_Map = 0xF0
CEC_Map = 0xF4
Info_Frame_Map = 0xF5
Repeater_Map = 0xF9
EDID_Map = 0xFA
HDMI_Map = 0xFB
CP_Map = 0xFD
Таким образом мы и получаем 11 блоков, каждый из которых имеет свой адрес и никакой путаницы с пересекающимися адресами регистров.

AD конечно интересно подошли к вопросу...
С одной стороны мы имеем кучу блоков с кучей адресов,
С другой стороны, у нас нет необходимости писать свою логику по управлению микросхемой и просто конфигурируем ее как угодно по I2C.
0
3758 / 2637 / 580
Регистрация: 11.09.2009
Сообщений: 9,409
19.09.2024, 12:59
Цитата Сообщение от aleksandr_l Посмотреть сообщение
AD конечно интересно подошли к вопросу...
Да нормально подошли...
Это чтобы можно было вешать микросхему на общую шину I2C без конфликтов адресов с другими устройствами. Ну а как ещё сотни регистров впихнуть?
0
 Аватар для COKPOWEHEU
4078 / 2676 / 432
Регистрация: 09.09.2017
Сообщений: 11,887
20.09.2024, 09:09
Цитата Сообщение от i8085 Посмотреть сообщение
Ну а как ещё сотни регистров впихнуть?
Например, выделить один регистр для переключения банков. Или просто сделать адреса всех регистров двухбайтными.
0
3758 / 2637 / 580
Регистрация: 11.09.2009
Сообщений: 9,409
20.09.2024, 21:18
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
сделать адреса всех регистров двухбайтными
Протокол I2C нельзя трогать. Другие устройства не поймут.
0
 Аватар для COKPOWEHEU
4078 / 2676 / 432
Регистрация: 09.09.2017
Сообщений: 11,887
20.09.2024, 23:30
Цитата Сообщение от i8085 Посмотреть сообщение
Протокол I2C нельзя трогать. Другие устройства не поймут.
А зачем его трогать? Протокол I2C вообще не регламентирует протокол обмена с устройством - есть операция записи N байт в устройство номер M и есть операция чтения. То, что большинство устройств первый записанный байт трактуют как адрес регистра - их личное дело. Отсюда же тот прекрасный костыль с чтением заданного регистра: ну вот не предусматривает I2C такой операции.
К слову, в MLX90640 как раз используется двухбайтный адрес регистра.
0
3758 / 2637 / 580
Регистрация: 11.09.2009
Сообщений: 9,409
21.09.2024, 10:34
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А зачем его трогать?
Вот именно. Какой смысл в этих рассуждениях? При всём желании мы не можем изменить ни слова в том даташите. Как сделано, так и учи.
0
 Аватар для COKPOWEHEU
4078 / 2676 / 432
Регистрация: 09.09.2017
Сообщений: 11,887
21.09.2024, 12:30
Цитата Сообщение от i8085 Посмотреть сообщение
Какой смысл в этих рассуждениях?
Ну а вдруг разработчики руководствовались какой-нибудь логикой. Тогда было бы любопытно ее услышать. Единственное, как бы я мог оправдать такое извращение - совместимость с некоторыми библиотеками I2C, не умеющими в многобайтный адрес.
0
3758 / 2637 / 580
Регистрация: 11.09.2009
Сообщений: 9,409
21.09.2024, 12:49
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Единственное, как бы я мог оправдать ...
Почему же это единственное? Микросхему проектировать проще - при двухступенчатой адресации блоками, дешифраторы адреса проще, расположить регистры проще...
0
 Аватар для COKPOWEHEU
4078 / 2676 / 432
Регистрация: 09.09.2017
Сообщений: 11,887
21.09.2024, 13:20
Напротив. Фактически, 16-битная адресация это то же, что 256 "устройств" по 256 регистров в каждом. Разница в том, что адреса фиксированные, их можно жестко задать в железе. Впрочем, по сравнению с "полезной" логикой устройства разницу и в микроскоп не увидеть.
Можно попробовать притянуть увеличение на 1 байт размера посылки. Но это тоже вряд ли та разница, на которую стоит обращать внимание.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.09.2024, 13:20
Помогаю со студенческими работами здесь

Чат на динамических IP адресах.
Добрый день! Я пишу программу сокетов. С использованием компонентов TClientSocket на первой проге и TServerSocket на второй. Например...

Ipsec vpn на своих адресах (не интерфейсные)
Ломаю голову тут над задачкой одной по asa. Хочу терминировать ipsec vpn на разных интерфейсах по одному ip-адресу Вводные. 2...

От чего зависит позиция в Яндекс-адресах?
Кто-нибудь знает как повлиять на позицию сайта в яндекс-адресах?

Как удалить название городов в адресах?
Добрый вечер! Возникла такая проблемка, имеются адреса (несколько строк). Каким образом надо прописать функцию, чтобы удалить названия...

Ajax запрос на нескольких адресах Laravel
Доброго времени суток. Имеется js с ajax кодом $('#btntr').click(function(){ $.ajax({ type:"POST", ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru