Jump to content

    

zheka

Участник
  • Content Count

    2206
  • Joined

  • Last visited

Community Reputation

0 Обычный

About zheka

  • Rank
    Гуру

Recent Profile Visitors

6175 profile views
  1. А можно мне, как автору темы, пусть не обладающему модераторскими правами, но все же попросить двух последних ораторов не ругаться? Уважаю вас обоих, вы оба мне в разное время давали ценные советы. Это лишний раз говорит только о том, что проблема сложна и неоднозначна.
  2. У меня вот такой кабель Пока что я землю пустил по обычным проводам. Я правильно понял, что фольга - для основной своей функции, для экранирования, а голый земельный проводок - для контакта (фольгу ведь не заправишь в разъем) ? Не скажется ли негативно на нагрузочной способности то, что этот проводок тонковат? То есть будет тонкое место непосредственно возле разъема.
  3. У меня земля - 3 провода 28AWG. Это нормально? Еще вопрос - а замыкание TX (когда на нем 1) на землю опасно?
  4. Спрошу по-другому: Если проблема в землях, то видимо контроллер сгорал при подключении-отключении. Если я исключу подключение/отключение на горячую, стоит ли мне опасаться повторных выгораний 1. за счет того что кабель у меня длинный 2. за счет того, что сигнал TX подключен еще и к преобразователю USB-UART?
  5. Вот эта паутина из проводов Уточню - земли компьютера и платы объединены через jlink и usb->uart. Земли компьютера и принтера - опосредованно - через jlink и usb->uart и далее через метровый кабель. USB-кабеля от компьютера длинные - 1.5 м. Земля управляющей платы на принтере соединена с его рамой. Что скажете? Может и не в линиях TX,RX дело, а в землях? Обмен то проходил нормально до поры..
  6. Вы не поняли. Я к компу контроллер не подключаю. Я это делаю через такой вот свисток
  7. 5 вольт толерантность. Да, кстати, забыл сказать - преобразователь USB-UART в тот момент тоже сгорел) Какова тогда максимально-разумная длина кабеля?
  8. Случилась оказия, стоившая мне двух STM32... Вывел я наружу UART, подключил к китайскому преобразователю USB-UART, поигрался с терминалом - работает. Захотел пообщаться с чем-нибудь, что предрасположено к общению. Из такового был 3д принтер, у которого управляющая плата общается с сенсорным дисплеем как раз по UART. Подключил - отправил пару команд - отлично, общение идет. И вдруг принтер перестает реагировать на команды, до перезагрузки. ПОсле перезагрузки все нормально, но не надолго. Вскоре контроллер STM32 выгорает. Не увязав эти два факта, я отремонтировал плату, занялся другими делами, вернулся к теме общения через пару дней. На этот раз контроллер вновь сгорел вскоре после подключения к 3д принтеру. Что самое интересное - с принтером то все нормально - я вновь подключил к нему управляющий сенсорный дисплей по UART - все нормально..... Для начала пара вопросов - а не могло ли быть причиной этого одно из следующих условий: 1. Очень длинный кабель UART - около метра. Может звоны? Естественно, земля, соединяющая плату с принтером той же длины. 2. вывод TX контроллера я подключил не только к принтеру, но и, без развязок, к USB-UART преобразователю. И, соответственно, объединил земли принтера, платы, компьютера. Каков бы ни был ответ на этот вопрос - как вообще принято в "культурном обществе" - когда плата, на перспективу, может быть подключена куда угодно - нужно ли развязывать гальванически UART, или это паранойя?
  9. Или я чего-то не нашел у них на сайте, или времена поменялись..... доставки дешевле 100 долларов у них нет.... Обидно. Только у них нашел нужные компоненты.
  10. Хм.... выставил Dummy cycles=6 вместо 10 получил следующее - алгоритм пишет правильно (я заглядывал в map файл и в файлы с данными), алгоритм читает правильно, основной HAL код читает правильно, не пишет вообще... А вот отключение оптимизации помогло - брейкпоинты где не надо не срабатывают. Спасибо!
  11. По ходу тогда еще один вопрос задам. Что я делаю - пытаюсь пересесть с n25q128 на w25q128. Замучившись с глюками отладки, я решил пойти по более простому пути - переучить контроллер с одной флешки на другую с использованием простого, не HALовского кода. Такой код есть в моем рукописном алгоритме для прошивки флешки. Я отпаял с дискавери флешку n25q128 и припаял w25q128. Регистры у них по даташиту немного отличаются, но минимально необходимый набор одинаков #define QSPI_PAGESIZE 256 #define IO_READ_DDR_QUAD_CMD 0xED #define IO_READ_QUAD_CMD 0xEB #define WRITE_ENABLE_CMD 0x06 #define READ_STATUS_REGISTER_CMD 0x05 #define FAST_PROGRAM_CMD 0x32 #define SECTOR_ERASE_CMD 0xD8 #define SUBSECTOR_ERASE_CMD 0x20 Процесс стирания и программирования идет, но при верификации ошибки. Я обратил внимание, что код то правильный, но смещенный. При этом HALовский код в обычном режиме читает те же значения, что и IDE в режиме memoryMapped при проверке (на приведенном выше скрине). Совпадение результатов чтения разными кодами, в разных режимах говорит о том, что чтение правильное. Проблема с записью. Где может быть затык? Микросхемы то практически одинаковые w25q128jv.pdf n25q128a.pdf
  12. Так... или я отупел за эти 3 часа.... F=0; Строку внутри условия F !=0 видите? Брейкпоинт видите? Желтый треугольник на нем видите?
  13. Среда - Keil 5. Жылезка - STM32F746G-DISCOVERY Отладчик - китайская свистулька ST-LINK (никогда не подводил!) 3 часа отлаживал, не мог понять, почему QSPI_WriteEnable возвращает ошибку. Решил поставить вопрос ребром (F=0); И тихо офигел.... Это как такое может быть? Почему срабатывает условие ? P.S. return не происходит. Нижележащий код исполняется.
  14. Скажите, а режим DualFlash - он дает двукратное преимущество в скорости или же только в объеме? Я так понял, что должен быть прирост скорости при линейном чтении, а при случайном - скажем читаем мы байт по некому адресу - нам нужно 8 бит, а читается 16 из обеих микросхем, при этом 8 нам нужны, а еще 8 бесполезны. Для того, чтоб прочесть следующий байт, контроллеру придется обратиться еще раз по тому же ФИЗИЧЕСКОМУ адресу флеши, так ведь?