Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

запись в память AT45DB041B через DLP2232M (FTDI)

Отправлено kapitan_pushka (195.209.240.30) 30 июня 2010, г. 13:56


Здравствуйте!
Нужен совет специалиста. Даташиты изучали, но, видимо, чего-то не уловили. Вот код, что в нем не так? (хочется записать в память и считать потом записанное)

запись:

WriteStartCondition.bClockPinState = false;
WriteStartCondition.bDataOutPinState = false;
WriteStartCondition.bChipSelectPinState = false;
WriteStartCondition.dwChipSelectPin = ADBUS3ChipSelect;

WaitDataWriteComplete.bWaitDataWriteComplete = true; WaitDataWriteComplete.dwWaitDataWritePin = ADBUS2DataIn;
WaitDataWriteComplete.dwDataWriteTimeoutmSecs = 1000;

HighPinsWriteActiveStates.bPin1ActiveState = false;
HighPinsWriteActiveStates.bPin1State = false;
HighPinsWriteActiveStates.bPin2ActiveState = false;
HighPinsWriteActiveStates.bPin2State = false;
HighPinsWriteActiveStates.bPin3ActiveState = false;
HighPinsWriteActiveStates.bPin3State = false;
HighPinsWriteActiveStates.bPin4ActiveState = false;
HighPinsWriteActiveStates.bPin4State = false;

WriteControlBuffer[0] = 0x82; //запись в основную память через буфер
WriteControlBuffer[1] = 0; // адрес
WriteControlBuffer[2] = 0;
WriteControlBuffer[3] = 0;

WriteDataBuffer[0] = '5';
WriteDataBuffer[1] = '5';
WriteDataBuffer[2] = '5';
WriteDataBuffer[3] = '5';

Status = SPI_Write(ftHandle, &WriteStartCondition,
true, false, 32, &WriteControlBuffer,
4, true, 32, &WriteDataBuffer,
4, &WaitDataWriteComplete, &HighPinsWriteActiveStates);

чтение:

ReadStartCondition.bClockPinState = false;
ReadStartCondition.bDataOutPinState = false;
ReadStartCondition.bChipSelectPinState = false;
ReadStartCondition.dwChipSelectPin = ADBUS3ChipSelect;
dwReadDataWordAddress = 132;

WriteControlBuffer[0] = 0x52; // чтение из основной памяти
WriteControlBuffer[1] = 0;
WriteControlBuffer[2] = 0;
WriteControlBuffer[3] = 0;
WriteControlBuffer[4] = 0; // говорят, что нужно изпользовать некий дополнительный байт

Status = SPI_Read(ftHandle, &ReadStartCondition, true, false, 40, &WriteControlBuffer,
5, true, false, 32, &ReadDataBuffer, &dwNumDataBytesReturned, &HighPinsWriteActiveStates);

запись не проходит по тайм-ауту. а чтение всегда выдает один результат независимо ни от чего (даже от опкода) - типа "яяяяяяяя".



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
отымите от 2 единицу:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru