Столкнулся с проблемой работы SPI на LPC2129 по прерыванию - оно не срабатывает

, хотя прерывания от таймеров, UART'ов работают как часы.
инициализация прерывания:
....
VICIntSelect &= ~(1<<VIC_SPI1);
VICVectAddr2 = (unsigned int)&SPI1Interrupt;
VICVectCntl2 = 0x20 | VIC_SPI1;
VICIntEnable = (1<<VIC_SPI1);
....
инициализация SPI1
void SPI1Init(void)
{
S1SPCCR = 0x08;
S1SPCR = 0xE0;
}
начало передачи данных
S1SPDR = *Pointer;
при пошаговой отладке в IAR'е видно что флаги SPIF, SPINT после передачи байта = 1
но прерывание не срабатывает.
при "ручной" передаче все работает (все 4 порта инициализированны как SPI)
while(1)
{
S1SPDR = *Pointer;
while(!S1SPSR_bit.SPIF);
}
в чем я не прав?!

где собака зарылась?????