Library for MAX14871 Shield, MAXREFDES89#
Dependents: MAXREFDES89_MAX14871_Shield_Demo MAXREFDES89_Test_Program Line_Following_Bot Line_Following_Bot_Pololu
Diff: max14871_shield.h
- Revision:
- 6:dc06cc75c1c8
- Parent:
- 5:a206f6505109
- Child:
- 7:c0bee1397f3e
--- a/max14871_shield.h Tue Dec 22 04:24:07 2015 +0000 +++ b/max14871_shield.h Fri May 13 00:03:32 2016 +0000 @@ -1,16 +1,5 @@ /******************************************************************//** * @file max14871_shield.h -* -* @author Justin Jordan -* -* @version 0.0 -* -* Started: 18JUL15 -* -* Updated: -* -* @brief Header file for Max14871_Shield class -*********************************************************************** * Copyright (C) 2015 Maxim Integrated Products, Inc., All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -51,10 +40,33 @@ #include "max5387.h" +/** +* @brief MAX14871 Full-Bridge DC Motor Driver MBED Shield Library +* +* @details The MAXREFDES89# provides an ideal interface for anyone +* developing with brushed DC motors. The design is an +* mbed®-compatible, Arduino® form factor shield for the rapid +* development of brushed DC motor applications. The shield contains +* four MAX14871 full-bridge DC motor drivers for driving up to 4 +* motors. A MAX17501 DC-DC converter allows the system to operate +* from a single 7 to 36VDC power supply. Four MAX4704 4:1 +* multiplexers permit setting the current regulation mode of the +* MAX14871, while two MAX5387 digital potentiometers provide the +* ability to set the motor current limit. A MAX7300 GPIO expander +* supports interfacing each motor driver circuit to the +* mbed-enabled microcontroller platform. +* +* @code +* @endcode +*/ class Max14871_Shield { public: + /** + * @brief Motor driver channels + * @details Simple enumeration of channels available on the shield + */ typedef enum { MD1 = 1, @@ -64,6 +76,10 @@ }max14871_motor_driver_t; + /** + * @brief Operating modes + * @details Motor operating modes offered on each channel + */ typedef enum { COAST = 1, @@ -73,6 +89,12 @@ }max14871_operating_mode_t; + /** + * @brief Current regulation modes + * @details Three different current regulation modes offered with + * either an internal or external reference for setting the regulation limit. + * This is not the fault current which is fixed, see datasheet. + */ typedef enum { RIPPLE_25_INTERNAL_REF = 1, @@ -95,7 +117,8 @@ * pwm channels and I2C addressing * * On Exit: - * @return none + * + * @return None **************************************************************/ Max14871_Shield(I2C *i2c_bus, bool default_config); @@ -113,7 +136,8 @@ * pwm channels and I2C addressing * * On Exit: - * @return none + * + * @return None **************************************************************/ Max14871_Shield(PinName sda, PinName scl, bool default_config); @@ -126,7 +150,8 @@ * On Entry: * * On Exit: - * @return none + * + * @return None **************************************************************/ ~Max14871_Shield(); @@ -142,7 +167,8 @@ * @param[in] mode - 1 of 4 operating modes of the motor driver * * On Exit: - * @return 0 on success, non-0 on failure + * + * @return 0 on success, non-0 on failure **************************************************************/ int16_t set_operating_mode(max14871_motor_driver_t md, max14871_operating_mode_t mode); @@ -160,7 +186,8 @@ * @param[in] vref - sets maximum motor current, Max of 2.0V * * On Exit: - * @return 0 on success, non-0 on failure + * + * @return 0 on success, non-0 on failure **************************************************************/ int16_t set_current_regulation_mode(max14871_motor_driver_t md, max14871_current_regulation_mode_t mode, @@ -180,7 +207,8 @@ * @param[in] ch - PWM channel using Arduino naming convention * * On Exit: - * @return 0 on success, non-0 on failure + * + * @return 0 on success, non-0 on failure **************************************************************/ int16_t set_pwm_channel(max14871_motor_driver_t md, PinName ch); @@ -195,7 +223,8 @@ * @param[in] period - PWM period specified in seconds * * On Exit: - * @return 0 on success, non-0 on failure + * + * @return 0 on success, non-0 on failure **************************************************************/ int16_t set_pwm_period(max14871_motor_driver_t md, float period); @@ -211,7 +240,8 @@ * as a percentage * * On Exit: - * @return 0 on success, non-0 on failure + * + * @return 0 on success, non-0 on failure **************************************************************/ int16_t set_pwm_duty_cycle(max14871_motor_driver_t md, float duty_cycle); @@ -225,7 +255,8 @@ * @param[in] md - 1 of 4 motor drivers on the shield * * On Exit: - * @return operating mode of selected motor driver + * + * @return Operating mode of selected motor driver **************************************************************/ max14871_operating_mode_t get_operating_mode(max14871_motor_driver_t md); @@ -239,7 +270,8 @@ * @param[in] md - 1 of 4 motor drivers on the shield * * On Exit: - * @return current regulation mode of selected motor driver + * + * @return Current regulation mode of selected motor driver **************************************************************/ max14871_current_regulation_mode_t get_current_regulation_mode(max14871_motor_driver_t md); @@ -253,7 +285,8 @@ * @param[in] md - 1 of 4 motor drivers on the shield * * On Exit: - * @return duty cycle of selected motor driver + * + * @return Duty cycle of selected motor driver **************************************************************/ float get_pwm_duty_cycle(max14871_motor_driver_t md); @@ -267,7 +300,8 @@ * @param[in] md - 1 of 4 motor drivers on the shield * * On Exit: - * @return pwm period of selected motor driver + * + * @return pwm period of selected motor driver **************************************************************/ float get_pwm_period(max14871_motor_driver_t md); @@ -281,7 +315,8 @@ * @param[in] md - 1 of 4 motor drivers on the shield * * On Exit: - * @return external voltage reference of selected motor driver + * + * @return External voltage reference of selected motor driver **************************************************************/ float get_external_voltage_ref(max14871_motor_driver_t md);