Login  



advanced search

Knowledge Base Menu

Knowledge Base Home Most Recent Topics Most Active Topics
Topic: SMBus Communication with MLX90614

Subscribe Subscribe to Topic

Reply | New Topic

Author Message « Previous Topic | Next Topic »

Eric Sirois

Posted 3 September at 5:30PM  Edit      Reject because  



Joined: 3 September 2008
Location: CA
Posts: 1

Back to Top

I’m presently programming my circuit to use the MLX90614. The sensor responds to the address 0x00, but will not respond when interrogated with its default address. With the 0x00 address the responses are ok. It gives the right object temperature, the address at which it is located and so on. For now I will use only one sensor per unit and if I don’t find any solution, I will use address 0x00. But for the next project the same two lines will be used with up to 25 sensors on the same bus. So being unable to communicate with the sensors at a specific address is very problematic.


Luc Buydens

Posted 4 September at 8:30AM  Edit      Reject because  

Melexis  Moderator

Joined: 7 December 2005
Location: BE
Posts: 77

Back to Top

Hi Eric,

Try to read EEPROM cell 0x0E. The LSByte of this cell contains the slave address of the module.
By default it should be 0x5A. Don't forget that when this address is send by SMBus it occupy the 7 MSbits of the byte.
So on the bus it should be send as 0xB4 ( 10110100) where the 7 MSbits are address and the LSbit is bit R/-W. For MLX90614 this bit has no meaning , i keep it zero usualy.

If you still have problems with the communication send me if is possible oscillograms.

Regards
Dimo Petkov
application engineer


Nino Penkov

Posted 12 November at 11:55AM  Edit      Reject because  



Joined: 10 November 2008
Location: DE
Posts: 2

Back to Top

Hello,
I have a problem writing to the allowed for writing EEPROM registers of the MLX90614. I have read the application data, I am reading all the EEPROM registers correctly, but I am not able to write. I use for writing 0xB4 as slave address.
Regards
Nino Penkov


Luc Buydens

Posted 12 November at 10:39PM  Edit      Reject because  

Melexis  Moderator

Joined: 7 December 2005
Location: BE
Posts: 77

Back to Top

Hi,

You should use 0xA5 for slave address. first write 0000 to the EEPROm address you want to change, then the new values. Then power down the device for the values to take effect.

luc


Nino Penkov

Posted 13 November at 12:06AM  Edit      Reject because  



Joined: 10 November 2008
Location: DE
Posts: 2

Back to Top

Hi Luc,
thanks for the immediate response. I actually tried this already... but I think that the writing address must have 0 for LSB. Anyway, I am almost sure that my problem lies in the PAC byte. Do you have examples for C code for calculation of the PAC byte?
And one more question: If I write 0000 to the EEPROM address without writing anything else afterwards, will the cell value be then read as 0000?
Regards
Nino Penkov


Alexander Gargavelov

Posted 15 November at 8:11AM  Edit      Reject because  

Melexis  Moderator

Joined: 26 October 2008
Location: BG
Posts: 1

Back to Top

Hello Nino,

Here is basic rules that will assure that your writing into EEPROM will be successful:
1. Before write down new value first you should write 0000h (you can check if this writing is successful by reading the same address -> you should read 0000)
2. Make sure that you wait at least 4ms after each EERPROM write command.
3. Not to confuse to which address the device respond you can use 0x00h - to this address all devices should respond no matter what address is programmed into EEPROM (this is for debug purposes of course - if you have more devices on the bus you'll have problems).
4. Concerning the PEC calculation you can use following on line PEC calculator:

http://smbus.org/faq/faq.htm

If you still have problems I would like to see some scope pictures of your communication to our device in order to find out what is wrong -> you may contact me at aga@melexis.com.
Regards,
Alex


You must be logged in to reply to this post.
If you already have a Melexis Member account, click here to log in.
If you do not have a Melexis Member account, click here to creat an account.

Melexis Semiconductors: Home | Company Profile | Semiconductor /IC Products | Knowledge Base | Careers
Terms Of Use
| Terms Of Sale | Company Data | Privacy Policy
Copyright©1998 - 2006 Melexis Microelectronic Systems All Rights Reserved Certified ISO/ TS 16949, ISO 14001
Melexis Microelectronic Systems 41 Locke Rd, Concord NH, 03301 USA Rozendaalstraat 12, B-8900 Ieper, Belgium