Трудности с I2C в LPC2106. Не могу заставить работать subj.
Имею макет, на котором порты P0.2 (SCL) и P0.3(SDA) подтянуты к +3.3V резисторами 10КОм.
Содержимое I2STAT не покидает значения по умолчанию (после RESET), равное 0xF8; прерывание при установке бита STA в I2C Control Set Register (I2CONSET) не возникает.
Ниже приведён код, возникший после нескольких часов борьбы с железом. При выполнении строки 16 фрагмента, согласно документации, должно было бы возникнуть прерывание, а содержимое регистра статуса S1STA должно было бы измениться на 0x8. Однако, ничего этого не происходит.
int main(void){
volatile int stat; //temporary variable
//I2C Init
PINSEL0 |= (SCL_SEL | SDA_SEL); //select I2C Functions
I2CONCLR = 0xFF;
I2CONSET = I2EN; //enable I2C
//VIC Init
VICVectAddr11 = (unsigned int)I2C_ISR; //Set the address of ISR for slot 11
VICVectCntl11 = (IRQ_slot_enabled_bit | VIC_ch_num_I2C); //Use slot 11 for I2C
VICIntSelect &= ~VIC_ch_mask_I2C; //Set up as IRQ (not FIQ)
VICIntEnable |= VIC_ch_mask_I2C; //Enable I2C interrupt
__ARMLIB_enableIRQ(); //Global Enable Interrupts
//Send Data
stat = I2STAT; //test; read I2STAT == 0xF8
stat = I2CONSET; //test; read I2CONSET == 0
I2CONSET = (STA | I2EN); //transmit START condition
stat = I2STAT; //test; read I2STAT == 0xF8
stat = I2CONSET; //test; read I2CONSET == 0
for(;;);
}
Зарание спасибо.
-
- Ответ: Усе заи..ок, тока посмотри врегистре повер контрол у тя модуль И2С включен? - iit(20.07.2004 12:00)
- Ответ: libine(12 знак., 21.07.2004 15:20)
- Ответ: Усе заи..ок, тока посмотри врегистре повер контрол у тя модуль И2С включен? - iit(20.07.2004 12:00)