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.

Committer:
IanBenzMaxim
Date:
Sat May 14 14:27:56 2016 -0500
Revision:
76:84e6c4994e29
Parent:
75:8b627804927c
Child:
77:529edb329ee0
Move ROM commands outside of OneWireMaster to increase cohesiveness of the class. Do not use subdivide OneWire namespace since it will likely not provide value on this project.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
j3 19:6d4c039a2d8e 1 /******************************************************************//**
j3 19:6d4c039a2d8e 2 * Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved.
j3 19:6d4c039a2d8e 3 *
j3 19:6d4c039a2d8e 4 * Permission is hereby granted, free of charge, to any person obtaining a
j3 19:6d4c039a2d8e 5 * copy of this software and associated documentation files (the "Software"),
j3 19:6d4c039a2d8e 6 * to deal in the Software without restriction, including without limitation
j3 19:6d4c039a2d8e 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
j3 19:6d4c039a2d8e 8 * and/or sell copies of the Software, and to permit persons to whom the
j3 19:6d4c039a2d8e 9 * Software is furnished to do so, subject to the following conditions:
j3 19:6d4c039a2d8e 10 *
j3 19:6d4c039a2d8e 11 * The above copyright notice and this permission notice shall be included
j3 19:6d4c039a2d8e 12 * in all copies or substantial portions of the Software.
j3 19:6d4c039a2d8e 13 *
j3 19:6d4c039a2d8e 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
j3 19:6d4c039a2d8e 15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
j3 19:6d4c039a2d8e 16 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
j3 19:6d4c039a2d8e 17 * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
j3 19:6d4c039a2d8e 18 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
j3 19:6d4c039a2d8e 19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
j3 19:6d4c039a2d8e 20 * OTHER DEALINGS IN THE SOFTWARE.
j3 19:6d4c039a2d8e 21 *
j3 19:6d4c039a2d8e 22 * Except as contained in this notice, the name of Maxim Integrated
j3 19:6d4c039a2d8e 23 * Products, Inc. shall not be used except as stated in the Maxim Integrated
j3 19:6d4c039a2d8e 24 * Products, Inc. Branding Policy.
j3 19:6d4c039a2d8e 25 *
j3 19:6d4c039a2d8e 26 * The mere transfer of this software does not imply any licenses
j3 19:6d4c039a2d8e 27 * of trade secrets, proprietary technology, copyrights, patents,
j3 19:6d4c039a2d8e 28 * trademarks, maskwork rights, or any other form of intellectual
j3 19:6d4c039a2d8e 29 * property whatsoever. Maxim Integrated Products, Inc. retains all
j3 19:6d4c039a2d8e 30 * ownership rights.
j3 19:6d4c039a2d8e 31 **********************************************************************/
j3 19:6d4c039a2d8e 32
IanBenzMaxim 73:2cecc1372acc 33 #ifndef OneWire_Switches_DS2413
IanBenzMaxim 73:2cecc1372acc 34 #define OneWire_Switches_DS2413
j3 19:6d4c039a2d8e 35
IanBenzMaxim 73:2cecc1372acc 36 #include <stdint.h>
IanBenzMaxim 73:2cecc1372acc 37 #include "OneWireSlave.h"
IanBenzMaxim 73:2cecc1372acc 38
IanBenzMaxim 73:2cecc1372acc 39 namespace OneWire
IanBenzMaxim 73:2cecc1372acc 40 {
IanBenzMaxim 76:84e6c4994e29 41 class OneWireMaster;
IanBenzMaxim 74:23be10c32fa3 42
IanBenzMaxim 76:84e6c4994e29 43 class DS2413 : public OneWireSlave
IanBenzMaxim 73:2cecc1372acc 44 {
IanBenzMaxim 76:84e6c4994e29 45 public:
IanBenzMaxim 76:84e6c4994e29 46 enum CmdResult
IanBenzMaxim 74:23be10c32fa3 47 {
IanBenzMaxim 76:84e6c4994e29 48 Success,
IanBenzMaxim 76:84e6c4994e29 49 CommsReadError,
IanBenzMaxim 76:84e6c4994e29 50 CommsWriteError,
IanBenzMaxim 76:84e6c4994e29 51 OpFailure
IanBenzMaxim 76:84e6c4994e29 52 };
IanBenzMaxim 74:23be10c32fa3 53
IanBenzMaxim 76:84e6c4994e29 54 /**********************************************************//**
IanBenzMaxim 76:84e6c4994e29 55 * @brief DS2413 constructor
IanBenzMaxim 76:84e6c4994e29 56 *
IanBenzMaxim 76:84e6c4994e29 57 * @details
IanBenzMaxim 76:84e6c4994e29 58 *
IanBenzMaxim 76:84e6c4994e29 59 * On Entry:
IanBenzMaxim 76:84e6c4994e29 60 * @param[in] owm - reference to 1-wire master
IanBenzMaxim 76:84e6c4994e29 61 *
IanBenzMaxim 76:84e6c4994e29 62 * On Exit:
IanBenzMaxim 76:84e6c4994e29 63 *
IanBenzMaxim 76:84e6c4994e29 64 * @return
IanBenzMaxim 76:84e6c4994e29 65 **************************************************************/
IanBenzMaxim 76:84e6c4994e29 66 DS2413(OneWireMaster &owm);
IanBenzMaxim 74:23be10c32fa3 67
IanBenzMaxim 76:84e6c4994e29 68 /**********************************************************//**
IanBenzMaxim 76:84e6c4994e29 69 * @brief pio_access_read_chA()
IanBenzMaxim 76:84e6c4994e29 70 *
IanBenzMaxim 76:84e6c4994e29 71 * @details reads state of pio
IanBenzMaxim 76:84e6c4994e29 72 *
IanBenzMaxim 76:84e6c4994e29 73 * On Entry:
IanBenzMaxim 76:84e6c4994e29 74 * @param[in] romId - refernce to ROM # of switch
IanBenzMaxim 76:84e6c4994e29 75 *
IanBenzMaxim 76:84e6c4994e29 76 * On Exit:
IanBenzMaxim 76:84e6c4994e29 77 * @param[out] val - lsb represents the state of the pio
IanBenzMaxim 76:84e6c4994e29 78 *
IanBenzMaxim 76:84e6c4994e29 79 * @return CmdResult - result of operation
IanBenzMaxim 76:84e6c4994e29 80 **************************************************************/
IanBenzMaxim 76:84e6c4994e29 81 CmdResult pio_access_read_chA(uint8_t & val);
j3 19:6d4c039a2d8e 82
IanBenzMaxim 76:84e6c4994e29 83 /**********************************************************//**
IanBenzMaxim 76:84e6c4994e29 84 * @brief pio_access_read_chB()
IanBenzMaxim 76:84e6c4994e29 85 *
IanBenzMaxim 76:84e6c4994e29 86 * @details reads state of pio
IanBenzMaxim 76:84e6c4994e29 87 *
IanBenzMaxim 76:84e6c4994e29 88 * On Entry:
IanBenzMaxim 76:84e6c4994e29 89 * @param[in] romId - refernce to ROM # of switch
IanBenzMaxim 76:84e6c4994e29 90 *
IanBenzMaxim 76:84e6c4994e29 91 * On Exit:
IanBenzMaxim 76:84e6c4994e29 92 * @param[out] val - lsb represents the state of the pio
IanBenzMaxim 76:84e6c4994e29 93 *
IanBenzMaxim 76:84e6c4994e29 94 * @return CmdResult - result of operation
IanBenzMaxim 76:84e6c4994e29 95 **************************************************************/
IanBenzMaxim 76:84e6c4994e29 96 CmdResult pio_access_read_chB(uint8_t & val);
IanBenzMaxim 74:23be10c32fa3 97
IanBenzMaxim 76:84e6c4994e29 98 /**********************************************************//**
IanBenzMaxim 76:84e6c4994e29 99 * @brief pio_acess_write_chA()
IanBenzMaxim 76:84e6c4994e29 100 *
IanBenzMaxim 76:84e6c4994e29 101 * @details writes to pio
IanBenzMaxim 76:84e6c4994e29 102 *
IanBenzMaxim 76:84e6c4994e29 103 * On Entry:
IanBenzMaxim 76:84e6c4994e29 104 * @param[in] romId - refernce to ROM # of switch
IanBenzMaxim 76:84e6c4994e29 105 * @param[in] val - lsb sets state of pio
IanBenzMaxim 76:84e6c4994e29 106 *
IanBenzMaxim 76:84e6c4994e29 107 * On Exit:
IanBenzMaxim 76:84e6c4994e29 108 *
IanBenzMaxim 76:84e6c4994e29 109 * @return CmdResult - result of operation
IanBenzMaxim 76:84e6c4994e29 110 **************************************************************/
IanBenzMaxim 76:84e6c4994e29 111 CmdResult pio_access_write_chA(uint8_t val);
j3 19:6d4c039a2d8e 112
IanBenzMaxim 76:84e6c4994e29 113 /**********************************************************//**
IanBenzMaxim 76:84e6c4994e29 114 * @brief pio_acess_write_chB()
IanBenzMaxim 76:84e6c4994e29 115 *
IanBenzMaxim 76:84e6c4994e29 116 * @details writes to pio
IanBenzMaxim 76:84e6c4994e29 117 *
IanBenzMaxim 76:84e6c4994e29 118 * On Entry:
IanBenzMaxim 76:84e6c4994e29 119 * @param[in] romId - refernce to ROM # of switch
IanBenzMaxim 76:84e6c4994e29 120 * @param[in] val - lsb sets state of pio
IanBenzMaxim 76:84e6c4994e29 121 *
IanBenzMaxim 76:84e6c4994e29 122 * On Exit:
IanBenzMaxim 76:84e6c4994e29 123 *
IanBenzMaxim 76:84e6c4994e29 124 * @return CmdResult - result of operation
IanBenzMaxim 76:84e6c4994e29 125 **************************************************************/
IanBenzMaxim 76:84e6c4994e29 126 CmdResult pio_access_write_chB(uint8_t val);
IanBenzMaxim 74:23be10c32fa3 127
IanBenzMaxim 76:84e6c4994e29 128 /**********************************************************//**
IanBenzMaxim 76:84e6c4994e29 129 * @brief pio_acess_write_chAB()
IanBenzMaxim 76:84e6c4994e29 130 *
IanBenzMaxim 76:84e6c4994e29 131 * @details writes to pio
IanBenzMaxim 76:84e6c4994e29 132 *
IanBenzMaxim 76:84e6c4994e29 133 * On Entry:
IanBenzMaxim 76:84e6c4994e29 134 * @param[in] romId - refernce to ROM # of switch
IanBenzMaxim 76:84e6c4994e29 135 * @param[in] val - Bits 1:0 set PIOB and PIOB respectively
IanBenzMaxim 76:84e6c4994e29 136 *
IanBenzMaxim 76:84e6c4994e29 137 * On Exit:
IanBenzMaxim 76:84e6c4994e29 138 *
IanBenzMaxim 76:84e6c4994e29 139 * @return CmdResult - result of operation
IanBenzMaxim 76:84e6c4994e29 140 **************************************************************/
IanBenzMaxim 76:84e6c4994e29 141 CmdResult pio_access_write_chAB(uint8_t val);
IanBenzMaxim 74:23be10c32fa3 142
IanBenzMaxim 76:84e6c4994e29 143 private:
IanBenzMaxim 74:23be10c32fa3 144
IanBenzMaxim 76:84e6c4994e29 145 CmdResult pio_access_read(uint8_t & val);
IanBenzMaxim 74:23be10c32fa3 146
IanBenzMaxim 76:84e6c4994e29 147 CmdResult pio_access_write(uint8_t val);
IanBenzMaxim 76:84e6c4994e29 148 };
IanBenzMaxim 73:2cecc1372acc 149 }
IanBenzMaxim 73:2cecc1372acc 150
IanBenzMaxim 74:23be10c32fa3 151 #endif