Example #1
0
 public void WriteByte(ushort address, byte data)
 {
     byte[] writeBuffer = { HighAddress(address), LowAddress(address), data };
     I2CDevice.I2CWriteTransaction write        = I2CDevice.CreateWriteTransaction(writeBuffer);
     I2CDevice.I2CTransaction[]    transactions = new I2CDevice.I2CTransaction[] { write };
     m_transfer_count = I2C_device.Execute(transactions, m_timeout);
     m_transfer_type  = transfer_type.write;
 }
Example #2
0
 public byte CurrentByteRead()
 {
     byte[] readBuffer = { 0x0 };
     I2CDevice.I2CReadTransaction read         = I2CDevice.CreateReadTransaction(readBuffer);
     I2CDevice.I2CTransaction[]   transactions = new I2CDevice.I2CTransaction[] { read };
     m_transfer_count = I2C_device.Execute(transactions, m_timeout);
     m_transfer_type  = transfer_type.read;
     return(readBuffer[0]);
 }
Example #3
0
 public void WritePage(ushort Address, EEPROM_I2C_Page EEPROM_Page)
 {
     Address = PageAddress(Address);
     byte[] dummyAddress = { HighAddress(Address), LowAddress(Address) };
     I2CDevice.I2CWriteTransaction writeCounter = I2CDevice.CreateWriteTransaction(dummyAddress);
     I2CDevice.I2CWriteTransaction pageWrite    = I2CDevice.CreateWriteTransaction(EEPROM_Page.Page());
     I2CDevice.I2CTransaction[]    transactions = new I2CDevice.I2CTransaction[] { writeCounter, pageWrite };
     m_transfer_count = I2C_device.Execute(transactions, m_timeout) - 2;
     m_transfer_type  = transfer_type.write;
 }
Example #4
0
 public byte RandomByteRead(ushort address)
 {
     byte[] dummyAddress = { HighAddress(address), LowAddress(address) };
     byte[] readBuffer   = { 0x0 };
     //
     // non-data write relocates internal EEPROM counter for random read
     //
     I2CDevice.I2CReadTransaction  read         = I2CDevice.CreateReadTransaction(readBuffer);
     I2CDevice.I2CWriteTransaction writeCounter = I2CDevice.CreateWriteTransaction(dummyAddress);
     I2CDevice.I2CTransaction[]    transactions = new I2CDevice.I2CTransaction[] { writeCounter, read };
     m_transfer_count = I2C_device.Execute(transactions, m_timeout) - 2;
     m_transfer_type  = transfer_type.read;
     return(readBuffer[0]);
 }
Example #5
0
 public void ReadSequential(ushort Address, uint Length, ref byte[] ReadBuffer)
 {
     if (
         ((Address + Length) > EEPROM_Size) ||
         (ReadBuffer.Length < Length))
     {
         return;
     }
     byte[] dummyAddress = { HighAddress(Address), LowAddress(Address) };
     I2CDevice.I2CReadTransaction  read         = I2CDevice.CreateReadTransaction(ReadBuffer);
     I2CDevice.I2CWriteTransaction writeCounter = I2CDevice.CreateWriteTransaction(dummyAddress);
     I2CDevice.I2CTransaction[]    transactions = new I2CDevice.I2CTransaction[] { writeCounter, read };
     m_transfer_count = I2C_device.Execute(transactions, m_timeout) - 2;
     m_transfer_type  = transfer_type.read;
 }
Example #6
0
 public void ReadSequential(ushort Address, uint Length, ref byte[] ReadBuffer)
 {
     if (
         ((Address + Length) > EEPROM_Size) ||
         (ReadBuffer.Length < Length))
     {
         return;
     }
     byte[] dummyAddress = { HighAddress(Address), LowAddress(Address) };
     I2CDevice.I2CReadTransaction read = I2CDevice.CreateReadTransaction(ReadBuffer);
     I2CDevice.I2CWriteTransaction writeCounter = I2CDevice.CreateWriteTransaction(dummyAddress);
     I2CDevice.I2CTransaction[] transactions = new I2CDevice.I2CTransaction[] { writeCounter, read };
     m_transfer_count = I2C_device.Execute(transactions, m_timeout) - 2;
     m_transfer_type = transfer_type.read;
 }
Example #7
0
 public void WritePage(ushort Address, EEPROM_I2C_Page EEPROM_Page)
 {
     Address = PageAddress(Address);
     byte[] dummyAddress = { HighAddress(Address), LowAddress(Address) };
     I2CDevice.I2CWriteTransaction writeCounter = I2CDevice.CreateWriteTransaction(dummyAddress);
     I2CDevice.I2CWriteTransaction pageWrite = I2CDevice.CreateWriteTransaction(EEPROM_Page.Page());
     I2CDevice.I2CTransaction[] transactions = new I2CDevice.I2CTransaction[] { writeCounter, pageWrite };
     m_transfer_count = I2C_device.Execute(transactions, m_timeout) - 2;
     m_transfer_type = transfer_type.write;
 }
Example #8
0
 public void WriteByte(ushort address, byte data)
 {
     byte[] writeBuffer = { HighAddress(address), LowAddress(address), data };
     I2CDevice.I2CWriteTransaction write = I2CDevice.CreateWriteTransaction(writeBuffer);
     I2CDevice.I2CTransaction[] transactions = new I2CDevice.I2CTransaction[] { write };
     m_transfer_count = I2C_device.Execute(transactions, m_timeout);
     m_transfer_type = transfer_type.write;
 }
Example #9
0
 public byte RandomByteRead(ushort address)
 {
     byte[] dummyAddress = { HighAddress(address), LowAddress(address) };
     byte[] readBuffer = { 0x0 };
     //
     // non-data write relocates internal EEPROM counter for random read
     //
     I2CDevice.I2CReadTransaction read = I2CDevice.CreateReadTransaction(readBuffer);
     I2CDevice.I2CWriteTransaction writeCounter = I2CDevice.CreateWriteTransaction(dummyAddress);
     I2CDevice.I2CTransaction[] transactions = new I2CDevice.I2CTransaction[] { writeCounter, read };
     m_transfer_count = I2C_device.Execute(transactions, m_timeout) - 2;
     m_transfer_type = transfer_type.read;
     return readBuffer[0];
 }
Example #10
0
 public byte CurrentByteRead()
 {
     byte[] readBuffer = { 0x0 };
     I2CDevice.I2CReadTransaction read = I2CDevice.CreateReadTransaction(readBuffer);
     I2CDevice.I2CTransaction[] transactions = new I2CDevice.I2CTransaction[] { read };
     m_transfer_count = I2C_device.Execute(transactions, m_timeout);
     m_transfer_type = transfer_type.read;
     return readBuffer[0];
 }