Полезно знать. Часть 1
Группа H/W команд
(чтение, стирание, запись областей ROM и EEPROM)
Для правильного понимания происходящего, читателю следует запомнить следующее: все чипы – это некоторые «упаковки» (болванки), в которые помещён программный код производителя аккумуляторной батареи. Это справедливо для чипов от компаний Renesas, MAXIM и Texas Instruments.
К примеру, если рассматривать чипы bq2084 и bq80201, то можно найти такие батареи, в которых использованы чипы bq80201, но которые подчиняются условиям F/W программирования, присущим чипу bq2084. Это объясняется тем, что при производстве некоторых чипов bq80201, было использовано ядро и программный код от чипа bq2084.
Но это не означает, что все чипы bq80201 содержат точно такое ядро, как у чипа bq2084.
Косвенным признаком несовместимости может служить версия загрузчика чипа.
В большинстве случаев, чип bq80201 использует загрузчик версии 513, но не редко встречаются чипы с 769-м загрузчиком.
Чипы bq2084 используют только 513-й загрузчик.
На этом отличия не заканчиваются. Чипы могут отличаться ещё и по объёму внутренней памяти. К примеру, объём области локальных настроек (область EEPROM) может составлять 1024 или 2048 byte, а область программного кода (область ROM) может быть 49 kByte или 73 kByte.
Но, если взять два разных чипа, у которых совпадают версии загрузчиков, объёмы EEPROM и ROM, то это не будет говорить о том, что чипы идентичны. Отличие может заключаться во внутренней структуре используемых ядер (к примеру, отсутствие или наличие одного из портов ввода-вывода, дополнительного таймера или любого другого элемента).
Вместе с версией загрузчика, для идентификации чипов, существуют ещё два параметра:
- H/W version;
- F/W version;
Первый говорит о версии самой «болванки» чипа, а второй – о версии микрокода производителя (ROM).
К примеру, чип bq2084: H/W version всегда будет 08.24, а F/W version может принимать значение 0131, 0133, 0140, 0141, 0143 и др.
Ещё пример: Apple Retina, bq20z451, H/W 0451, F/W 0511.
Обращаю Ваше внимание, что F/W version – это версия ROMa чипа, но для изменения версии ROMa, недостаточно перезаписать только эту область памяти!!! Также необходимо перезаписать и область EEPROM.
Это обусловлено тем, что каждый микрокод использует область EEPROM по-разному. Не редко встречаются случаи глобального несоответствия EEPROM-ов, приводящие к «завешиванию» чипа, после того, как после выхода из режима программирования, новый микрокод вычитывает старую область EEPROM и получает оттуда данные, которые приводят к завешиванию ядра. Последующее перепрограммирование такого чипа – невозможно.
EEPROM область чипа неразрывно связана с ROM областью. В связи с этим, чтобы избежать возможной путаницы, для хранения содержимого в виде одного файла, используется особый формат – SENC (или SREC).
Файл .senc – это контейнер, который содержит две области – EEPROM и ROM.
Программное обеспечение от производителя (EV_Software от Texas Instruments), поддерживает только одновременную запись ROM и EEPROM областей с использованием файла .senc или .srec .
Программа UBRT, в отличии от EV_Software, позволяет раздельно записывать эти области.
Также, программа позволяет получить файлы EEPROM и ROM из файла SENC, или произвести обратную процедуру: на основе двух файлов (EEPROM и ROM) – собрать новый файл SENC.
Клонирование чипов.
Для копирования чипа необходимо полное чтение содержимого EEPROM и ROM областей.
Данная процедура возможна только после того, как чип будет переведен в режим программирования (далее этот режим называется Boot_Mode).
Для перевода чипа в этот режим, необходимо подать специальные команды, которые зависят от модели чипа и (или) от версии его F/W.
После того, как чип переведен в режим Boot_Mode, возможно его низко-уровневое программирование – чтение, стирание, запись областей ROM и EEPROM.
После окончания программирования, чип следует переключить к нормальному режиму работы (далее этот режим называется Normal_Mode), для чего следует подать соответствующую команду (производится нажатием соответствующей кнопки в программе UBRT).
Данные процедуры, для чипов от компании Texas Instruments, доступно описаны в документации на сайте www.ti.com .
Всё выше сказанное, частично или полностью соответствует описанию низко-уровневого программирования чипов компаний Renesas и MAXIM.
Для выполнения данных действий, в программе UBRT есть соответствующие инструментальные средства – группа «H/W Operation Board»
В состав этой группы входят:
- Texas Instruments board;
- Maxim board;
- Renesas board;
Каждый инструмент позволяет переводить чипы из Normal_Mode в Boot_Mode и обратно, считывать, стирать и записывать соответствующие области данных, а также сохранять текстовое описание подключенного аккумулятора в виде автоматически генерируемого отчёта с указанием времени создания и модели аккумулятора в имени файла, что позволяет более продуктивно хранить собранные данные для последующей систематизации.