I'm a little puzzled and stuck here, maybe someone will throw an idea.
I have a circuit with a mega8L, cs8416 (SPDIF receiver) and AD1955 (DAC). The mega is SPI master, others are slaves. Before I soldered down AD1955, I was able to communicate with CS8416 flawlessly. After I soldered the DAC, I can't..
The problem, it seems, hides somewhere inside of CS8416, which has both I2C and SPI interfaces hogging same lines. The SPI mode is selected by hi-to-low transition on SS line after RESET. The trouble I'm having is that now the SS line (I'm using PORTB pin 0 for CS8416 SS) would not really stay low. It hangs somewhere at 0.5V, which is in my understanding slightly more than allowed for a good 0.
I tried to cut the SS track and it seems that the CS8416 is trying to pull its SS high no matter what. When its RESET is low, it goes low though. Apparently this is how 0.5V is formed when the track is not cut.
It seems that the DAC is not really interfering here: the RESET line is solid, the MOSI is solid.. CS8416 behaves like it has entered I2C mode. This is not really an AVR question because the atmega seems to be working properly and giving straight levels on RESET and SS lines.. It's a general experience question, what could have happened here? Probably it's also worth noting that mega8 and CS8416 are 3.3V and DAC is 5V, but DAC has no SPI MISO connection, it only receives things.
P.S. This time I'm pretty positive that I hadn't shorted any +80V to any input pins like I usually love to do :)
P.P.S. It is also worth noting, and is most puzzling, that once I managed to make the CS8416 work again by some poking around with scope and voltmeter probes. Of course after reset it went insane again.