I welcome you to my review of MAX31343 Shield. My review is split to multiple chapters linked in following table of contents. Main page of review (marked with yellow star) contains summary, final score, and description of all chapters. Most important chapters of review begin with “Review” in name and contains detailed description of thing under review. This chapter is one of them. Except this chapter reviewing Evaluating shield there are also chapters reviewing, RTC chip in more details and there are chapter reviewing bundled PICO board and MCU present on PICO board. There are also described projects which I have done for evaluating this shield and finally there one tutorial showing how to easily use roadtested shield with Arduino.
Review Table of Contents
- Introduction, Overview of Table of Contents, Summary and Score
- Review of RTC Chip
- Review of Evaluation Shield (this article)
- Review of MAX32625 MCU and PICO Board
- Tutorial: Using Shield with Arduino
- Project 1: Platform Independent Library
- Project 2: Time Syncing over BLE
- Project 3: Linux Driver
Review of Evaluation Shield
MAX31343SHLD is Shield with Arduino compatible connector allowing you to evaluate MAX31343 Real Time Clock (RTC) chip. Except MAX31343 RTC Chip it features interesting supercapacitor and good possibilities to evaluate features of all parts of board.
Overview of Shield
This shield is not an easy straight shield with only chip with chip routed to connector. This shield offers much more. Shield contains 7 chips. The main chip is MAX31343 RTC. It is in the middle of shield and it is referred as U1. Following image highlights this chip:
Shield is designed in a way that you can evaluate chip in both available packages (WLP and TDFN). We have seen WLP variant of chip on previous picture. TDFN variant is not soldered and you must solder it yourself if you want to evaluate it. I am not sure what is the reason for evaluating the same in different package because differences between viarants are minimal. Footprint for soldering TDFN variant is under WLP variant and it is highlighted by following image:
When you want to evaluate TDNF chip, you can select active chip using JU10 jumper. If you do not solder additional chip, you should let JU10 in default position:
Internally active chip selection is done using analog switches. Analog switches routes SDA, SCL, INT, SQL and CLKO signals to/from one of the chips according to JU10 setting. Analog switches are MAX14689 and they are highlighted by following image:
Each interesting signal is routed to PICO connector and Arduino connector. Each signal can be disconnected from Arduino connector using following jumpers:
This approach allows you to remap signals to any other pin using wire If you do not like default layout. You can disconnect jumper and connect wire between bottom pin of jumper to any pin you want. Please note that this approach bypass voltage level shifter and some passive components like pull up resistors, so you must provide them externally. Always consult schematic when doing this kind of hacks.
You can connect logic analyser to each interesting signal using test points:
Except signal test points, there are two ground test points and test points connected to external power supplies. Please note that these voltages are not power supply of chip and battery. If you want to measure Vcc and Vbat voltage I recommend using middle wire of power supply source selection jumpers as test point:
You can select voltage using jumpers forming star connection. You can configure Vcc and Vbat sources in this way:
Vcc you can select from choice of:
- 5V
- 3V3
- 1V8
- External voltage
Vbat you can select from:
- Super capacitor
- External voltage
- No valtage (GND)
While it looks easy at first look, there are some strange parts about it which I will describe later. For now you can think what voltage you get when choosing 1V8 as Vcc and use board with Arduino (Arduino has no 1.8V on this connector)? Answer will be provided later.
Last three chips near Arduino connector are voltage level shifters NLSX4373 (left and right) and NLSX4401 (middle) from ON Semiconductor. NLSX4373 is two-bit level shifter and NLSX4401 is one-bit level shifter. Level shifters convert signal voltage between Vcc and Vioref. Voltage shifters are highlighted by following picture:
For backup power there is 0.33F (really Farads) supercapacitor from Epson. This is different approach than CR2032 battery. I will describe this later in more details. Following image highlights supercapacitor:
Last jumpers which were not described yet are designed from disconnecting power supplies to RTC chips. You can disconnect both Vcc and Vbat from both variants of chip. Jumpers are visualized by following picture:
Except described components there are passive components like resistors and capacitors. Finally, there are unpopulated P7 connector. It is mystery to me. I have no idea what it is used for. There are no signal connected to it. It is 6 plated holes.
Powering options
For now, I spend some time with describing powering options and available voltages. While it should look easy at the first look, it is complicated when you go to details. Especially in case of 1.8V which under many circumstances is not 1.8V!
There are 6 voltages levels:
- 5V
- 3V3
- 1V8
- Vioref
- Vcc
- Vbat
As mentioned in previous section, Vcc and Vbat are configurable using jumpers. But it is not as easy as it looks because there are two ways how to provide main supplies (5V, 3V3, 1V8, Vioref). First way is providing them from Arduino connector. Second way is providing them from MAX32625PICO. When powering by MAX32625PICO It is easy.
- 5V is 5V from USB
- 3V3 is 3.3V from regulator on PICO board
- 1V8 is 1.8V from regulator on PICO board
And what about Vioref? Vioref is “directly” connected to 1V8, so Vioref is 1.8V when powering using PICO board:
This schematic is interesting because it is not clear at the first look what is the purpose of this connection. This interesting connection resulted from PICO board design. PICO board featuring MAX32625 MCU supports powering IO pins of MCU by multiple voltages Vddio and Vddioh. It is designed to allow MCU control some pins by 1.8V and some other pins by 3.3V (but it is not limited to this value). By default, all pins are driven by 1.8V, so shield is designed in way. Because that shield expects Vioref is 1.8V. But this interesting design is more flexible. It allows you use 3.3V interface (Vioref) and for doing that you need to desolder R5 and solder 0-ohm resistor R6. Of course, you must remember to reconfigure firmware on MAX32625 to use Vddioh instead of Vddio on this pin. While you probably never will need do this modification, it shows flexibility of shield and its design. Second interesting thing is that it is that 3.3V voltage is not provided to Vioref from 3.3V pin on connecter but it is provided by pin which at the first look looks like normal GPIO pin. But this pin is connected using another analog switch on PICO board and PICO board firmware can using software configure this pin to providing Vddioh directly from voltage regulator. It is quite complicated and I recommend checking datasheet and schematics when using these advanced features.
Now let’s look, how powering works when powering by Arduino connector. 5V and 3.3V voltages are simple. They are simply provided from connector. But what about 1.8V and Vioref? Vioref is available at connector, so it is connected directly. And 1.8V? it uses the same circuit for bridging 1.8V and Vioref (0-ohm resistor R5). So, when using with Arduino:
- 5V is 5V from Arduino connector
- 3V3 is 3.3V from Arduino connector
- Vioref and 1V8 is voltage of MCU on your Arduino. On AVR Arduinos Vioref and 1V8 would be 5V and on most Arm Arduinos it would be 3.3V. Really you can measure on 1V8 wire voltage different (and possibly higher) than 1.8V!
This design is extremely flexible, but it is complicated to understand at first look. I don’t like design that there are possibly connected voltage higher than 1.8V to wire named 1.8V. And this occurs when used with almost all Arduinos (or other board with compatible connector).
Multimaster operation
When I was developing my library for this chip, I was interested in connecting shield to my development board and use PICO board and GUI software (described later) at the same time for checking that my application configured RTC chip correctly. I2C support multi mastering so this should be possible, but it is complicated due to powering connections. Connecting two power supplies (from Arduino compatible board and PICO board) is not a good idea and even worst, Vioref is powered to 1.8V by PICO board while my board powers Vioref to 3.3V. Connecting 1.8V and 3.3V directly is short circuit. So, this is not possible in an easy way. If you want to do this, you must disconnect PICO board and manually connect only wires you want to share (usually signals and ground, exclude power supplies). Also note that you must carefully handle voltage levels created by setting Vioref by your Arduino. PICO board is configured to handle 1.8V at maximum unless port is reconfigured to use Vddioh instead. So, I think this is not a easy and I recommend resting using logic analyser instead.
Supercapacitor
Shield have supercapacitor used for backup power to RTC chip when it is not powered by main power supply. This is modern approach that behave differently than still very frequently used batteries like CR2032. While battery remains charged for years, capacitor for weeks. But capacitor is rechargeable (chip has configurable trickle charger), consume less space on PCB and do not require any maintenance. It is good in case when you know that device is at least once per week powered for some time. In this case capacitor will be enough to handle backup power over whole time without any maintenance.
Supercapacitors are expensive. How long capacitor remain charged depends mostly on how much you are able spend for it. How long capacitor remain charged also depends on powering voltage of RTC chip which charges them. For example, if you power MAX31343 RTC chip by 3.3V you will never charge backup capacitor to higher voltage. This should be problem especially if you want to use MAX31343 at low voltages like 1.8V. But when you are powering your device with for example 3.3 you can buy cheaper supercapacitor with nominal voltage less than 5.5V which is used on board. Roadtested shield features 0.33F supercapacitor. From 4.0V to 1.6V it takes between 1 to 2 weeks to discharge but note that chip also correctly works below 1.6V down to approximately to 0.9V. Of course, this is not guaranteed by datasheet and most probably it wont work under all conditions. At 0.9V chip stop working and sourcing any current from capacitor. Capacitor stop further discharging at stuck this voltage.
If you want to power chip by battery, you can connect it using external Vbat voltage which you can connect to Arduino header.
Packaging
Shield came correctly packaged in antistatic bag and box was filled with antistatic foam. Except shield there were MAX32625 PICO board and high-quality micro USB cable. Box was strong paper box with sticker with information about product number, order number and number of some batch. There are no beautiful images on box, but I like simple boxes.
I received shield with edge pins bend a little. It was easily resolvable using finger. I think that packaging is good.
GUI Tool
There is available GUI tool which can evaluate almost any features of chip. You can use it for initial time configuration and much more. You can use it for reading time, configuring alarms, writing RAM content, …. Software is implemented in a way that it communicates over USB with PICO board. PICO board is preprogramed with firmware which handles this communication and creates I2C bridge. It also handles interrupt signal and software tool can visualize status of interrupt signal.
GUI tool is fantastic approach of evaluating chip features in seconds. It is probably not very useful for creating final product with this chip but can help much in development time.
Disadvantage is that GUI tool is available only for Windows. It is written in C# and Windows Forms technology. Form this choice results some limits like that GUI is blur on modern monitors with high DPI.
Documentation
Shield documentation is good, and it is easy to find. I have only one note about schematics. It is as part of datasheet and it is 90 deg rotated. I like schematic in separate PDF because I can open schematic and datasheet at once and I can rotate PDFs independently. Shield documentation I consider complete. I found all information which I was interested in seconds.
Price
The big disadvantage is price. Shield cost about 120 USD which I consider too much for a board evaluating RTC chip in value 3.75 USD at Newark at the time of writing when buying single piece and 2.39 USD when buying 250 pieces. Another expensive component is supercapacitor which cost 4.72 USD at Newark at the time of writing when buying single piece and 2.56 USD when buying 1000pcs. Price of other components is negligible. I think the price is mostly affected by low batch manufacturing of this shield. There are many through hole components like connectors, test points and jumpers which are probably very hard to assemble by machines. Most probably price is also affected by need to develop many additional software and firmware, so as part of price is something like “license” which is free, but of course programmers does not work for free.
But I still think that 120 USD is so much.
Summary
MAX31343SHLD is good shield with fantastic opportunities and evaluation possibilities. It can significantly reduce time when developing application featuring this chip and debugging your firmware. Disadvantage of advanced possibilities is that they are sometimes hard to understand. Concept of evaluation using PICO board, USB and delivered GUI software is fantastic and allows evaluating in seconds without writing any line of code. Big disadvantage of shield is its price.