Here’s a follow up to our post “Intro to the MAXREFDES89, Brushed DC Quad Motor Controller mBed Shield” – the engineer who worked on it dropped in with some more info!
Thank you for getting back to me. I would like to start off by saying a huge thank you to you and your team for the work you do. Companies like Adafruit and Parallax made a big impact on me while in school and I really appreciate your efforts. With regards to MAXREFDES89#, I would like to point out some features of the shield that may not be apparent at first and if you have any questions please let me know – Justin.
Flexibility of the shield
The design allows the user to evaluate the 3 different methods of current regulation offered by the MAX14871. Adding this flexibility did complicate the design a little, however I did abstract the user from this complication as best as possible by developing an mbed library that allows the user to interface with the shield using ‘set’ and ‘get’ functions relative to the operation of the MAX14871, not the configuration of the additional hardware that was needed to offer this flexibility. The library can be found at the following link.
https://developer.mbed.org/teams/Maxim-Integrated/code/MAX14871_Shield/
In an actual application that has a pre-determined mode of current regulation selected, all of the silicon other than the MAX14871 could be replaced by pin-strapping the appropriate pins to their appropriate potentials for the mode.
Current regulation vs. Fault current
I would like to clarify the difference between the ‘fault’ current and the ‘regulation’ current. The ‘fault’ current is a fixed value of 6A typical and is not configurable by the user. This information is documented on page 10 of the MAX14871 datasheet along with the effects an over current condition has on the /FAULT pin.
The regulation current, Ilim, is used to set the current at which the integrated current regulation circuit will take control of the motor terminals. The current regulation is useful during start-up and transients, because the power supply sourcing the motor will not need to provide the additional energy required during those events, which to my knowledge could be 10-15 times the nominal running current of the motor at start-up by rule of thumb. We recommend the use of 25% ripple mode and I have documented the different modes at the following link with data.
https://www.maximintegrated.com/en/design/reference-design-center/system-board/6219.html/tb_tab1
When I first looked at the MAX14871, I struggled with the subtle difference between the modes of regulation, and the fault current, so I thought it was worth mentioning.
Power Supply
You can power your platform directly from the shield, there is no need for a USB tether, or an additional power supply for the platform in application. The MAX17501 regulates the P1 supply and provides ~6V at 500mA to Vin pin of the platform being used for revA of the shield which was targeted for mbed platforms.
After revA was released, I continued testing on Arduino platforms which appear to have a larger inrush current at Vin than the mbed platforms I tested on. This caused the MAX17501 to enter hic-up mode and the system wouldn’t come up when powered from the shield. I addressed this by increasing the soft-start cap, C4, to 0.1uF (over iteration of smaller values) which results in a soft-start time of ~20ms. Rev B will have this BOM change along with increasing Vin min at P1 to 8V and the output of the MAX17501 to 7V to comply with the recommended Vin of Arduino platforms. The BOM changes required to achieve this performance are provided in table 1.
Table 1: BOM Changes for MAX17501
PWM Signals
There is a situation where if the micro is held in reset and the MAX7300 IO expander remains powered, the motor driver will remain enabled while the PWM signals are floating because the micro is in reset, and I forgot to add pull-downs to them. Rev B will include these pull downs.
Users can modify revA as shown in Figure 1 with the pull-downs. The recommended mod is down stream of the configuration resistors for selecting which GPIO you would like to use. The default GPIO used for PWM and their alternates are documented at the previous link.
Figure 1: Pull-downs added to PWM signals.