KIR extEEPROM.ino: Difference between revisions

From AnalysIR WiKi
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
 
(2 intermediate revisions by the same user not shown)
Line 6: Line 6:
* '''KIR_disable_eeprom''' - which turns off power to the I2C EEPROM
* '''KIR_disable_eeprom''' - which turns off power to the I2C EEPROM


All of the I2C address pins are grounded (set to 0)
All of the I2C address pins are grounded (set to 0, which means the I2C address is fixed at 0x50)


Due to the nature of EEPROMs, their varying capacity and varying page sizes - we have not included example code for reading and writing to this external I2C EEPROM. However, the Arduino ecosystem has numerous libraries and examples of how to read and write to I2C eeproms. You just need to ensure that you enable the EEPROM before read/write access and disable it before going to sleep. If you are not using EEPROM then it is powered off by default in the firmware.
Due to the nature of EEPROMs, their varying capacity and varying page sizes - we have not included example code for reading and writing to this external I2C EEPROM. However, the Arduino ecosystem has numerous libraries and examples of how to read and write to I2C EEPROMs. You just need to ensure that you enable the EEPROM before read/write access and disable it before going to sleep. If you are not using EEPROM then it is powered off by default in the firmware.


You are free to use any storage configration in your EEPROM. However, we usually allocate storage to signals in multiples of the EEPROM's page size to avoid excessive wear and write cycles. You can use the EEPROM to store the RAW signals or just the HEX value along with a protocol identifier. It may also be helpful to store the carrier frequency as well.
You are free to use any storage configuration in your EEPROM. However, we usually allocate storage to signals in multiples of the EEPROM's page size to avoid excessive wear and write cycles. You can use the EEPROM to store the RAW signals or just the HEX value along with a protocol identifier. It may also be helpful to store the carrier frequency as well.


'''''Tip:''' You can retain pointers to signals stored in external EEPROM in either SRAM or FLASH to speed up access. Similarly, you could reserve a number of EEPROM pages for this purpose. In addition, the MCU's internal EEPROM could also be used for similar purposes. '' Faster accesss equals longer battery life!
'''''Tip:''' You can retain pointers to signals stored in external EEPROM in either SRAM or FLASH to speed up access. Similarly, you could reserve a number of EEPROM pages for this purpose. In addition, the MCU's internal EEPROM could also be used for similar purposes. '' Faster access equals longer battery life!


'''Test Suite Firmware'''


We have also made our internal test suite firmware code  available to all users. This firmware demonstrates how to write data to EEPROM, erase pages and verify written pages. Users should be able to re-use this code to implement their own requirements.




'''''> [[KontroLIR - Arduino compatible IR remote control|KontroLIR Home]] > [[Customizing the KontroLIR Firmware|back]]'''''
'''''> [[KontroLIR - Arduino compatible IR remote control|KontroLIR Home]] > [[Customizing the KontroLIR Firmware|back]]'''''

Latest revision as of 10:06, 10 December 2019

> KontroLIR Home > back

Currently this file contains 2 functions for the optional external I2C EEPROM:

  • KIR_enable_eeprom - which turns on power to the I2C EEPROM
  • KIR_disable_eeprom - which turns off power to the I2C EEPROM

All of the I2C address pins are grounded (set to 0, which means the I2C address is fixed at 0x50)

Due to the nature of EEPROMs, their varying capacity and varying page sizes - we have not included example code for reading and writing to this external I2C EEPROM. However, the Arduino ecosystem has numerous libraries and examples of how to read and write to I2C EEPROMs. You just need to ensure that you enable the EEPROM before read/write access and disable it before going to sleep. If you are not using EEPROM then it is powered off by default in the firmware.

You are free to use any storage configuration in your EEPROM. However, we usually allocate storage to signals in multiples of the EEPROM's page size to avoid excessive wear and write cycles. You can use the EEPROM to store the RAW signals or just the HEX value along with a protocol identifier. It may also be helpful to store the carrier frequency as well.

Tip: You can retain pointers to signals stored in external EEPROM in either SRAM or FLASH to speed up access. Similarly, you could reserve a number of EEPROM pages for this purpose. In addition, the MCU's internal EEPROM could also be used for similar purposes. Faster access equals longer battery life!

Test Suite Firmware

We have also made our internal test suite firmware code available to all users. This firmware demonstrates how to write data to EEPROM, erase pages and verify written pages. Users should be able to re-use this code to implement their own requirements.


> KontroLIR Home > back