I plan to interface the Arduino to a 3.3volt part using an open drain (open collector/HiZ) bus with pull-up resistors. The pins are held high by pull-ups, the Arduino talks to the chip by changing the analog pins between input (Hi-Z) and output (ground). Speed is not an issue.
Can I rely on the analog pins being always inputs (Hi-Z) until I configure them otherwise? Even during bootloading? I see in the AVR datasheets that (like most uCs) the pins start Hi-Z, but what about the Arduino bootloader etc?
The 3v3 part won't tolerate spikes of 5volt output. I can use a level translator if 5volt spikes are a problem, but I'd prefer to use simple pull-ups and an open drain bus.