0
\$\begingroup\$

I'm trying to read the memory bank202 from a DALI-2 supported led luminary for energy consumption. it returns a value of zero. when i gone through the Dali part 252 energy reporting Doc. It asked me to latch the lock byte.

Latching involves in series of steps as per docs,

  1. selection of memory bank DTR0, DTR1 (0xC3, 202) (0xA3, 0x02)

  2. Enabling write to memory bank for which i used (255, 0x81)

  3. writing to memory registry 0X02 (0xC7, 0x55)

But i receive no response from control gear also. I am not sure if my second and third statements are correct.

Please correct me if I am missing something or suggest me with a better solution.

Bare If my question is silly. As I am new to DALI.

\$\endgroup\$
1
  • \$\begingroup\$ Were you able to get this working? I'm doing the same thing, but I only received positive responses from 0x0c till 0x0f . Reading 0x05 till 0x09 always returned mask(FF). Is there something different in the way they are handled? Or is it just not implemented? \$\endgroup\$
    – Jtk
    Apr 21, 2021 at 8:18

1 Answer 1

0
\$\begingroup\$

Firstly, not all DALI-2 control gear support energy data part 252. As of today, there are 1318 DALI-2 control gear and only 232 of them support energy data part 252 (memory bank 202). In general you would need to check that your gear is one of the listed ones, but D4i certification means it must have energy data support.

If we look at the possible reasons for no response to WRITE MEMORY LOCATION (DTR1, DTR0, data) then there are the following possibilities (from IEC62386-102 11.7.16)

  • the addressed memory bank or location is not implemented

  • "writeEnableState" is DISABLED

  • the addressed memory bank is lockable and the memory bank is locked for writing

  • the addressed memory location is not writeable

  • the addressed memory location is beyond the last implemented memory location in the bank

You are selecting memory bank 202 using DTR1 and location 0x02 with DTR0. Your ENABLE WRITE MEMORY command is sent broadcast so you are selecting all control gear for writing. Beware this will result in collisions in responses if you have multiple gear connected and powered up on your bus. Unless you can guarantee that only a single gear will be connected to your controller you should not use ENABLE WRITE MEMORY with broadcast addressing. Single luminaires can contain multiple control gear - either because of the number of lamps or because of emergency gear.

Note that ENABLE WRITE MEMORY is a Send Twice command; it is not clear from your description that you are sending it twice within 75ms as per IEC62386-101 Table 17.

The definition of the Lock Byte at address 0x02 is that the memory type is RAM-RW so it should be writable. However, all the other addresses in that memory bank are either ROM or NVM-RO (read only). I would think that you should get a response to the WRITE MEMORY LOCATION (DTR1, DTR0, data) for address 0x02 only, but it might be not responding because that value 0x55 (Unlock) is not valid because you can't write to any other location in that bank.

Latching, for multi-byte reading so that the value is consistent, requires value 0xAA in the lock byte, not 0x55 (unlock), as per clause 9.2.3

It would be helpful to confirm that you can read non-zero values for locations 0x00 to 0x03 in that memory bank, as single bytes which don't require the latching mechanism, and would prove the memory bank is otherwise readable.

\$\endgroup\$
3
  • \$\begingroup\$ Hey there, I am using Inventronics EBS-080S105BT2 and with above provided details I got things clarified. Thanks for your support. \$\endgroup\$ Feb 26, 2021 at 6:37
  • \$\begingroup\$ @adharshramanathan Glad to have helped. As Asker you have the power to mark answers as accepted, which I would appreciate, thanks. \$\endgroup\$
    – Martin
    Feb 26, 2021 at 8:54
  • \$\begingroup\$ Kindly suggest me if there are any libraries that I can use for programming. As I am building all the codes from scratch. Best Regards, \$\endgroup\$ Mar 20, 2021 at 14:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.