programming an atmega328 with ISP when connected to SPI

Hi, I finally managed to program an atmega328p with an other arduino as isp. The target atmega328p is on a custom pcb, where it will be used to control a CC1101 tranceiver from TI.
Everything work well to program the atmega when it’s alone on the board, as soon as I add the CC1101 to the board I can’t program the atmega anymore. I get either yikes error, or bad signature error.

I wonder if the fact that the CC1101 is connected to the atmega through SPI could be a problem.
Because for ISP I use arduino pins 11 12 13 and reset. But 11,12 and 13 are also connected to the CC1101 for the SPI.
When I try to program the atmega via isp, the CC1101 I make sure that the CC1101 is not powered up too.
But could the shared sck mosi and miso pins be enough to crash the programming?
Like the CC1101 try to communicate too on thoose pins, and disturb the ISP programming of the atmega?

thanks for the help, you would be able to give me :slight_smile:
ps: fin attached the part of the circuit I am talking about.

victorjung:
I wonder if the fact that the CC1101 is connected to the atmega through SPI could be a problem.

Obviously.

victorjung:
Because for ISP I use arduino pins 11 12 13 and reset. But 11,12 and 13 are also connected to the CC1101 for the SPI.

A chip not powered up is a short circuit. You need to be able to disconnect other components from the SPI to program.

CC1101 needs to be powered up and D10 (SS) needs to be pulled high to put the CC1101 in Not Selected mode so the CC1101 is not dragging down the SPI pins.

CrossRoads: CC1101 needs to be powered up and D10 (SS) needs to be pulled high to put the CC1101 in Not Selected mode so the CC1101 is not dragging down the SPI pins.

Which is essentially what I was saying. You need a pull-up on the SS line - 47k would do. When the ATmega is in programming mode, it leaves all its (other) ports as inputs so the pull-up will stabilise SS and prevent the CC1101 from randomly activating during the programming procedure.

Ok thanks for your help, i just removed all the connections with cc1101 now, but it doesnt work :( is that possible that $$$$$i burned my atmega328 only like that?

I don't think it's burned, but make sure it isn't and try the blink example on a breadboard just in case.

Generally speaking, unless you saw smoke come out (somewhere), it is generally the case that you have miswired something and it will work when you correct the error.

And of course, if smoke does come out, it is pretty certain that you miswired something. :astonished:

Haha, yeah no smoke, But as it is on a custom pcb, there is plenty of possibilities why it doesn't work, from parasite, to miswire... i am investigating.