|
23k256, как использовать эту ram |
|
|
|
Apr 6 2015, 07:20
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 12-03-15
Пользователь №: 85 618

|
не могу понять как считывать и записывать данные в эту озу. даташит читаю - и ни х. не понимаю. Если не тяжело растолкуйте. пытаюсь так: send data 2; while(усл); send data adr; //0 while (усл); send data data; while (flag); вообще не могу догнать правильно или нет,блуждаю как ежик в тумане.
|
|
|
|
|
 |
Ответов
|
Apr 7 2015, 04:52
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 12-03-15
Пользователь №: 85 618

|
хорошо,попробую.Непонятно, если я запишу 10 байт, то как их считать?В даташите написано: команда 3;2 байта адр;и дальше читаем данные.Как читаются данные - непонятен принцип действия.Вроде мастер должен чтото запихивать чтобы чтото получить от РАМки?
|
|
|
|
|
Apr 7 2015, 06:07
|
Профессионал
    
Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075

|
Цитата(jukebox @ Apr 7 2015, 09:52)  хорошо,попробую.Непонятно, если я запишу 10 байт, то как их считать?В даташите написано: команда 3;2 байта адр;и дальше читаем данные.Как читаются данные - непонятен принцип действия.Вроде мастер должен чтото запихивать чтобы чтото получить от РАМки? общий алгоритм такой Код void Write(uint32_t address, uint32_t lenght, uint8_t *buffer) { // Note!!!Every write operation demands a write enable!!! //SPI_CSlow(); //SPI_SendByte(SPIEEPROM_CMD_WREN); //SPI_CShigh();
// start write SPI_CSlow(); // send write command SPI_SendByte(SPIEEPROM_CMD_WRITE); // send address SPI_SendByte(address>>8); SPI_SendByte(address&0x00FF); while(lenght--) { // send data to be written SPI_SendByte(*buffer++); } // stop write SPI_CShigh(); }
void Read(uint32_t address, uint32_t lenght, uint8_t *buffer) { if(lenght>PAGE_SIZE) return 0; uint32_t data; // start read SPI_CSlow(); // send command SPI_SendByte(SPIEEPROM_CMD_READ); // send address SPI_SendByte(address>>8); SPI_SendByte(address&0x00FF); // read contents of memory address while(lenght--) { data = SPI_TransferByte(0x00); *buffer++ = data; } // stop read SPI_CShigh(); }
|
|
|
|
|
Apr 7 2015, 08:51
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 12-03-15
Пользователь №: 85 618

|
не получается,чтото упускаю.Пишу на кокосе,там таких функций нет.Мне нужно понять порядок действий. пишу так, упрощенно : spi1->DR=1; //write status reg while (flag); ...=0x41; // hold off,max size data //-----
...=2; // write wh(); ...=0; //adr wh(); ...=0; //adr wh(); ...= data; wh(); //---- ...=3; //read wh(); ...=0; // adr wh(); ...=0; // adr wh(); data = spi1->DR;
|
|
|
|
Сообщений в этой теме
jukebox 23k256 Apr 6 2015, 07:20     jukebox Цитата(Herz @ Apr 7 2015, 09:25) Неужели?... Apr 7 2015, 09:52 esaulenka Не надо "писать на кокосе".
Надо по-чело... Apr 10 2015, 09:35 jukebox Цитата(esaulenka @ Apr 10 2015, 09:35) Не... Apr 12 2015, 06:35  jcxz Цитата(jukebox @ Apr 12 2015, 12:35) [Над... Apr 12 2015, 15:32   jukebox Цитата(jcxz @ Apr 12 2015, 15:32) Что так... Apr 13 2015, 05:57    Jenya7 Цитата(jukebox @ Apr 13 2015, 11:57) Что ... Apr 14 2015, 05:19     jukebox Ааа.Эта полный трэшшшщь.Уже и сниффер сваял для пр... Apr 14 2015, 08:39    jcxz Цитата(jukebox @ Apr 13 2015, 11:57) Что ... Apr 14 2015, 15:37     jukebox Осцилограф есть эл-лучевой ещё советский или около... Apr 14 2015, 18:59      jcxz Не знаю какие у вас там синяки, но я вроде ясно на... Apr 15 2015, 02:23       jukebox Цитата(jcxz @ Apr 15 2015, 02:23) Не знаю... Apr 15 2015, 20:04        jukebox Цитата(jukebox @ Apr 15 2015, 21:04) Да п... Jul 15 2015, 19:30 ostroukhovio Всем привет. Тоже начал знакомство с этой микросхе... Jan 19 2017, 12:52 k155la3 Цитата(ostroukhovio @ Jan 19 2017, 15:52)... Jan 19 2017, 16:43 jukebox Кто хорошо знаком с данным чипом, помогите пожалуй... May 22 2017, 10:14
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|