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

 
 
> Opencore I2C + NIOS II, Не читает данные из регистра
Станислав
сообщение Jun 21 2011, 09:53
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 21-06-11
Пользователь №: 65 804



Добрый день.
Возникла следующая проблема при использовании Opencore I2C: при чтении данных из регистра постоянно выводит одно и тоже значение (например 0хff или 0xa1). ACK на шине присутствует. Ниже представлен пример кода, быть может, делаю что не так? Если кто сталкивался с такой проблемой буду благодарен за помощь. Версия Quartus и NIOS - 10.0.

Код
#include <stdio.h>
#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "priv/alt_busy_sleep.h"
#include "opencores_i2c.h"

void main()
{
    int data;
    int i;
    alt_u32 dd;
    printf("Start");

    I2C_init(OPENCORES_I2C_0_BASE,ALT_CPU_CPU_FREQ,400000);

    //alt_busy_sleep(5000000);
    printf("Write\n");
    data=I2C_start(OPENCORES_I2C_0_BASE,0xD0,0);
    //printf("Start ACK = x%x\n",data);
    data = I2C_write(OPENCORES_I2C_0_BASE,0x26,0);  
    //printf("write ACK = x%x\n",data);
    data = I2C_write(OPENCORES_I2C_0_BASE,0x1f,1);
    //printf("write ACK = x%x\n",data);
    
    printf("Read\n");
    data=I2C_start(OPENCORES_I2C_0_BASE,0xD0,0);
    //printf("Start ACK = x%x\n",data);
    data = I2C_write(OPENCORES_I2C_0_BASE,0x26,0);  
    //printf("write ACK = x%x\n",data);
    I2C_start(OPENCORES_I2C_0_BASE,0xD0,1);
    data =  I2C_read(OPENCORES_I2C_0_BASE,1);
    printf("%x \n",data);
    }
}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Станислав   Opencore I2C + NIOS II   Jun 21 2011, 09:53


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 09:55
Рейтинг@Mail.ru


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