taoga 0 16 сентября, 2015 Опубликовано 16 сентября, 2015 · Жалоба Здраствуйте! Имеется bq40z60evm http://www.ti.com/product/bq40z60?keyMatch...h-EN-Everything - полный менеджер батареи(батарей): зарядка, защита, контроль состояния. Для связи есть smbus. Зарядил от нее 3S2P сборку батарей типоразмера 18650. Запитал SBC. С помощью ПО bqstudio можно контролировать, и изменять параметры микросхемы bq40z60, они сохраняются во флэш. Здесь вопросов почти нет. Далее мне нужно контролировать bq40z60 из Linux(ubuntu 14.04 linaro с lxde). На борде есть i2c, подсоединяю и нечего не вижу. i2cdetect не видит адресов bq40z60. Т.е. bq40z60 отсоединено или подсоединено, вывод i2cdetect остается одним и тем же. linaro@linaro-alip:~$ ls /dev autofs loop7 ram13 tty12 tty4 ttymxc0 block mem ram14 tty13 tty40 ttymxc1 bus mtd0 ram15 tty14 tty41 ttymxc4 char mtd0ro ram2 tty15 tty42 ubi_ctrl console mtd1 ram3 tty16 tty43 urandom core mtd1ro ram4 tty17 tty44 v4l cpu_dma_latency mtd2 ram5 tty18 tty45 vcs disk mtd2ro ram6 tty19 tty46 vcs1 dri mtdblock0 ram7 tty2 tty47 vcs2 fb0 mtdblock1 ram8 tty20 tty48 vcs3 fb1 mtdblock2 ram9 tty21 tty49 vcs4 fd mxc_asrc random tty22 tty5 vcs5 full mxc_hdmi rfkill tty23 tty50 vcs6 fuse mxc_hdmi_cec rtc tty24 tty51 vcs7 galcore mxc_ipu rtc0 tty25 tty52 vcsa hwrng mxc_vpu rtc1 tty26 tty53 vcsa1 i2c-0 mxs_viim sda tty27 tty54 vcsa2 i2c-1 network_latency sda1 tty28 tty55 vcsa3 i2c-2 network_throughput sdb tty29 tty56 vcsa4 input null sdb1 tty3 tty57 vcsa5 kmsg port shm tty30 tty58 vcsa6 log pps0 snd tty31 tty59 vcsa7 loop-control ptmx stderr tty32 tty6 vga_arbiter loop0 ptp0 stdin tty33 tty60 video0 loop1 pts stdout tty34 tty61 video1 loop2 ram0 tty tty35 tty62 video16 loop3 ram1 tty0 tty36 tty63 video17 loop4 ram10 tty1 tty37 tty7 watchdog loop5 ram11 tty10 tty38 tty8 zero loop6 ram12 tty11 tty39 tty9 linaro@linaro-alip:~$ i2cdetect -l i2c-0 i2c i2c-0 unknown 21a0000.i2c N/A i2c-1 unknown 21a4000.i2c N/A i2c-2 unknown 21a8000.i2c N/A linaro@linaro-alip:~$ sudo i2cdetect -y 0 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: UU 21 -- UU -- -- -- -- -- UU -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: UU UU UU UU -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- linaro@linaro-alip:~$ sudo i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- UU -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3f 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- 6b -- -- -- -- 70: -- -- -- -- -- -- -- -- linaro@linaro-alip:~$ sudo i2cdetect -y 2 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- UU -- -- -- -- -- UU -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU -- 20: UU -- -- -- -- -- -- -- -- -- UU -- -- -- -- -- 30: -- -- -- -- UU 35 -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 50: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- От bq40z60 и Linux мне нужно несколько вещей: 1) Переходить в спящий режим (из bqstudio это команда shutdown ); 2) Просыпаться из спящего режима (есть кнопка wake up на bq40z60evm); 3) Отображать индикатор состояния батареи; 4) Отображать текущий источник питания( батарея или сетевой адаптер); Кто нибудь имел дело с smbus и с подобными микросхемами в linux? Как настроить это в Linux, подскажите куда копать? log.txt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 17 сентября, 2015 Опубликовано 17 сентября, 2015 (изменено) · Жалоба Далее мне нужно контролировать bq40z60 из Linux(ubuntu 14.04 linaro с lxde). На борде есть i2c, подсоединяю и нечего не вижу. i2cdetect не видит адресов bq40z60. Т.е. bq40z60 отсоединено или подсоединено, вывод i2cdetect остается одним и тем же. вы не перепутали SDA<>SCL? gnd подсоединили? судя по выхлопу i2cdetect физически сами шины исправны и если перед подключением вы не загнали чип в shutdown, то он должен детектироваться примерно по адресу 0x09, 0x0b или 0x12.. Кто нибудь имел дело с smbus и с подобными микросхемами в linux? Как настроить это в Linux, подскажите куда копать? общие рекомендации: добиваетесь того, чтобы чип продетектировался утилитой i2cdetect утилитами i2cset/i2cget "изучаете регистры чипа и его поведение вооружившись рефманом на чип (Technical Reference Manual (SLUUA04)), пишете драйвер для своего ядра в разделе drivers/power Изменено 17 сентября, 2015 пользователем Jury093 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
taoga 0 17 сентября, 2015 Опубликовано 17 сентября, 2015 · Жалоба вы не перепутали SDA<>SCL? gnd подсоединили? судя по выхлопу i2cdetect физически сами шины исправны и если перед подключением вы не загнали чип в shutdown, то он должен детектироваться примерно по адресу 0x09, 0x0b или 0x12.. общие рекомендации: добиваетесь того, чтобы чип продетектировался утилитой i2cdetect утилитами i2cset/i2cget "изучаете регистры чипа и его поведение вооружившись рефманом на чип (Technical Reference Manual (SLUUA04)), пишете драйвер для своего ядра в разделе drivers/power Не перепутал, раза 3 проверял. И прозванивал. На обе платы(SBC и bq40z60evm) нанесена маркировка контактов. Подключал SDA, SCL, GND. Далее начал экспериментировать с настройками bq40z60 и почти убил ее. Сделал вот что: Последние изменения конфигурации bq40z60: in "SBS Configuration" - XL = 1(red), HPE=1, CPE=1, BCAST=1 Эти биты включают обмен на 400кГц и периодическую отправку информационных сообщений. После чего Bqstudio перестало автоматически определять bq40z60evm. Использую EV2300. Выбираю вручную bq40z60, в окне "Battery Management Studio() Supported Target" Очень редко проходят команды: "DEVICE_NUMBER", "CHEM_ID", "RESET" ... "CHEM_ID" - возвращает правильное значение. Если включить в Bqstudio автоматическое чтение регистров, то иногда читаются достоверные значения регистров! Очень редко. Т.е. линии smbus целые. Пробовал залить сохраненный ранее srec в окне "F / W Programming" но возникают ошибки: "Program Srec: Timeout or unexpected response communicating wi th device" или "Program Srec: Packet checksum mismatch" Очень редко появляется индикатор прогресса "F / W Programming" но вероятно прошивка не завершается, т.к. появляется ошибка: "Execute Command: Timeout or unexpected response communicating with device". Странно, что они не сделали сброс значений параметров с помощью внешней ножки. В итоге bq40z60 наполовину живая. Работает по старым настройкам. Заряжает батарею, реагирует на внешний источник питания, показывает с помощью светодиодов заряд. Но начего больше с ней сделать не могу. Заказал еще несколько новых микросхем, будем чинить EVM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 17 сентября, 2015 Опубликовано 17 сентября, 2015 · Жалоба Не перепутал, раза 3 проверял. И прозванивал. На обе платы(SBC и bq40z60evm) нанесена маркировка контактов. Подключал SDA, SCL, GND. а что такое SBC? плата хоста, куда цепляете bq40z60? in "SBS Configuration" - XL = 1(red), HPE=1, CPE=1, BCAST=1 Эти биты включают обмен на 400кГц и периодическую отправку информационных сообщений. После чего Bqstudio перестало автоматически определять bq40z60evm. Использую EV2300. попробуйте зайти хоть в ручном режиме и почистить на исходную XL, HPE, CPE тут есть два варианта: - считать память регистров и там поправить, потом обратно записать - в расширенном режиме есть возможность посылать отдельные команды, вот там попробовать обнулить те же биты.. потом команду сброса чипа, либо через гуевую кнопку, либо через команду расширенного режима.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
taoga 0 17 сентября, 2015 Опубликовано 17 сентября, 2015 · Жалоба а что такое SBC? плата хоста, куда цепляете bq40z60? попробуйте зайти хоть в ручном режиме и почистить на исходную XL, HPE, CPE тут есть два варианта: - считать память регистров и там поправить, потом обратно записать - в расширенном режиме есть возможность посылать отдельные команды, вот там попробовать обнулить те же биты.. потом команду сброса чипа, либо через гуевую кнопку, либо через команду расширенного режима.. SBC - это Gateworks GW5400 (Ventana). Про то чтобы с помощью отдельной команды в расширенном режиме изменить значения регистра конфигурации я думал, но пока не совсем додумал.http://electronix.ru/forum/style_emoticons/default/laughing.gif. Попробую. Мне показалась, что bqStudio слишком агрессивно работает по интерфейсу, пытаясь связаться с EVM. Еще была мысль к другой плате отладочной подсоединить, у меня есть Atmel'ая. И тоже командой поменять значения этого регистра. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 17 сентября, 2015 Опубликовано 17 сентября, 2015 · Жалоба SBC - это Gateworks GW5400 (Ventana). глянул в инете - хорошая машинка, на imx6, жаль памяти всего 1Г, да и число minipcie явно избыточно, а так хорошо выглядит.. Про то чтобы с помощью отдельной команды в расширенном режиме изменить значения регистра конфигурации я думал, но пока не совсем додумал.http://electronix.ru/forum/style_emoticons/default/laughing.gif. Попробую. Мне показалась, что bqStudio слишком агрессивно работает по интерфейсу, пытаясь связаться с EVM. в студии можно выключить активность - левая панель (дашборд), она ломится на интерфейс, вот ее и выключить.. дальше самому настойчиво исправить биты, если конечно в них дело.. ваша bq40z60 должна уметь fast-i2c, а вот за em2300 я не уверен.. еще может PEC (включенный) добавляет, причем я не удивлюсь, если писатели bqstudio не учли такой расклад.. для надежности перед сеансом пощелкайте кнопкой wakeup с поданным внешним питанием Еще была мысль к другой плате отладочной подсоединить, у меня есть Atmel'ая. И тоже командой поменять значения этого регистра. я бы не стал - лучше все же использовать заведомо совместимое оборудование и софт.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
taoga 0 18 сентября, 2015 Опубликовано 18 сентября, 2015 · Жалоба глянул в инете - хорошая машинка, на imx6, жаль памяти всего 1Г, да и число minipcie явно избыточно, а так хорошо выглядит.. в студии можно выключить активность - левая панель (дашборд), она ломится на интерфейс, вот ее и выключить.. дальше самому настойчиво исправить биты, если конечно в них дело.. ваша bq40z60 должна уметь fast-i2c, а вот за em2300 я не уверен.. еще может PEC (включенный) добавляет, причем я не удивлюсь, если писатели bqstudio не учли такой расклад.. для надежности перед сеансом пощелкайте кнопкой wakeup с поданным внешним питанием я бы не стал - лучше все же использовать заведомо совместимое оборудование и софт.. GW5404 - c 2Гб памяти. Из-за большого количества pci-e и наличия видео она нам и нужна. Недавно рекламу кинули: GW11036 Embedded Android Development Kit - тоже на imx6, но с 1Гб памяти. Но почему-то в этом ките нет батареи. Я им задал вопрос. Они мне ответили, что батарея не проблема, т.к. входное напряжение от 8 до 60В. С помощью GSC (gateworks system controller) можно переводить борду в спящий режим, просыпаться по нажатию кнопки или по таймеру, также можно получить значение входного напряжение. Скрипты для Linux в описании GSC. По bq40z60: Отключил активность. Попробовал послать команду (для пробы) из режима "Advanced comm SMB" - c n-ой попытки удалось. Только вот не нашел в документации кодов команд с помощью которых можно записать значение "SBS Configuration". Нашел описание для bq20z70, но там формат регистров конфигурации не такой, и скорее всего адреса отличаются. Попросил помочь с командой на форуме TI e2e. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 18 сентября, 2015 Опубликовано 18 сентября, 2015 · Жалоба GW5404 - c 2Гб памяти. Из-за большого количества pci-e и наличия видео она нам и нужна. Недавно рекламу кинули: GW11036 Embedded Android Development Kit - тоже на imx6, но с 1Гб памяти. Но почему-то в этом ките нет батареи. Я им задал вопрос. Они мне ответили, что батарея не проблема, т.к. входное напряжение от 8 до 60В. система на imx6q, с подключенной sata и поднятой мультимедийностью прилично кушает и ваш вариант 2p3s вполне потянет такую нагрузку.. если что, то вполне можно на 3p3s перекрутить.. По bq40z60: Отключил активность. Попробовал послать команду (для пробы) из режима "Advanced comm SMB" - c n-ой попытки удалось. Только вот не нашел в документации кодов команд с помощью которых можно записать значение "SBS Configuration". Нашел описание для bq20z70, но там формат регистров конфигурации не такой, и скорее всего адреса отличаются. Попросил помочь с командой на форуме TI e2e. пока Томас размышляет, попробуйте все же подолбить по алгоритму: - ручная загрузка - открываете вкладку "view->data memory" - там сбрасываете биты на исходную - и настойчиво на кнопку "Write all" идея в том, что студия будет не все подряд перезаписывать, а только измененные значения, и шансы на запись значительно увеличатся.. если удалось перезаписать, то в правой колонке жмите кнопку "Reset" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
taoga 0 18 сентября, 2015 Опубликовано 18 сентября, 2015 · Жалоба система на imx6q, с подключенной sata и поднятой мультимедийностью прилично кушает и ваш вариант 2p3s вполне потянет такую нагрузку.. если что, то вполне можно на 3p3s перекрутить.. пока Томас размышляет, попробуйте все же подолбить по алгоритму: - ручная загрузка - открываете вкладку "view->data memory" - там сбрасываете биты на исходную - и настойчиво на кнопку "Write all" идея в том, что студия будет не все подряд перезаписывать, а только измененные значения, и шансы на запись значительно увеличатся.. если удалось перезаписать, то в правой колонке жмите кнопку "Reset" Пока не выполнится удачно Read All (а он не выполняется, полдня долбил) недоступны команды Write All, Import, Export. Write to data memory не выполняется по той-же причине и выдает ошибку "Operation failed because initial read of all data flash failed". Остаются только: команда из расширенного режима для записи нового значения регистра конфигурации или перепайка микросхемы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 18 сентября, 2015 Опубликовано 18 сентября, 2015 · Жалоба Пока не выполнится удачно Read All (а он не выполняется, полдня долбил) недоступны команды Write All, Import, Export. Write to data memory не выполняется по той-же причине и выдает ошибку "Operation failed because initial read of all data flash failed". Остаются только: команда из расширенного режима для записи нового значения регистра конфигурации или перепайка микросхемы. ну хорошо.. а что у вас считывается старт-студии->view->data-memory->setting->sbs-configuration? есть ли там что осмысленное? если есть, то мышкой тыкаете прямо в значение (value) и должно появиться битовое поле, подсвеченное красными и зелеными квадратами.. попробуйте там почистить и тут же есть кнопка записи, может это поможет (при попытке записи смотрите в левый нижний угол студии, там показывают ошибки) если пройдет, то далее Reset.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
taoga 0 18 сентября, 2015 Опубликовано 18 сентября, 2015 · Жалоба ну хорошо.. а что у вас считывается старт-студии->view->data-memory->setting->sbs-configuration? есть ли там что осмысленное? если есть, то мышкой тыкаете прямо в значение (value) и должно появиться битовое поле, подсвеченное красными и зелеными квадратами.. попробуйте там почистить и тут же есть кнопка записи, может это поможет (при попытке записи смотрите в левый нижний угол студии, там показывают ошибки) если пройдет, то далее Reset.. Ничего не считывается, ячейки значений пустые. Я ж говорю не выполняется команда Read All. Когда тыкаешь во вкладку data memory программа скорее всего автоматом запускает Read All, после удачного выполнения которой появляются значения. У меня их нет, пусто. Соответственно изменить отдельные значения регистров тоже не дает. Выдает ошибку, что сначала значения должны быть считаны. Я пробовал это делать, открывал старт-студии->view->data-memory->setting->sbs-configuration тыкал в нее, устанавливал зеленые квадраты(0) во все поля которые я менял, потом нажимал на кнопку write и появлялась ошибка, что сначала значения должны быть считаны. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 18 сентября, 2015 Опубликовано 18 сентября, 2015 · Жалоба Ничего не считывается, ячейки значений пустые. Я ж говорю не выполняется команда Read All. Когда тыкаешь во вкладку data memory программа скорее всего автоматом запускает Read All, после удачного выполнения которой появляются значения. У меня их нет, пусто. Соответственно изменить отдельные значения регистров тоже не дает. Выдает ошибку, что сначала значения должны быть считаны. Я пробовал это делать, открывал старт-студии->view->data-memory->setting->sbs-configuration тыкал в нее, устанавливал зеленые квадраты(0) во все поля которые я менял, потом нажимал на кнопку write и появлялась ошибка, что сначала значения должны быть считаны. жаль.. я почитал раздел по работе через Advanced Comm SMB - там все сильно мутно и не совпадает с реалиями программы. К сожалению у Техаса это в порядке вещей. Сначала пишут софт, потом доки на чипы, потом рефейсят софт а в доках изменения не отражают. потом приходится сидеть и разгадывать шарады. на всякий случай, проверьте чем-нить, что у вас железо не попортилось - мультиметром, а лучше осциллом, надо проверить, что уровни sda/scl больше 3в.. а то мало ли, провод переломился или контакт погнулся в разъеме.. осцилл покажет жизнедеятельность на i2c (надеюсь, что статика - не ваш случай, т.б. там все защитами обвешанно).. и еще, покопайтесь на их форуме, мне помниться, что я видел там объяснения, как работать с закладкой Advanced (то ли на форуме, то ли в доках, точнее не скажу) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 18 сентября, 2015 Опубликовано 18 сентября, 2015 · Жалоба вроде как с чтением куска флеша я чего-то получил, читаем ман: Read from DF example: Taking the same assuming from the read DF example, to read DF, a. Send SMBus write block with command 0x44, block = 0x00 + 0x40 b. Send SMBus read block with command 0x44 The returned block = a starting address + 32 bytes of DF data = 0x00 + 0x40 + data1_LowByte + data1_HighByte + data2_LowByte + data2_HighByte.... data32_LowByte + data32_HighByte сначала запись блока командой 0x44 и адрес разбитый на две байта с обратным написанием (надо 0x47c9 пишу c9 47) потом считываю блок командой 0x44 вижу ожидаемое 0x31 - это мои бродкасты и максимальный таймаут.. а вот как записать, пока идей нет - будем на вашем чипе тренироваться :) может надо скопипастить весь блок, поправить нужные параметры и записать, а может как-то по другому.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
taoga 0 18 сентября, 2015 Опубликовано 18 сентября, 2015 · Жалоба вроде как с чтением куска флеша я чего-то получил, читаем ман: Read from DF example: Taking the same assuming from the read DF example, to read DF, a. Send SMBus write block with command 0x44, block = 0x00 + 0x40 b. Send SMBus read block with command 0x44 The returned block = a starting address + 32 bytes of DF data = 0x00 + 0x40 + data1_LowByte + data1_HighByte + data2_LowByte + data2_HighByte.... data32_LowByte + data32_HighByte сначала запись блока командой 0x44 и адрес разбитый на две байта с обратным написанием (надо 0x47c9 пишу c9 47) потом считываю блок командой 0x44 вижу ожидаемое 0x31 - это мои бродкасты и максимальный таймаут.. а вот как записать, пока идей нет - будем на вашем чипе тренироваться :) может надо скопипастить весь блок, поправить нужные параметры и записать, а может как-то по другому.. Спасибо, мне и Том ответил. В понедельник попробую. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
taoga 0 21 сентября, 2015 Опубликовано 21 сентября, 2015 · Жалоба Спасибо, мне и Том ответил. В понедельник попробую. Помогло. Сначала пытался считать. Но безрезультатно. Потом до победного слал команду запись блока 44 c данными C9 47 20. После того как команда прошла, передернул питание evm(включая батарею). Bqstudio стала снова автоматически определять bq40z60. Также мне стало понятно где найти адреса регистров конфигурации. Нажно открыть окно Preferences (Меню Window->Preferences). Затем установить флаг "Show Advanced Views" в ветке "All Global Settings". После чего в в окне "Data Memory" появились адреса регистров flash. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться