Jump to content

    

billidean

Свой
  • Content Count

    245
  • Joined

  • Last visited

Everything posted by billidean


  1. USB монитор

    Добрый день всем. Начал разбираться с USB на stm32f4. Необходимо проследить обмен компа с контроллером. Побродил по инету, скачивал несколько прог для контроля интерфейса, но ни одна толком не заработала, вернее, вообще ни одна из 6-7ми штук не показала мне трафик USB. Поделитесь, ПЛЗЗ, ссылочкой на такую прогу (под Win 7/8).
  2. USB монитор

    Поработал с BusHound. В-принципе, нормально, но эта прога выдает на экран информацию о транзакции только при условии прохождения этой самой транзакции в полной мере. В данный момент у меня проблемка в том, что устройство не реагирует на OUT-передачу, и при этом BusHound не показывает вообще, что в линию USB что-то ушло. В то же время при подключении рабочего устройства к USB прога BusHound нормально отображает эту транзакцию. Т.е. что-то не доработано в этой проге, или просто нельзя ТОЛЬКО программно анализировать незавершенные транзакции. Да.. мне бы аппаратный анализатор.. Может кто в курсе, какой-нибудь китайский девайс реально недорого приобрести, за пару КРуб?
  3. USB монитор

    Спасибо.
  4. ucos+nios+isr

    Кодvoid task2(void* pdata) { while (1) { alt_irq_register(BUTTONS_IRQ, (void*)BUTTONS_BASE, button_isr); printf("Hello from task2\n"); //OSTimeDlyHMSM(0, 0, 1, 0); } }Это вообще ... какая-то, в бесконечном цикле регить обработчик.... А вообще, более правильный механизм выглядит так: 1. регим обработчик прерывания 2. заводим семафор 3. заводим таск, которому нужно это прерывание 4. в обработчике прерывания взводим семафор 5. в таске, в начале тела ждем семафора, после чего делаем то, что надо, сбрасываем семафор ну, это примерная модель, а уже для каждого конкретного случая может немного изменяться.
  5. SPI в ChibiOS (stm32f4)

    Добрый день всем. Разбираю проект testhal/STM32F4xx/SPI. В целом все понятно. Настраиваем SPI-контроллер (структура, порт, ...). НО совсем непонятен один вопрос: 1. Инициализируем структуру Кодstatic const SPIConfig hs_spicfg = {   NULL,   GPIOB,   12,   0 }; Здесь видно, что для SPI-контроллера будет использован порт B, где вывод 12 будет использован как CS(ЧипСелект) 2. В одном из потоков будет использоваться SPI-контроллер 2, и он будет использовать вышеуказанную структуру SPIConfig: КодspiStart(&SPID2, &hs_spicfg); 3. В майне есть такие строки: Код  /*    * SPI2 I/O pins setup.    */   palSetPadMode(GPIOB, 13, PAL_MODE_ALTERNATE(5) |                            PAL_STM32_OSPEED_HIGHEST);       /* New SCK.     */   palSetPadMode(GPIOB, 14, PAL_MODE_ALTERNATE(5) |                            PAL_STM32_OSPEED_HIGHEST);       /* New MISO.    */   palSetPadMode(GPIOB, 15, PAL_MODE_ALTERNATE(5) |                            PAL_STM32_OSPEED_HIGHEST);       /* New MOSI.    */   palSetPadMode(GPIOB, 12, PAL_MODE_OUTPUT_PUSHPULL |                            PAL_STM32_OSPEED_HIGHEST);       /* New CS.      */   palSetPad(GPIOB, 12); И вот здесь я в ауте... Как SPI-контроллер 2 узнает, что пин 13 порта В должен использоваться именно как SCK??? И про все остальные пины также. А если мне нужно будет другие пины назначить на SCK или на MOSI? Например на пине 14 чтобы был SCK, а на 13 MISO. Просмотрел все файлы ОСи и как-то не нашел нигде этого момента, как SPI-контроллеру указать какой именно пин за какую функцию должен отвечать (SCK, MISO, MOSI). Только про CS описано, что он указывается в структуре SPIConfig. ПЛЗ. Помогите разобраться.
  6. SPI в ChibiOS (stm32f4)

    Всё, нашел.
  7. stm32f4 + дисплей от Motorola v150

    Да. Спасибо. Еще один вопрос. Кто может подсказать, как во время отладки в ChibiStudio контролировать состояние портов? У меня есть возможность делать это снаружи анализатором, но хотелось бы это делать прям в Студии.
  8. stm32f4 + дисплей от Motorola v150

    Приветствую всех. Разобрал телефон Motorola v150, хочу подключить дисплей от него к smt32f4-DISCOVERY. На дисплее маркировка 0103563801 T1 LP-8815-B 03-03 Z3422765 M3 и больше ничего. Нашел в инете схему на телефон (не надеялся, что найду), по которой видно, что дисплей имеет интерфейс SPI. Это вселило надежду. На форумах народ при начале работы с дисплеями первым делом начинают с чтения регистров ID и т.п. НО не понятно по каким адресам читать и вообще какими командами, какой формат у этих команд должен быть для данного дисплея. Кто-нибудь работал с этим дисплеем? Или может есть похожие по командам дисплеи, работа с которыми уже описана в сети? Или все-таки методом "научного тыка" придется все делать?
  9. SPI в ChibiOS (stm32f4)

    Еще один вопрос. Кто может подсказать, как во время отладки в ChibiStudio контролировать состояние портов? У меня есть возможность делать это снаружи анализатором, но хотелось бы это делать прям в Студии.
  10. stm32f4 + дисплей от Motorola v150

    Спасибо за желание помочь. Я решил пока поработать с HD44780. Сам дисплей от Моторолы пока не очень нужен, я просто начал разбираться с графической библиотекой uGFX под ОС ChibiOS. Почитал доки, примеры в инете, и подумал, что вроде ничего сложного в работе с дисплеями нет, нужно лишь знать интерфейс, адреса регистров, и коды команд. А под рукой был мертвый телефон Моторола v150, вот и решил начать с его экрана. Тем более, что телефон довольно распространенный (был), и я не думал, что будет проблема с доками на него. НО дальше того, что интерфейс к этому дисплею - SPI, я продвинуться не смог, даже не ясно с какими ширпотребами он схож по командам/регистрам. В-общем придется пока довольствоваться текстовым "монитором", а потом может и попробую методом подбора кодов разобраться с Моторовским экраном.
  11. SPI в ChibiOS (stm32f4)

    Что-то как-то в ДШ я так и не глянул. Спасибо большое за помощь.
  12. SPI в ChibiOS (stm32f4)

    Т.е. получается, когда указываем, что порт В (например) будет использоваться SPI-контроллером, то к этому контроллеру SPI можно подключить только определенные ноги порта В, конечно при условии использования АФ(5)? Тогда не подскажите, где про эти взаимосвязи выводов портов и SPI-контроллеров (да и не только SPI, но и всех остальных) посмотреть? Т.е. где узнать, какие выводы портов будут задействованы при подключении всяких контроллеров периферии?
  13. stm32f4 + внешнее ОЗУ

    Добрый день всем. С ARM разбираться начал недавно, в основном работаю с ПЛИС. Появился такой вопрос: возможно ли подключение к stm32f4 внешнего ОЗУ большого объема, порядка 4 ГБ? С ПЛИС работал с ДДР3 используя Альтеровское ядро. Сейчас хотелось бы повторить один из проектов, работающих с внешним ОЗУ ДДР3 на 4 ГБ, на СТМ'ке. Может применение другого типа памяти, не ДДР, позволит решить данную задачу? У кого есть какие идеи/подсказки? ЗЫ: Возможно есть уже готовые решения/проекты, но я их не нашел.
  14. stm32f4 + внешнее ОЗУ

    Спасибо, посмотрю.
  15. stm32f4 + внешнее ОЗУ

    Спасибо, посмотрю.
  16. stm32f4 + внешнее ОЗУ

    Ясно, спасибо. У stm32f4 из внешних интерфейсов имеются SPI, UART, CAN, I2C и вроде как всё. Так вот с помощью этого набора и возможно общение с внешним ОЗУ. Подскажите, пожалуйста, как с таким набором интерфейсов можно осуществить общение с SDRAM (с ДДР, я понимаю, нельзя работать от МК). Или на данном МК это вообще сделать не реально. Но, если это решаемо, то подскажите, плз, где про это можно покопать.
  17. stm32f4 + внешнее ОЗУ

    Если подключаться к ДДР'ке через ПЛИС, то этот путь мне довольно-таки ясен. У меня вопрос более конкретный: возможно ли к STM32F407.. подключить внешнее ОЗУ большого размера типа ДДР. Или возможно ли подключение другого типа памяти с большим объемом. Про объем уточняю на всякий случай. Я со своей стороны пытаюсь рассмотреть этот вопрос, но пока что и времени не хватает, и информации по этому маловато.
  18. Так-то автор пишет, что ЦитатаАЦП опрашивается, в буфер данные идут. Правда, он не сказал, как он это выяснил, методом медитации или отладчиком. То, что осциллографом видны тики таймера еще не говорит, что "АЦП опрашивается, в буфер данные идут". Я не знаю наполнение функции DataIN_OUT_toUSB, но не может ли получиться так, что 2мс не хватает (или хватает, но впритык) для полного выполнения этой ф-ции, и МК почти все время висит в обработчике таймера? Раньше все работало, потому что не было жесткой привязки к запуску этой ф-ции, т.е. когда закончила (может это занимало и более 2мс), тогда и опять начала выполняться, но при этом она могла быть прервана контроллером USB.
  19. ну...тогда статистика по указанным нанд'ам Вам в помощь.
  20. Эта картинка, как я понимаю, когда у Вас все хорошо и все работает, времена между пакетами маленькие. Видно арп-запрос, затем арп-ответ, и далее уже идет пакет данных на девайс. Но посмотреть бы картину при длительной паузе, можно в виде файла. а не картинки. И еще, при переводе Вашего стека в режим 1Г Вы все необходимые сигналы/частоты/настройки выставили в необходимое состояние?
  21. Имея картину от сниффера (сохраненный файл), можно было бы полнее проанализировать ситуацию. Т.е. может не в самом стеке дело, не в том, что он так долго анализирует принятый арп-ответ, а в том, что творится на линии.
  22. При отправке самого первого пакета Ваш стек отправляет арп-запрос для того, чтобы выяснить, какой МАК-адрес имеет девайс, которому предназначаются передаваемые далее данные. После принятия арп-ответа стек должен сохранить этот МАК-адрес в таблице ассоциации IP-адресов и МАК-адресов. Где-то в этом месте должен и выставляться сигнал dst_rdy. А уже при передаче следующих пакетов стек знает, какой МАК-адрес у девайса с IP-адресом, на который будут переданы данные, и поэтому пауза далее идет минимальная. Я не знаю, что из себя представляет Ваш UDP/IP stack, но логика работы должна быть такая. Длительная пауза при первом обмене может быть связана с посылкой-приемом арп-запросов/ответов. Нужно смотреть сниффером (wireshark), что происходит на линии езернета, какой сформирован арп-запрос, какой приходит арп-ответ, время между ними и т.п. Диаграммы можно было бы посмотреть, может они что-нибудь прояснят.
  23. Цитата(Postoroniy_V @ Aug 28 2014, 18:14) http://caes.ewi.utwente.nl/index.php/resea...erial/sabrewing Пробовал симулировать, не получается, нужна библиотека DWARE, которая вроде под какой-то платной лицензией. Да и делителя плав. я не увидел.
  24. Добрый день всем. Инструменты работы: Циклон5Е, Квартус 13.0 Для реализации имеется некая формула, вернее набор последовательно вычисляемых формул, имеются операции умножения, деления, извлечение корня, и +,-,<>.. Аргументы при перемножении имеют довольно большие значения - до 200.000.000. При делении делитель имеет довольно малое значение - порядка 1е-8. Точности расчетов должны быть порядка 1е-8. Исходя из таких аргументов я принял решение реализации на плав.точке, при этом приходится использовать ядра Альтеры для проведения всех необходимых операций вычислений. Так вот, собственно, проблема в том, что эти ядра в кристалле занимают ОЧ.много ресурсов, и уже для расширения проекта приходится экономить на регистрах и памяти, и то места может и не хватить на будущее. Имеются ли в природе модули, выполняющие мат.операции с плав.точкой, занимающие меньше места чем Альтеровские? Если да, то кто ими пользовался, что можете сказать о них? Вариант перехода на фикс.точку я рассматривал, но при таком диапазоне аргументов и результатах вычислений у меня как-то не получилось это вытянуть.
  25. ЕСС - конечно же поможет, но только с одним-двумя ошибочными битами в массиве битов. Наверное есть алгоритмы и для большего количества ошибок, но я их не изучал. Так что при применении ЕСС можно использовать страницу с одним постоянно испорченным битом, а при появлении второго испорченного бита блокировать(помечать) страницу. Но, если у Вас иногда ошибочные биты появляются и пропадают в разных местах, то можно случайно забраковать и небитую страницу, а затем следующую ... и так у Вас не останется страниц вообще. При случайных появлениях и пропаданиях неверных данных при чтении (не совпадающих с записанными), дело может быть в НЕстабильности работы интерфейса с флэшкой, какой-нибудь дребезг на линии данных или тактовой, и т.п.