| Author |
Message |
« Previous Topic | Next Topic » |
|
|
Eric Sirois
|
Posted 3 September at 5:30PM
Edit
3320
3320
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
3323
3323
Reject because
|
|
|
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
3491
3491
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
3495
3495
Reject because
|
|
|
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
3497
3497
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
3502
3502
Reject because
|
|
|
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
|
|
|