1e6c96737SMatthias Ringwald# BTstack port for Ambiq Apollo2 with EM9304 2e6c96737SMatthias Ringwald 3*8213ff16SMatthias RingwaldThis port uses the Ambiq Apollo2 EVB and the Ambiq EM9304 (AM BLE) shield. 4*8213ff16SMatthias RingwaldHAL and BSP from Ambiq Suite 1.2.11 were used together with the regular ARM GCC toolchain. 5*8213ff16SMatthias RingwaldFirmware upload is possible via the internal J-Link interface or the 10-pin Mini ARM-JTAG Interface. 6e6c96737SMatthias Ringwald 7e6c96737SMatthias Ringwald## Hardware 8e6c96737SMatthias Ringwald 9e6c96737SMatthias RingwaldAmbiq Apollo2 EVB + AM_BLE Shield 10e6c96737SMatthias Ringwald- http://ambiqmicro.com/apollo-ultra-low-power-mcus/apollo2-mcu/ 11e6c96737SMatthias Ringwald 12e6c96737SMatthias Ringwald## Software 13e6c96737SMatthias Ringwald 14e6c96737SMatthias RingwaldAmbiqSuite: 15e6c96737SMatthias Ringwald- http://ambiqmicro.com/apollo-ultra-low-power-mcus/apollo2-mcu/ 16e6c96737SMatthias Ringwald 17e6c96737SMatthias RingwaldPlease clone BTstack as AmbiqSuite/third-party/bstack folder into the AmbiqSuite. 18e6c96737SMatthias Ringwald 19e6c96737SMatthias Ringwald## Create Example Projects 20e6c96737SMatthias Ringwald 21e6c96737SMatthias RingwaldTo create example GCC projects, go to the Apollo2-EM9304 folder 22e6c96737SMatthias Ringwald 23e6c96737SMatthias Ringwald $ cd port/apollo2-em9304 24e6c96737SMatthias Ringwald 25e6c96737SMatthias Ringwaldand run make 26e6c96737SMatthias Ringwald 27e6c96737SMatthias Ringwald $ ./create_examples.py 28e6c96737SMatthias Ringwald 29e6c96737SMatthias RingwaldAll examples are placed in the boards/apollo2_evb_am_ble/examples folder with btstack_ prefix. 30e6c96737SMatthias Ringwald 31e6c96737SMatthias Ringwald 32e6c96737SMatthias Ringwald## Compile & Run Example Project 33e6c96737SMatthias Ringwald 34e6c96737SMatthias RingwaldGo to to the gcc folder of one of the example folders and run make 35e6c96737SMatthias Ringwald 36e6c96737SMatthias Ringwald $ run make 37e6c96737SMatthias Ringwald 38e6c96737SMatthias RingwaldTo upload, please follow the instructions in the Apollo Getting Started documents. 39e6c96737SMatthias Ringwald 40e6c96737SMatthias Ringwald## Debug output 41e6c96737SMatthias Ringwald 42e6c96737SMatthias Ringwaldprintf is routed over the USB connector of the EVB at 115200. 43e6c96737SMatthias Ringwald 44e6c96737SMatthias RingwaldIn port/apollo2-em9304/btstack_config.h additional debug information can be enabled by uncommenting ENABLE_LOG_INFO. 45e6c96737SMatthias Ringwald 46e6c96737SMatthias RingwaldAlso, the full packet log can be enabled in src/btstack_port.c by uncommenting the hci_dump_open(..) line. The console output can then be converted into .pklg files for OS X PacketLogger or WireShark by running tool/create_packet_log.py 47*8213ff16SMatthias Ringwald 48*8213ff16SMatthias Ringwald# TODO 49*8213ff16SMatthias Ringwald- BTstack's TLV persisten storage via Flash memory is not implemented yet. 50*8213ff16SMatthias Ringwald- SPI Fullduplex: Newer Apollo 2 revisions supports SPI Full Duplex. The Ambiq Suite 1.2.11 does not cover Full Duplex with IRQ callback. It could be emulated by setting the Full Duplex mode and doing a regular write operation. When the write is complete, the received data can be read from the IOM FIFO. 51*8213ff16SMatthias Ringwald- During MCU sleep without an ongoing SPI operation, the SPI could be fully disabled, which would reduce enrgey consumption. 52