Designing with the SparkFun Artemis
There are a wonderful number of features packed into the Artemis. We’ll give an overview here but be sure to checkout the examples included in the Arduino core as well as the Ambiq SDK to learn more about them.
The Artemis module has 48 interrupt capable GPIO pads and a slew of other peripherals. The 2 hardware UARTs can be re-mapped to a handful of different pads, and there are 16 fully-independent PWM outputs. An advanced high-speed 14-bit ADC is connected to 10 pads. Use either SPI or I2C masters available on 6 sets of pads.
That’s far from all -- PDM, SSC, and DMA are also available using the HAL. Checkout the pin function map, the Apollo3 datasheet, and the Ambiq SDK/HAL for more information. But don't get overwhelmed, we've got lots of examples showing how to use all the various ports and pins.
The Artemis uses the Apollo3 from Ambiq as its core IC. This IC in turn uses the ARM Cortex-M4F running at 48MHz and an optional 96MHz burst mode. The powerful core can be programmed with GCC as well as Keil, IAR, and debugged with a variety of modern JTAG tools.
The Artemis has a built-in Bluetooth 5.0 radio capable of transmitting up to 4dBm which should get you about 70m transmission distance. We’ve seen successful RSSI checks at over 200ft.
With 31 pins out of 48 that are PWM enabled, you should be covered! Be sure to check the graphical datasheet and the pin map to see which pins have PWM capabilities.
Every pin can be configured as an interrupt and wake the processor from deep sleep. Additionally, all pins (except 20) have an internal pull-up that is software enabled.
Whereas the original Uno had a 10-bit converter, the Artemis has a 14-bit ADC - meaning the precision of readings goes from 0 to 1023 up to 0 to 16,383. This will enable more precise readings of sensors like analog flex, light, and sound. Note, however, that the ADC is 0V to 2V. So if you have sensor that outputs from 0 to 3.3V, it is safe, but will saturate the ADC over 2V. Use the
.setResolution function to change the resolution of readings from the default of 10 to 14 or anywhere in between. Additionally, the ADC is much faster (up to 1.2 MS/s) allowing more data to be aggregated.
Ambiq, the manufacturer of the Apollo3, has done years of research into something they call Sub-threshold Power Optimized Technology (SPOT™). This is a fancy description of a power saving technique that works by lowering the logic level voltages necessary to indicate a 1 or a 0. By doing so at the silicon level, Ambiq has managed to eke out a 48MHz processor running at less than half a milliamp. "Always on" monitoring of voice commands, without the need for BLE or a connection to the internet, takes approximately 6μA/MHz.
Sometimes 48MHz is not enough. The processor has the ability to enter a 96MHz burst mode where internal calculations and monitoring can be accomplished in half the time.
Modern power calls for modern debugging tools. The Artemis is based on a Cortex-M4F which has a JTAG port dedicated to debugging. With a JTAG debugger you can set break points, inspect registers and see what assembly and C instructions are being executed. It’s a tool that you’ll not often need, but when you need it, it’s a life saver.
One of the shining uses of the Artemis is for 'always on' voice recognition. Digital MEMS microphones are more sensitive and easier to use than their analog parents. The Artemis has a built-in PDM port allowing for up to 2 MEMS microphones to be used as either dual channel or in beam-forming applications.
Internal Pull Ups
Every pin has an internal weak pull-up that is software enabled. Additionally, the pins configured as I2C ports have software selectable pull-ups (1.5k, 6k, 12k, 24kΩ) eliminating the need for external SDA and SCL pull-ups.
Pin Drive Strength
One of the more unique features of the Artemis is its ability to have selectable drive strength on all GPIO. 2, 4, 8, or 12mA can be selected as the max current on a given pin. Additionally pads 3 and 36 have selectable high side power switch transistors to provide ~1 Ω switches to VDDH. Pads 37 and 41 have a selectable low side power switch transistors to provide ~1Ω switches to VSS.
The Cortex-M4F inside Artemis contains multiple layers of security including Secure Boot, OTA, Keystorage, as well as inline encryption/decryption of external flash (like an SD card).