реклама на сайте
подробности

 
 
> Нужно проинициализировать I2C slave mode interrupt, в LPC29xx
toweroff
сообщение Jul 18 2011, 21:52
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Ткните носом, пожалуйста, если есть рабочий код
Пример взят из кодбандла филипса, настроил слейв адрес как у 24С32 - не дает ACK после отправки старта, адреса и R/W хостом
Адрес, который пишется в I2C0ADR есть 0xA2, то есть семейство 0x0A, адрес 001 и General Poll отключен
Прерывание не хочет срабатывать. Все, вроде, включено... такое ощущение, что либо адрес не совпадает, либо прерывание не включено...
Но либы один-в-один, что в кейле, что в иаре sm.gif

Вызывается с (IntNum==30), (Polarity==ACTIVE_HIGH), (Priority==0x0F)
Код
void EnableIntReq_FIQ( U32 IntNum, U32 Polarity, U32 Priority )
{
  U32 regVal;
  U32 *vect_addr;

  vect_addr = (U32 *)(VIC_BASE_ADDR + VECT_INT_REQ_INDEX + IntNum*4);
  regVal = *vect_addr;
  /* Enable WR, TARGET, and PRIORITY bits, enable INT request and set priority */
  /* if Priority > 16, it'll be wrapped to (priority % 0x0F). */
  regVal |= ((1<<26)|(1<<27)|(1<<28)|(1<<16)|(Priority&0xF));
  if ( Polarity == ACTIVE_HIGH )
  {
    regVal |= (1<<25);
    regVal &= ~(1<<17);
  }
  else
  {
    regVal |= (1<<25)|(1<<17);
  }
  /* target is FIQ */    
  regVal &= ~(1<<8);
  *vect_addr = regVal;
  return;
}


что там за грабли могут быть? PLL=240MHz
Код
    IVNSS_CLK_CONF     = CLK_SEL_PLL | AUTOBLK | DIV2;    /* BASE_IVNSS_CLK */


обработчик устанавливается на IRQ, код точно есть в проекте, все включено... wacko.gif

И кейловцы, паразиты, не дают либу TARMP9.DLL для просмотра периферии в ARM9 ядре angry.gif
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 19:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01369 секунд с 7
ELECTRONIX ©2004-2016