A metronome using the FRDM K64F board

Committer:
ram54288
Date:
Sun May 14 18:40:18 2017 +0000
Revision:
0:a7a43371b306
Initial commit

Who changed what in which revision?

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