djeker 0 6 апреля, 2015 Опубликовано 6 апреля, 2015 · Жалоба не могу понять как считывать и записывать данные в эту озу. даташит читаю - и ни х. не понимаю. Если не тяжело растолкуйте. пытаюсь так: send data 2; while(усл); send data adr; //0 while (усл); send data data; while (flag); вообще не могу догнать правильно или нет,блуждаю как ежик в тумане. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 6 апреля, 2015 Опубликовано 6 апреля, 2015 · Жалоба А что непонятного? Настраивается регистр с режимом работы, потом команда, за ней - данные. Как данные будут следовать - настроили в регистре. Все. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
djeker 0 7 апреля, 2015 Опубликовано 7 апреля, 2015 · Жалоба хорошо,попробую.Непонятно, если я запишу 10 байт, то как их считать?В даташите написано: команда 3;2 байта адр;и дальше читаем данные.Как читаются данные - непонятен принцип действия.Вроде мастер должен чтото запихивать чтобы чтото получить от РАМки? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 7 апреля, 2015 Опубликовано 7 апреля, 2015 · Жалоба хорошо,попробую.Непонятно, если я запишу 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(); } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
djeker 0 7 апреля, 2015 Опубликовано 7 апреля, 2015 · Жалоба не получается,чтото упускаю.Пишу на кокосе,там таких функций нет.Мне нужно понять порядок действий. пишу так, упрощенно : 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; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 5 7 апреля, 2015 Опубликовано 7 апреля, 2015 · Жалоба не получается,чтото упускаю.Пишу на кокосе,там таких функций нет.Мне нужно понять порядок действий. Неужели? А что такое "кокос? Орех такой? Если имеется в виду движок Cocos, так он, вроде, базируется на С++, нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
djeker 0 7 апреля, 2015 Опубликовано 7 апреля, 2015 · Жалоба Неужели? А что такое "кокос? Орех такой? Если имеется в виду движок Cocos, так он, вроде, базируется на С++, нет? Да кокос он и среди орехов CooCox.Других кокосов в stm32 нету. Лучше помогите понять алгоритм действий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 10 апреля, 2015 Опубликовано 10 апреля, 2015 · Жалоба Не надо "писать на кокосе". Надо по-человечески, отделяя мух от котлет. Предлагаю организовать интерфейс с шиной SPI: - активация слейва - деактивация слейва - обмен одним байтом (чтение/запись) Для удобства можно организовать дополнительно: - запись байта (вызов функции обмена, считанный байт "забыть") - чтение байта (вызов функции обмена, записать ноль). Собственно, этот программный интерфейс "сам" рождается после изучения любой статьи, найденной в гугле по запросу "шина spi описание". А только потом из этого сооружать обмен с конкретной микросхемой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
djeker 0 12 апреля, 2015 Опубликовано 12 апреля, 2015 · Жалоба Не надо "писать на кокосе". Надо по-человечески, отделяя мух от котлет. Эх, любите вы умники к мелочам придираться.Да, правильно написать В СооСох-е. А озу как уперлась так и продолжает сопротивляться. С передачей данных из модуля spi проблем нет, данные уходят.Вот только не приходят из озу.Ножки входа и выходов настроены. Надо чтото попроще погонять, датчики наверное.Там опыта наберусь, осилю и озу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 235 12 апреля, 2015 Опубликовано 12 апреля, 2015 · Жалоба [Надо чтото попроще погонять, датчики наверное.Там опыта наберусь, осилю и озу. Что такое "сигнал CS" знаете? :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
djeker 0 13 апреля, 2015 Опубликовано 13 апреля, 2015 · Жалоба Что такое "сигнал CS" знаете? :rolleyes: Что такое чип селект я знаю, как он относится к озу я знаю. Если можете, подскажите что делать с выводом HOLD для нормальной работы, и как правильно настроить регистр конфигурации в озу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 14 апреля, 2015 Опубликовано 14 апреля, 2015 (изменено) · Жалоба Что такое чип селект я знаю, как он относится к озу я знаю. Если можете, подскажите что делать с выводом HOLD для нормальной работы, и как правильно настроить регистр конфигурации в озу. HOLD и WP посадите на VCC. регистр конфигурации трогать не надо. Изменено 14 апреля, 2015 пользователем Jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
djeker 0 14 апреля, 2015 Опубликовано 14 апреля, 2015 · Жалоба Ааа.Эта полный трэшшшщь.Уже и сниффер сваял для проверки линий, и статей перечитал и осталось шаг за шагом вычистить ошибки ... и плата дискавери здохла.Ну надо ж такое. Всем кто реально помогал спасибо человеческое.Буду думать что дальше делать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 235 14 апреля, 2015 Опубликовано 14 апреля, 2015 · Жалоба Что такое чип селект я знаю, как он относится к озу я знаю. Сами сигналы смотрели (осциллограф, лог.анализатор)? Может у вас там по выходу ничего не шевелится. Если ни того ни другого нет, можно и светодиодами: делаете программный SPI и по шагам.... (так как SPI во всех таких микросхемах полностью статический). Сверяете с осциллограммами в даташите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
djeker 0 14 апреля, 2015 Опубликовано 14 апреля, 2015 · Жалоба Осцилограф есть эл-лучевой ещё советский или около того, как им смотреть протокол - без понятия, уровни меняются сигналы какието проходят,но развертки линий во времени просмотреть нереально.Програмно собирался сделать, если через модуль ничего не будет получаться.Как получить развертку на компе - не нашел подходящих вариантов.Есть анализатор для LPT порта от Валерия Ковтуна, но у меня сигналы на развертке рисовались искаженными, а то и вовсе не фиксировались.Вроде он подходит для медленных процессов. Насчет CS, если вариант hard, то со шлейфом 20 см spi зависает намертво в первом же цикле ожидания опустошения флага.В начале отправки данных, перед строкой с send data включаю синяка(PC8), и по окончанию while (flag) выключаю его.Если провода на CS выводе нет, то синяк выдает едва заметный блик, правда DIV_128, если провод подцепить синяк светит ярко. Вместо CS(оставил висеть в воздухе) задействовал соседний PC4 с соотв уровнями 0 и 1 когда надо.Со шлейфом так spi не виснет и данные выдаются.Со сниффером успел проверить линию CLK,счетчик четко фиксирует приход 8 импульов, или 16 если перем data объявил 16 битной.Также через rlf на др входе и прер по нужным фронтам от CLK собрался проверить что передается по линиям mosi и miso, но плата накрылась.В идеале было бы хорошо смотреть развертку линий на компе и иметь программу симуляторов протоколов с возможностью взаимодействовать с контроллерами, но эта фонтастик.Вот такие пироги. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться