[an error occurred while processing this directive]
[TMS 5509]->I2C -> [Atmel 24c1024] non funzicliren ! "Извините что я к вам обращаюсь :)"
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено BrainJTAG 29 декабря 2004 г. 14:58

Пытаюсь читать/писать в/из флешки 24С1024
Вот конфигурация И2Ц:

I2C_Setup Init;
Uint16 sendbuf[3];

Init.addrmode = 0;
Init.ownaddr =0x0020;
Init.sysinclock = 372;
Init.rate = 100;
Init.bitbyte = 0;
Init.dlb = 0;
Init.free = 0;
sendbuf[0]=0x00; // MSB адреса флешки
sendbuf[1]=0x0f; // LSB адреса флешки
sendbuf[2]=0xCC; // При записи байт, который нужно записать
I2C_reset();
I2C_setup(&Init);

Это была инициализация, дальше я пытаюсь делать чтение или запись так:
Запись:
x=I2C_write(sendbuf,3,1,0xA0,2,30000); // Тоесть передаем адрес байта памяти во флешке и собственно что записать (итого 3 байта) 0хА0 - адрес флешки (слейв устройства)
х - код ошибки. после выполнения = 0. Тоесть все как бы нормально но при чтении флешки программатором нужного знаечиня не обнаружено :(
Чтение:
x=I2C_write(sendbuf,2,1,0xA0,2,30000);
y=I2C_read(&recbuf[0],1,1,0xA0,1,30000,0);
Сначала пишем адрес байта памяти (2 байта) потом читаем значение этого байта. (Таков протокол)
Так вот [САМОЕ ИНТЕРЕСНОЕ] если сделать еще одно чтение
y=I2C_read(&recbuf[1],1,1,0xA0,1,30000,0);
то получим те два байта что и передавали. Причем DLB==0.
Еще при зацикливании чтения (Sequential Read) на ноге SCL НЕ ВИДНО КЛОКОВ. Может я забыл что то включить в И2Ц модуле ???

П.С. Кто делал отзовись !!!


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru