Read this:
Take a clooser look at first picture and look to the SS line.It stays low during 3 bytes transfer like you want.
The reason for that is in the code Nick provide above:
// Written by Nick Gammon
// January 2011
#include <SPI.h>
#include "pins_arduino.h"
void setup (void)
{
}
void loop (void)
{
digitalWrite(SS, HIGH); // ensure SS stays high
// Put SCK, MOSI, SS pins into output mode
// also put SCK, MOSI into LOW state, and SS into HIGH state.
// Then put SPI hardware into Master mode and turn SPI on
SPI.begin ();
delay (5000); // 5 seconds delay to start logic analyser.
char c;
// enable Slave Select
digitalWrite(SS, LOW); // SS is pin 10
// send test string
for (const char * p = "Fab" ; c = *p; p++)
SPI.transfer (c);
// disable Slave Select
digitalWrite(SS, HIGH);
// turn SPI hardware off
SPI.end ();
while (1); //loop
}
Your answer and solution is just puting down the SS line using digitalWrite(SS,LOW),then transfer all 3 bytes using SPI.transfer() and then pull the SS line up using the digitalWrite(SS,HIGH).
This will insure your SS line will be low during the 3 bytes transmission to the DAC.
Post results