You are not sending nearly enough data over:
"The serial input word consists of
two address bits and two control bits followed by 12
data bits (MSB first), as shown in Figure 4."
Each SPI.transfer sends out 1 byte - so you will need 6 4 bytes.
16 bits are 2 bytes, and I'm sending 2 8-bit values.
The first 4 bits are set to 0011 using "dac1 += 3 << 12;"
The other 12 bits are set to one with "dac1 = 4095"
"dac1 >> 8" should send the most significant byte, and "dac & 255" the least significant byte.
"Sends and receives a byte from the SPI bus.
Example:
n = Spi.transfer(0x2A); // sends the byte 0x2A"
You need 4 spi.transfer calls to send 4 bytes of data.
You must send the data bytes out also even if they are don't cares - the data sheet says 4 bytes all the time.
I read the datasheet again, but I don't see where it says to send out 4 bytes.
I only find these references to 16-bit:
"The serial input word consists of two address bits and two control bits followed by 12 data bits (MSB first)"
(2+2+12=16 bits = 2 bytes)
"The MAX5500/MAX5501 require 16 bits of serial data."
"Data is sent MSB first and can be sent in two 8-bit packets or one 16-bit word"