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:
j3
Date:
Wed Apr 13 20:31:41 2016 +0000
Revision:
54:08985bf69691
Parent:
22:686273e55cdc
Updated expected status in  DS2413 write pio fx

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
j3 19:6d4c039a2d8e 33
j3 19:6d4c039a2d8e 34 #ifndef DS2413_H
j3 19:6d4c039a2d8e 35 #define DS2413_H
j3 19:6d4c039a2d8e 36
j3 19:6d4c039a2d8e 37
j3 19:6d4c039a2d8e 38 #include "mbed.h"
IanBenzMaxim 21:00c94aeb533e 39 #include "OneWire_Masters/OneWireMasters.h"
j3 19:6d4c039a2d8e 40
j3 19:6d4c039a2d8e 41
j3 19:6d4c039a2d8e 42 class Ds2413
j3 19:6d4c039a2d8e 43 {
j3 19:6d4c039a2d8e 44
j3 19:6d4c039a2d8e 45 public:
j3 19:6d4c039a2d8e 46
j3 19:6d4c039a2d8e 47 enum DS2413_CMDS
j3 19:6d4c039a2d8e 48 {
j3 19:6d4c039a2d8e 49 PIO_ACCESS_READ = 0xF5,
j3 19:6d4c039a2d8e 50 PIO_ACCESS_WRITE = 0x5A
j3 19:6d4c039a2d8e 51 };
j3 19:6d4c039a2d8e 52
j3 19:6d4c039a2d8e 53 enum DS2413_PIO
j3 19:6d4c039a2d8e 54 {
j3 19:6d4c039a2d8e 55 PIOA,
j3 19:6d4c039a2d8e 56 PIOB,
j3 19:6d4c039a2d8e 57 PIOAB
j3 19:6d4c039a2d8e 58 };
j3 19:6d4c039a2d8e 59
j3 19:6d4c039a2d8e 60 enum CmdResult
j3 19:6d4c039a2d8e 61 {
j3 19:6d4c039a2d8e 62 Success,
j3 19:6d4c039a2d8e 63 CommsReadError,
j3 19:6d4c039a2d8e 64 CommsWriteError,
j3 19:6d4c039a2d8e 65 OpFailure
j3 19:6d4c039a2d8e 66 };
j3 19:6d4c039a2d8e 67
j3 19:6d4c039a2d8e 68 /**********************************************************//**
j3 19:6d4c039a2d8e 69 * @brief Ds2413 constructor
j3 19:6d4c039a2d8e 70 *
j3 19:6d4c039a2d8e 71 * @details
j3 19:6d4c039a2d8e 72 *
j3 19:6d4c039a2d8e 73 * On Entry:
j3 19:6d4c039a2d8e 74 * @param[in] owm - reference to 1-wire master
j3 19:6d4c039a2d8e 75 *
j3 19:6d4c039a2d8e 76 * On Exit:
j3 19:6d4c039a2d8e 77 *
j3 19:6d4c039a2d8e 78 * @return
j3 19:6d4c039a2d8e 79 **************************************************************/
j3 22:686273e55cdc 80 Ds2413(OneWireMaster &owm);
j3 19:6d4c039a2d8e 81
j3 19:6d4c039a2d8e 82
j3 19:6d4c039a2d8e 83 /**********************************************************//**
j3 19:6d4c039a2d8e 84 * @brief pio_access_read_chA()
j3 19:6d4c039a2d8e 85 *
j3 19:6d4c039a2d8e 86 * @details reads state of pio
j3 19:6d4c039a2d8e 87 *
j3 19:6d4c039a2d8e 88 * On Entry:
j3 19:6d4c039a2d8e 89 * @param[in] romId - refernce to ROM # of switch
j3 19:6d4c039a2d8e 90 *
j3 19:6d4c039a2d8e 91 * On Exit:
j3 19:6d4c039a2d8e 92 * @param[out] val - lsb represents the state of the pio
j3 19:6d4c039a2d8e 93 *
j3 19:6d4c039a2d8e 94 * @return CmdResult - result of operation
j3 19:6d4c039a2d8e 95 **************************************************************/
j3 19:6d4c039a2d8e 96 CmdResult pio_access_read_chA(RomId &romId, uint8_t & val);
j3 19:6d4c039a2d8e 97
j3 19:6d4c039a2d8e 98
j3 19:6d4c039a2d8e 99 /**********************************************************//**
j3 19:6d4c039a2d8e 100 * @brief pio_access_read_chB()
j3 19:6d4c039a2d8e 101 *
j3 19:6d4c039a2d8e 102 * @details reads state of pio
j3 19:6d4c039a2d8e 103 *
j3 19:6d4c039a2d8e 104 * On Entry:
j3 19:6d4c039a2d8e 105 * @param[in] romId - refernce to ROM # of switch
j3 19:6d4c039a2d8e 106 *
j3 19:6d4c039a2d8e 107 * On Exit:
j3 19:6d4c039a2d8e 108 * @param[out] val - lsb represents the state of the pio
j3 19:6d4c039a2d8e 109 *
j3 19:6d4c039a2d8e 110 * @return CmdResult - result of operation
j3 19:6d4c039a2d8e 111 **************************************************************/
j3 19:6d4c039a2d8e 112 CmdResult pio_access_read_chB(RomId &romId, uint8_t & val);
j3 19:6d4c039a2d8e 113
j3 19:6d4c039a2d8e 114
j3 19:6d4c039a2d8e 115 /**********************************************************//**
j3 19:6d4c039a2d8e 116 * @brief pio_acess_write_chA()
j3 19:6d4c039a2d8e 117 *
j3 19:6d4c039a2d8e 118 * @details writes to pio
j3 19:6d4c039a2d8e 119 *
j3 19:6d4c039a2d8e 120 * On Entry:
j3 19:6d4c039a2d8e 121 * @param[in] romId - refernce to ROM # of switch
j3 19:6d4c039a2d8e 122 * @param[in] val - lsb sets state of pio
j3 19:6d4c039a2d8e 123 *
j3 19:6d4c039a2d8e 124 * On Exit:
j3 19:6d4c039a2d8e 125 *
j3 19:6d4c039a2d8e 126 * @return CmdResult - result of operation
j3 19:6d4c039a2d8e 127 **************************************************************/
j3 19:6d4c039a2d8e 128 CmdResult pio_access_write_chA(RomId &romId, uint8_t val);
j3 19:6d4c039a2d8e 129
j3 19:6d4c039a2d8e 130
j3 19:6d4c039a2d8e 131 /**********************************************************//**
j3 19:6d4c039a2d8e 132 * @brief pio_acess_write_chB()
j3 19:6d4c039a2d8e 133 *
j3 19:6d4c039a2d8e 134 * @details writes to pio
j3 19:6d4c039a2d8e 135 *
j3 19:6d4c039a2d8e 136 * On Entry:
j3 19:6d4c039a2d8e 137 * @param[in] romId - refernce to ROM # of switch
j3 19:6d4c039a2d8e 138 * @param[in] val - lsb sets state of pio
j3 19:6d4c039a2d8e 139 *
j3 19:6d4c039a2d8e 140 * On Exit:
j3 19:6d4c039a2d8e 141 *
j3 19:6d4c039a2d8e 142 * @return CmdResult - result of operation
j3 19:6d4c039a2d8e 143 **************************************************************/
j3 19:6d4c039a2d8e 144 CmdResult pio_access_write_chB(RomId &romId, uint8_t val);
j3 19:6d4c039a2d8e 145
j3 54:08985bf69691 146
j3 54:08985bf69691 147 /**********************************************************//**
j3 54:08985bf69691 148 * @brief pio_acess_write_chAB()
j3 54:08985bf69691 149 *
j3 54:08985bf69691 150 * @details writes to pio
j3 54:08985bf69691 151 *
j3 54:08985bf69691 152 * On Entry:
j3 54:08985bf69691 153 * @param[in] romId - refernce to ROM # of switch
j3 54:08985bf69691 154 * @param[in] val - Bits 1:0 set PIOB and PIOB respectively
j3 54:08985bf69691 155 *
j3 54:08985bf69691 156 * On Exit:
j3 54:08985bf69691 157 *
j3 54:08985bf69691 158 * @return CmdResult - result of operation
j3 54:08985bf69691 159 **************************************************************/
j3 54:08985bf69691 160 CmdResult pio_access_write_chAB(RomId &romId, uint8_t val);
j3 54:08985bf69691 161
j3 19:6d4c039a2d8e 162
j3 19:6d4c039a2d8e 163 private:
j3 19:6d4c039a2d8e 164
j3 19:6d4c039a2d8e 165 CmdResult pio_access_read(RomId &romId, uint8_t & val);
j3 19:6d4c039a2d8e 166
j3 19:6d4c039a2d8e 167 CmdResult pio_access_write(RomId &romId, uint8_t val);
j3 19:6d4c039a2d8e 168
j3 22:686273e55cdc 169 OneWireMaster &_owm;
j3 19:6d4c039a2d8e 170
j3 19:6d4c039a2d8e 171 };
j3 19:6d4c039a2d8e 172
j3 19:6d4c039a2d8e 173 #endif /*DS2413_H*/