xref: /btstack/port/apollo2-em9304/README.md (revision 8213ff16998064b1c4d9c1f6228a22b6195de932)
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