Перейти к содержанию
    

djeker

Участник
  • Постов

    15
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о djeker

  • Звание
    Участник
    Участник
  1. 23k256

    Кто хорошо знаком с данным чипом, помогите пожалуйста. ostroukhovio вы ввели два байта адреса для считывания, и не продолжили вводить третий байт (пустой), во время введения которого из озу исходит байт данных. Адрес для теста лучше писать первый байт 0, второй (младший) - какой то до 10.Так проще.
  2. 23k256

    Ну чтож, все оказалось просто. Принцип следующий : CS = 0 0х1 opcode (byte,page,sequential) CS =1 --- CS = 0 0х2 ; запись adr adr data CS = 1 ---==== CS = 0 0х3 ; чтение adr adr 8 impulses CLK ; на MISO появл data CS = 1
  3. Действительно, неточность написал, сорри за порожняк. Итак, после того как погонял микру через самопальную прогу имитации импульсов через LPT порт микра заработала.Только через резисторный делитель, чтобы 3В было на микре. Работает все как и в протеусе с той лишь разницей что вначале надо разблокировать секторы последовательностью : CS = 0 пишем 0х6 CS = 1 --- CS = 0 пишем 0х1 ;запись в status регистр пишем 0х0 ; разблокирование CS = 1 --- такой же комбинацией пишется любой opcod (|_0х6 _| |_0х1 opcod(например писать массивом или др команда) | --- CS = 0 пишем 0х6 CS = 1 --- CS = 0 пишем 0х2 ; запрос на запись ну и далее по тексту ... Лично у меня флэшь работает как от нее и требуется.Без проги на одном даташите фиг бы разобрался даже если бы переведенный был бы.
  4. Итак, позанимался с Flash AT25FD041A.Есть некоторое несовпадение с протеусом, хотя может не доглядел. Для записи байта во флэш надо : CS на 1; Пишем 6; далее CS на 0; и дальше по накатанной,опкод 2, адрес,байт данных. CS на 1; только адрес трехбайтный.
  5. Возможно немного не по теме,но это тоже связано с взаимодействием по SPI с флешью.Принцип работы микрухи я допилил по такой схеме - в Протеусе нашел в библиотеке микросхем подобную интересующей,у меня это 25LC256(емкость и серия может быть другой,важен сам принцип SPI),вставил в форму эту микру,вставил паттерн генератор,вставил SPI анализатор,попарился пока вкурил как работает ггенератор и анализатор(1сутка) и вместе с даташитом начал тестировать микру. В результате - на Протеус форме микра после многих вариантов тестов таки начала давать то что нужно. На всякий случай опишу принцип,вдруг кому нибудь понадобится.На сайте инфы по ней не обнаружил. Выводы микры HOLD,WP на плюс. Далее - CS на 0. даем 8 тактовых имп-са на SKC(CLK),параллельно на выводе MOSI выдаем цифру 6 (разрешение записи в микру) MSB - старшим битом вперед. Далее CS на 1. Пауза(микро,мили) Далее - CS на 0. Пишем 2 (запрос на запись) Пишем 0 (старшая часть адреса) Пишем х(5) (любая цифра младш адр,например 5) Пишем Data (например 10) Далее - CS на 1. Пауза Далее - CS на 0. Пишем 3 (запрос на чтение из микры) Пишем 0 (ст часть адр) Пишем 5 (мл ч адр) Пишем 0 (во время выхода этих 8 - ми тактов с ноги MISO микры вылезут данные,в нашем случае - 10) Далее - CS на 1. Вроде простой алгоритм,но чтобы до него созреть пришлось "километры" болот и топей пробуксовать в Протеусе. Удачи. P.S. Это пример для EEPROM SPI, но этим способом можно быстро выяснить принцип работы и Flash SPI Memory. Также в Протеусе в библиотеке микросхем есть компонент виртуальной SPI CD карты - MMC.
  6. 23k256

    Да понятно, чего тут может быть непонятного.Куплю подходящий контроллер и дожму эту озу.
  7. 23k256

    Осцилограф есть эл-лучевой ещё советский или около того, как им смотреть протокол - без понятия, уровни меняются сигналы какието проходят,но развертки линий во времени просмотреть нереально.Програмно собирался сделать, если через модуль ничего не будет получаться.Как получить развертку на компе - не нашел подходящих вариантов.Есть анализатор для 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, но плата накрылась.В идеале было бы хорошо смотреть развертку линий на компе и иметь программу симуляторов протоколов с возможностью взаимодействовать с контроллерами, но эта фонтастик.Вот такие пироги.
  8. 23k256

    Ааа.Эта полный трэшшшщь.Уже и сниффер сваял для проверки линий, и статей перечитал и осталось шаг за шагом вычистить ошибки ... и плата дискавери здохла.Ну надо ж такое. Всем кто реально помогал спасибо человеческое.Буду думать что дальше делать.
  9. 23k256

    Что такое чип селект я знаю, как он относится к озу я знаю. Если можете, подскажите что делать с выводом HOLD для нормальной работы, и как правильно настроить регистр конфигурации в озу.
  10. 23k256

    Эх, любите вы умники к мелочам придираться.Да, правильно написать В СооСох-е. А озу как уперлась так и продолжает сопротивляться. С передачей данных из модуля spi проблем нет, данные уходят.Вот только не приходят из озу.Ножки входа и выходов настроены. Надо чтото попроще погонять, датчики наверное.Там опыта наберусь, осилю и озу.
  11. 23k256

    Да кокос он и среди орехов CooCox.Других кокосов в stm32 нету. Лучше помогите понять алгоритм действий.
  12. 23k256

    не получается,чтото упускаю.Пишу на кокосе,там таких функций нет.Мне нужно понять порядок действий. пишу так, упрощенно : 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;
  13. 23k256

    хорошо,попробую.Непонятно, если я запишу 10 байт, то как их считать?В даташите написано: команда 3;2 байта адр;и дальше читаем данные.Как читаются данные - непонятен принцип действия.Вроде мастер должен чтото запихивать чтобы чтото получить от РАМки?
  14. 23k256

    не могу понять как считывать и записывать данные в эту озу. даташит читаю - и ни х. не понимаю. Если не тяжело растолкуйте. пытаюсь так: send data 2; while(усл); send data adr; //0 while (усл); send data data; while (flag); вообще не могу догнать правильно или нет,блуждаю как ежик в тумане.
  15. Тоже парился долго с дебагером в CooCox долго.Перемесил файлы в папке CooCox\COIDE просто в фарш.Не помогало,вылезала красная “not connected“. Проблему решил следующим образом : залез в в папку с\Program Files...\ST-LINK Utillity и скопировал библиотеку STlinkUSBDriver.dll ,v.4.3.3.0, 84 kB. и закинул ее в c:CooCox\COIDE\bin.После этого отладка заработала.Порт 2009. Если под утилитой контроллер шьется то значит ее DLL - ка должна работать внутри COIDE .
×
×
  • Создать...