4 posts / 0 new
Last post
xf622
Offline
Last seen:4 years 3 months ago
加入:2015-05-08 08:13
I2C driver in Smarttag

Dear:

my project need update a I2C-eeprom(32K bytes),the data is sent from the app on a Smartphone,then the DA14580 write the data into the eeprom. also I need the battery ,tx power,and alert service, So,I want to work base on the Smarttag ref-design.

I add the I2C driver to the Smarttag and test it, and I found that I can not use the I2C driver in funtion: app_proxr_timer_handler(),but I can use it in funtion:proxr_alert_ind_handler() and app_proxr_enable(),is it right? and In which funtion I can use the I2C driver in the Smarttag? also there are many wait() funtiaons in the driver,if there have some problems on the eeprom, the CPU will stop at the wait() funtion ,so if I want the progam be robust,I need to change the I2C driver? or there have other timeout handle funtions ?
I found GPIO state changing in the funtion: app_proxr_timer_handler() ,why can't use the I2C driver in this funtion?

I set the adv_interval = 0x0CF0 and don't let the DA14580 stop advertising,is it the lowest power consumption setting to let the DA14580 continuously advertising?

I fonud DA14580 go into deep sleep when not advertise in funtion:app_adv_func,so I think this is the lowest power consumption setting to let the DA14580 continuously advertising,am I right?
Can I set the adv_interval to a bigger value? (the BLE spec 2500ms is max?),also if I set the Connection latency to 20,then I found that the power consumptionis lower than the advertising state(2500ms interval).

If there is no data transfer for 30s,I want to let the da14580 disconnect to the app, how to implement?

The Smattag doesn't have data transfer profiles to let me sent the 32K bytes from Smartphone to the da14580, so I need to creat a new one? or Is there have profiles I can use? which is the efficiently way?
would you please give some advices to me? thanks a lot.

Device:
JE_Dialog
Offline
Last seen:10 hours 11 min ago
Staff
加入:2013-12-05 14:02
Hi There, why do you want to

Hi There, why do you want to base this on the smart-tag reference design ? is proximity an important element of your application ? What you are describing is quite comlpex : there is no simple way to do what you are requesting without extensive development work. We can guide you to a number of documents if you can clarify your requirements. BR JE_Dialog

xf622
Offline
Last seen:4 years 3 months ago
加入:2015-05-08 08:13
OK......

OK......
my project need DA14580 to write a I2C-eeprom(32K bytes) ,the 32K bytes data is sent from the app on a Smartphone,then the DA14580 write the data into the eeprom. also I need the battery ,tx power,and alert service.
Would you please give me some advices?

also I think some of my questions above is not so complex ,woud you please give some some help?
1. I set the adv_interval = 0x0CF0 and don't let the DA14580 stop advertising(in Smarttag),is it the lowest power consumption setting to let the DA14580 continuously advertising?

2. I fonud DA14580 go into deep sleep when not advertise in funtion:app_adv_func,so I think this is the lowest power consumption setting to let the DA14580 continuously advertising,am I right?
但是如果我设置Connection latency to 20,then I found that the power consumptionis is lower than the advertising state(2500ms interval), so I think maybe the power consumptionis in advertising state(2500ms interval) still can get lower.

3. If there is no data transfer for 30s,I want to let the da14580 disconnect to the app, how to implement it?

MT_dialog
Offline
Last seen:1 week 6 days ago
Staff
加入:2015-06-08 11:34
Hi xf622

Hi xf622

You should use the already implemented profiles for the services you mentioned and create your own profile for your data transfer service. You can use the custom profile doc to accomplish that, doc AN-B-29. The power consumption will decrease as long as you increase the value of advertising intervals or latency in a connection. Of course there are limitations in how much you can increase latency and advertising interval, I think is about 4s in connection latency and 10.24s in maximum advertising interval.

You can set a timer after your last data reception. When the timer elapses you can call app_disconnect() to issue a GAPC_DISCONNECT_CMD to disconnect from the device. Also you can advice the keyboard application for using an I2C-EEPROM.

http://support.dialog-semiconductor.com/reference-design/keyboard

Hope it helps

Thanks MT_dialog