Whoever said - reading the datasheet goes a long way, was not lying. :)

So I read it, twice, and found it quite enlightening. To summarise: I found 
out how to set the Battery Regulation voltage and charge current, thanks to 
register descriptions on page number 33-35, which use the formula
                                         
                                       VBATREG = 3.5 V + VBREGCODE × 20 mV 

                                and     ICHARGE = 500 mA + ICHRGCODE × 100 
mA


Also, I found the address of the EVM for referring in my BBB I2C code as : 0x6B 
(1101011 in binary) . 

Now, I am left with two, seemingly non-trivial questions, 

1. * How to do I write to the registers* like the Status/Control Register 
with a memory location of 00, Control/Battery Voltage Register with a 
memory location of 02, etc. I learnt direct register manipulation (DRM) but 
then experts suggested that using API function calls is a safer method to 
use than DRM (I dont think such API functions are available for BQ-24261, 
there was a mention of a public library here 
https://lkml.org/lkml/headers/2015/9/6/91 but I couldnt locate the actual 
header file) , so I am not as thorough with the process. A two line snippet 
would really help in clarifying the concepts. 

2.  *Choice of functional mode*:Section 9.4 of datasheet, lists details 
about 19 possible functional modes for operating the EVM. Which of these is 
the suggested one ? I understand that this might be application specific, 
but any pointers on this selection, or this is done implicitly by setting 
the appropriate registers through the above step. 



- Thanks 
Chintan Pathak 






On Tuesday, September 22, 2015 at 8:55:43 PM UTC+5:30, Ron B. wrote:
>
> Your source for all things bq24261 will be the datasheet 
> <http://www.ti.com/lit/ds/symlink/bq24260.pdf>.  It describes the 
> registers, how to use them, and gives you the I2C address at the bottom of 
> page 27.  The bq24261 will work fine with a 3.3V I2C interface.  It will 
> get it's own internal power from the DC source used for battery charging 
> (on eval board J1).  Eval board documentation is here 
> <http://www.ti.com/lit/pdf/sluuab0>.
>
> My drawing would probably look more like:
> BBB SCL  <-->  SCL (J15)
> BBB SDA  <-->  SDA  (J15)
> BBB GND  <-->  GND  (J15)
>
> Add pull-ups between SCL <-> BBB 3V3, and SDA <-> BBB 3V3.  I'd probably 
> use 10k.  Then, it's all software.
>
> -Ron
>
>
>
>
> On Tuesday, September 22, 2015 at 8:52:41 AM UTC-5, Chintan Pathak wrote:
>>
>> Hey Ron, 
>>
>> You have been super-helpful, and I believe together we have nearly 
>> cracked it. 
>>
>> I am beginning to get a feel for I2C and I have come up with a schematic 
>> for connection, which I present below for review and comments. 
>>
>>
>> <https://lh3.googleusercontent.com/-DLOTnkK_ihU/VgFbQtMxLZI/AAAAAAAABMk/FvQO-ctXTbw/s1600/i2c_interface_schematic.png>
>>
>>
>> I plan to use pull-ups of 47k each and a supply of 3.3V from BBB. 
>>
>>
>> I have also requested help from TI-E2E, but I wanted to know, if this 
>> voltage is sufficient / proper for our charger ? 
>>
>>
>> Also, how can I get the address of our EVM (charger) for use in the code 
>> as in your # define statement in this example 
>> http://andicelabs.com/2013/06/linux-using-i2c-from-user-land/  ? 
>>
>>
>> Will let you know how this goes. 
>>
>>
>> - Thanks
>>
>> Chintan Pathak 
>>
>>
>> On Tuesday, September 22, 2015 at 5:29:45 AM UTC+5:30, Ron B. wrote:
>>>
>>> Your original question seemed to be more about I2C code examples. 
>>>  Anyway, I don't see any reason why you can't do what you're asking.  The 
>>> eval board's I2C interface is brought out to a header and you'd just hook 
>>> that up to the bone's I2C bus (be sure to also connect the boards' grounds 
>>> together).  The eval board doesn't make any assumptions about power so 
>>> there are no I2C pull-ups on it.  If you need to add pull-ups to the I2C 
>>> lines, be sure to use 3v3 from the bone's header.
>>>
>>> While not 100% relevant, I have two I2C posts here 
>>> <http://andicelabs.com/2013/06/linux-using-i2c-from-user-land/> and here 
>>> <http://andicelabs.com/2013/07/adafruit7segment/> with simpler examples.
>>>
>>> -Ron
>>>
>>> On Monday, September 21, 2015 at 12:13:27 PM UTC-5, Chintan Pathak wrote:
>>>>
>>>> Hey Ron, 
>>>>
>>>> Your work at andicelabs.com seems fantastic. Long live Open source :)
>>>>
>>>> Just to be clear about my question, I want to power a battery using the 
>>>> TI battery charger board, BQ24261 and I want to control (program) the 
>>>> charger  board using a Beaglebone black. Reading the datasheet of the 
>>>> charging board, I found that, it can be controlled via a GUI, that can be 
>>>> accessed by interfacing the charging board to a PC using a USB-GPIO 
>>>> interface board. 
>>>>
>>>> In absence of the said board, and with the need to programmatically set 
>>>> the charging voltage for my battery, I plan to use the BBB. 
>>>>
>>>> Your code in powercape.c is quite exhaustive, I wanted to further know, 
>>>> whether I will need any additional hardware to connect the charging board 
>>>> to BBB, and any other information / source relevant to this topic. 
>>>>
>>>> - Thanks 
>>>> Chintan Pathak 
>>>>
>>>>
>>>>
>>>>
>>>> On Monday, September 21, 2015 at 8:26:08 PM UTC+5:30, Ron B. wrote:
>>>>>
>>>>> Hi Chintan,
>>>>>
>>>>> I don't use I2C to control the charger, but I do use it to talk to the 
>>>>> power monitor and the supervisor.  Our code for the host-side I2C 
>>>>> utilities 
>>>>> are on Github 
>>>>> <https://github.com/AndiceLabs/PowerCape/tree/master/utils> and 
>>>>> should make a reasonable example.
>>>>>
>>>>> -Ron
>>>>>
>>>>> On Monday, September 21, 2015 at 2:58:12 AM UTC-5, Chintan Pathak 
>>>>> wrote:
>>>>>>
>>>>>> I have a battery charger : 
>>>>>> http://www.ti.com/tool/BQ24261EVM-079?keyMatch=bq24261evm-079&tisearch=Search-EN-Everything
>>>>>>
>>>>>> and I want to program it using the BBB I2C. Can I get any code sample 
>>>>>> to proceed or any guidance ?
>>>>>>
>>>>>>
>>>>>>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to