Я специалист по аппаратному обеспечению с небольшим опытом работы со встроенными системами, поэтому мой вопрос может быть тривиальным.
Мне нужно перевести коммутатор Ethernet в «тестовый режим 1», который представляет собой тестовый режим на соответствие Ethernet, в который можно вставить микросхему для определения характеристик сигналов на осциллографе. внизу находится страница с таблицей данных, которая показывает этот регистр и то, как перевести его в тестовый режим 1.
Для этого я использую команды u-boot i2c.
адрес ведомого чипа = 0x5F
Адрес порта 1 (для записи) = 0x1112.2 (для 16-битного адреса требуется .2, поправьте меня, если я ошибаюсь)
Я отправляю на коммутатор следующую команду:
# i2c mw 0x05F 0x1112.2 0x01 10
Потом перечитал:
# i2c md 0x05F 0x1112.2 10
1112: 01 00 00 00 00 00 00 00 00 00 00 00 30 00 00 00 ............ 0 ...
Команда, которую я пишу, записывает только первый бит. Я не могу понять, как писать в любой другой бит по этому адресу, кроме первого. Как бы выглядела моя команда u-boot i2c, если бы я хотел установить биты [15:13] на [0 0 1]?
Необычный метод изменения только определенных битов регистра управления требует текущего состояния содержимого регистра. Итак, сначала прочтите контрольный регистр. Измените интересующие вас биты. Затем запишите это значение обратно в регистр.