I have simplified the circuit, to a standalone atmega328p, 10k pullup resistor on reset pin, 8mhz external clock. Now if I power up the BLE module sharing the same vcc as the atmega328p (with all SPI wires unconnected between BLE module and atmega328p), the AVR resets. I have tried a range of bypass capacitors across vcc and gnd on the AVR.
It seems to be the initial power surge of the BLE module which causes the atmega to reset.
I have tried disabling BOD on the microcontroller but did not solve the issue. I have also measured the voltage of the reset pin with a scope and it stays pulled high during the reset.
What is the power source? You may be drawing too much current, which causes the AVR to reset.
Re: "A range of bypass capacitors":
You should have a 100nF (0.1uF) cap across the power pins as close as possible. At all times. Don't try "a range". The purpose of the small value is to shunt high frequency noise to ground.
To possibly deal with surge current you could try a large-ish (100uF - 470uF) cap at the power supply.
The two capacitors serve different purposes. But you really need a power supply that can handle what you're expecting of it.