RTC auf true

Committer:
kevman
Date:
Wed Mar 13 11:03:24 2019 +0000
Revision:
2:7aab896b1a3b
2019-03-13

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kevman 2:7aab896b1a3b 1 /*
kevman 2:7aab896b1a3b 2 * Copyright (c) 2014-2015 ARM Limited. All rights reserved.
kevman 2:7aab896b1a3b 3 * SPDX-License-Identifier: Apache-2.0
kevman 2:7aab896b1a3b 4 * Licensed under the Apache License, Version 2.0 (the License); you may
kevman 2:7aab896b1a3b 5 * not use this file except in compliance with the License.
kevman 2:7aab896b1a3b 6 * You may obtain a copy of the License at
kevman 2:7aab896b1a3b 7 *
kevman 2:7aab896b1a3b 8 * http://www.apache.org/licenses/LICENSE-2.0
kevman 2:7aab896b1a3b 9 *
kevman 2:7aab896b1a3b 10 * Unless required by applicable law or agreed to in writing, software
kevman 2:7aab896b1a3b 11 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
kevman 2:7aab896b1a3b 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
kevman 2:7aab896b1a3b 13 * See the License for the specific language governing permissions and
kevman 2:7aab896b1a3b 14 * limitations under the License.
kevman 2:7aab896b1a3b 15 */
kevman 2:7aab896b1a3b 16 #ifndef AT24MAC_H
kevman 2:7aab896b1a3b 17 #define AT24MAC_H
kevman 2:7aab896b1a3b 18
kevman 2:7aab896b1a3b 19 #include "PinNames.h"
kevman 2:7aab896b1a3b 20
kevman 2:7aab896b1a3b 21 #if DEVICE_I2C
kevman 2:7aab896b1a3b 22
kevman 2:7aab896b1a3b 23 #include "I2C.h"
kevman 2:7aab896b1a3b 24 #include "drivers/DigitalInOut.h"
kevman 2:7aab896b1a3b 25 #include "platform/mbed_wait_api.h"
kevman 2:7aab896b1a3b 26
kevman 2:7aab896b1a3b 27 /*
kevman 2:7aab896b1a3b 28 * AT24MAC drivers.
kevman 2:7aab896b1a3b 29 *
kevman 2:7aab896b1a3b 30 * This is a EEPROM chip designed to contain factory programmed read-only EUI-64 or EUI-48,
kevman 2:7aab896b1a3b 31 * a 128bit serial number and some user programmable EEPROM.
kevman 2:7aab896b1a3b 32 *
kevman 2:7aab896b1a3b 33 * AT24MAC602 contains EUI-64, use read_eui64()
kevman 2:7aab896b1a3b 34 * AT24MAC402 contains EUI-64, use read_eui48()
kevman 2:7aab896b1a3b 35 *
kevman 2:7aab896b1a3b 36 * NOTE: You cannot use both EUI-64 and EUI-48. Chip contains only one of those.
kevman 2:7aab896b1a3b 37 */
kevman 2:7aab896b1a3b 38
kevman 2:7aab896b1a3b 39 class AT24Mac {
kevman 2:7aab896b1a3b 40 public:
kevman 2:7aab896b1a3b 41 AT24Mac(PinName sda, PinName scl);
kevman 2:7aab896b1a3b 42
kevman 2:7aab896b1a3b 43 /**
kevman 2:7aab896b1a3b 44 * Read unique serial number from chip.
kevman 2:7aab896b1a3b 45 * \param buf pointer to write serial number to. Must have space for 16 bytes.
kevman 2:7aab896b1a3b 46 * \return zero on success, negative number on failure
kevman 2:7aab896b1a3b 47 */
kevman 2:7aab896b1a3b 48 int read_serial(void *buf);
kevman 2:7aab896b1a3b 49
kevman 2:7aab896b1a3b 50 /**
kevman 2:7aab896b1a3b 51 * Read EUI-64 from chip.
kevman 2:7aab896b1a3b 52 * \param buf pointer to write EUI-64 to. Must have space for 8 bytes.
kevman 2:7aab896b1a3b 53 * \return zero on success, negative number on failure
kevman 2:7aab896b1a3b 54 */
kevman 2:7aab896b1a3b 55 int read_eui64(void *buf);
kevman 2:7aab896b1a3b 56
kevman 2:7aab896b1a3b 57 /**
kevman 2:7aab896b1a3b 58 * Read EUI-48 from chip.
kevman 2:7aab896b1a3b 59 * \param buf pointer to write EUI-48 to. Must have space for 6 bytes.
kevman 2:7aab896b1a3b 60 * \return zero on success, negative number on failure
kevman 2:7aab896b1a3b 61 */
kevman 2:7aab896b1a3b 62 int read_eui48(void *buf);
kevman 2:7aab896b1a3b 63
kevman 2:7aab896b1a3b 64 private:
kevman 2:7aab896b1a3b 65 /*
kevman 2:7aab896b1a3b 66 * Dummy class to allow us to reset I2C before the I2C constructor is called in
kevman 2:7aab896b1a3b 67 * the initializer list of AT24Mac's constructor
kevman 2:7aab896b1a3b 68 */
kevman 2:7aab896b1a3b 69 class I2CReset {
kevman 2:7aab896b1a3b 70 public:
kevman 2:7aab896b1a3b 71 I2CReset(PinName sda, PinName scl);
kevman 2:7aab896b1a3b 72 };
kevman 2:7aab896b1a3b 73 I2CReset i2c_reset;
kevman 2:7aab896b1a3b 74 mbed::I2C _i2c;
kevman 2:7aab896b1a3b 75 };
kevman 2:7aab896b1a3b 76
kevman 2:7aab896b1a3b 77 #endif /* DEVICE_I2C */
kevman 2:7aab896b1a3b 78 #endif /* AT24MAC_H */