1-Wire® library for mbed. Complete 1-Wire library that supports our silicon masters along with a bit-bang master on the MAX32600MBED platform with one common interface for mbed. Slave support has also been included and more slaves will be added as time permits.

Dependents:   MAXREFDES131_Qt_Demo MAX32630FTHR_iButton_uSD_Logger MAX32630FTHR_DS18B20_uSD_Logger MAXREFDES130_131_Demo ... more

Superseded by MaximInterface.

Revision:
34:11fffbe98ef9
Parent:
33:a4c015046956
Child:
35:5d23395628f6
--- a/OneWire_Masters/DS2465/DS2465.hpp	Thu Mar 31 11:56:01 2016 -0500
+++ b/OneWire_Masters/DS2465/DS2465.hpp	Fri Apr 01 09:29:55 2016 -0500
@@ -12,7 +12,6 @@
 class DS2465 : public OneWireMaster, public ISha256MacCoprocessor
 {
 public:
-  
   enum PageRegion
   {
     REGION_FULL_PAGE = 0x03,
@@ -56,16 +55,16 @@
   // Read pointer, scratchpad, MAC output register, and command register on the DS2465 are considered mutable.
 
   //Misc. Functions
-  OneWireMaster::CmdResult Detect(void);
-  OneWireMaster::CmdResult Reset(void);                                      // Resets DS2465 (NOTE: This is NOT a 1-Wire Reset)
-  OneWireMaster::CmdResult WriteConfig(const Config & config);
-  Config CurrentConfig() const;
+  OneWireMaster::CmdResult detect();
+  OneWireMaster::CmdResult reset(void);                                      // Resets DS2465 (NOTE: This is NOT a 1-Wire Reset)
+  OneWireMaster::CmdResult writeConfig(const Config & config, bool verify);
+  Config currentConfig() const;
 
   // DS2465 Memory Commands
-  OneWireMaster::CmdResult ReadMemory(std::uint8_t addr, std::uint8_t * buf, std::size_t bufLen, bool skip_set_pointer = false) const;
-  OneWireMaster::CmdResult WriteMemory(std::uint8_t addr, const std::uint8_t * buf, std::size_t bufLen) { return CWriteMemory(addr, buf, bufLen); }
-  OneWireMaster::CmdResult WriteScratchpad(const std::uint8_t * buf, std::size_t bufLen) const { return CWriteMemory(ADDR_SPAD, buf, bufLen); }
-  OneWireMaster::CmdResult CopyScratchpad(bool dest_secret, unsigned int pageNum, bool notFull, unsigned int segmentNum);
+  OneWireMaster::CmdResult readMemory(std::uint8_t addr, std::uint8_t * buf, std::size_t bufLen, bool skipSetPointer = false) const;
+  OneWireMaster::CmdResult writeMemory(std::uint8_t addr, const std::uint8_t * buf, std::size_t bufLen) { return cWriteMemory(addr, buf, bufLen); }
+  OneWireMaster::CmdResult writeScratchpad(const std::uint8_t * buf, std::size_t bufLen) const { return cWriteMemory(ADDR_SPAD, buf, bufLen); }
+  OneWireMaster::CmdResult copyScratchpad(bool destSecret, unsigned int pageNum, bool notFull, unsigned int segmentNum);
   
   // 1-Wire Master Commands
   virtual OneWireMaster::CmdResult OWInitMaster(void);
@@ -94,14 +93,16 @@
   virtual ISha256MacCoprocessor::CmdResult computeSlaveSecret(const DevicePage & devicePage, const DeviceScratchpad & deviceScratchpad, const SlaveSecretData & slaveSecretData);
   
 private:
+  static const unsigned int eepromWriteDelayMs = 10;
+  static const unsigned int shaComputationDelayMs = 2;
   
   mbed::I2C & m_I2C_interface;
   std::uint8_t m_I2C_address;
   Config m_curConfig;
 
-  OneWireMaster::CmdResult CWriteMemory(std::uint8_t addr, const std::uint8_t * buf, std::size_t bufLen) const;
-  OneWireMaster::CmdResult PollBusy(std::uint8_t * pStatus = NULL);
-  OneWireMaster::CmdResult ConfigureLevel(OWLevel level);
+  OneWireMaster::CmdResult cWriteMemory(std::uint8_t addr, const std::uint8_t * buf, std::size_t bufLen) const;
+  OneWireMaster::CmdResult pollBusy(std::uint8_t * pStatus = NULL);
+  OneWireMaster::CmdResult configureLevel(OWLevel level);
 };
 
 #endif