Jump to content

    

adnega

Свой
  • Content Count

    3001
  • Joined

  • Last visited

Everything posted by adnega


  1. У меня есть: - Universal Serial Bus Specification Revision 2.0 April 27, 2000; - Universal Serial Bus Class Definitions for Communications Devices Revision 1.2 November 16, 2007; - Universal Serial Bus Communications Class Subclass Specification for PSTN Devices Revision 1.2 February 9, 2007. Этого достаточно или рекомендуете еще что-то? Читал. Круто все и довольно глубоко все поясняется, но в стиле "делай раз, делай два", а мне нужно что-то типа спецификаций/стандартов. Говорят, для ST-MCU могут выдать VID/PID. Мне бы хватило стандартного для VCP, но наверное нужно каким-то требованиям по функционалу удовлетворять. Как появится время - попробую этот вопрос решить.
  2. r2axz, видно, что вы в теме USB очень хорошо разбираетесь. Какую бы вы посоветовали литературу для изучения USB и CDC в частности? Меня в первую очередь волнует вопрос: может ли мое устройство CDC, подключенное к хосту, узнать открыт ли порт на хосте сейчас? При открытии я получаю пачку GET_/SET_LINE_CODING, SET_CONTROL_LINE_STATE, по которым могу сконфигурировать UART и т.п. Но при закрытии порта вообще никаких пакетов не приходит. Или открытие/закрытие порта - это головная боль на уровне приложений, а драйвер всегда все принимает? И еще момент насчет VID/PID от ST: кто-нибудь получал официальное разрешение на их использование в своих изделиях?
  3. В старой версии SDK, говорят, много проблем было. Я сам долгое время не мог гарантировать работу esp8266 даже на своей прошивке. Просто, библиотечная функция либо возвращала бред, либо не возвращала управление вообще. Больше всего напрягало, что с течением времени модуль вроде как забывал таблицу ARP и переставал то ли отправлять, то ли принимать пакеты - нужна была постоянная активность. Не знаю как сейчас с этим - слышал пофиксили, но сам дотошно не разбирался и не тестировал.
  4. Рекомендую обновить прошивку. Кста, у вас модуль с каким объемом памяти? Нужно на стороне ESP8266 включить DHCP-клиента для STA-режима. В некоторых роутерах есть логи - можно их посмотреть. Посмотреть какие регионы выбраны для WiFi на стороне роутера и на стороне esp8266. Ну, и питание, антенна...
  5. Можно собрать такого программируемого робота на дискретной логике. Справа вверху 4 светодиода направлений (белый вверху, два желтых по бокам, красный внизу); верхняя кнопка запускает блок ИНАЧЕ. Пока кнопка не нажата выполняется команда из блока "ТО", при нажатии последовательно выполняются команды из блока ИНАЧЕ (1-2-3), но желтым проводом последовательность можно прервать на команде 2 или 3 (рядом с переключателем есть соответствующие штырьки). Есть тактовый сигнал (такт подается с нижней кнопки или со встроенного генератора 1Гц). Пока тактовый сигнал в 1 выполняется действие с соответствующей группы DIP-переключателей. Сдвоенный переключатель управляет двумя моторами (соответственно левый и правый). Если переключатель вверху, то мотор крутит колесо вперед; если внизу, то назад. Когда тактовый сигнал в 0 - моторы останавливаются. Рядом с каждым переключателем есть светодиод активности (зеленый у блока ТО, желтый у блока ИНАЧЕ). Делая разные сенсоры, можно заставить робота следовать по линии, находить выход из несложного лабиринта, при встрече с препятствием отъезжать и разворачиваться. Это более сложный робот, но работающий на простейших принципах. Есть 4 датчика, для них задается таблица истинности (16 значений), в каждой ячейке которой задана определенная команда. Таблицу можно задавать по WiFi, можно получать значения датчиков и углы поворота колес (есть энкодеры) тоже по WiFi. ПО на ПК рисует маршрут движения робота с достаточной точностью. Еще один из режимов работы описал в предыдущем посте. Есть и прямое управление колесами. Корпус робота выполнен из воздушного пластилина в форме какого-то жука-паука.
  6. Год назад мы с дочкой принимали участие в Робоштурме. Собрали программируемого робота на логических микросхемах только (генеретор, счетчик, мультиплексор, дешифраторы...). Родителей удалили, а с детьми беседовали члены комиссии в закрытой аудитории. Я так понял, что они поняли, что она не может это понимать, т.к. ее похвалили, но конструкцией никто не интересовался, продемонстрировать работу тоже не дали. Конечно, многие пришли туда за бонусами к поступлению в ВУЗ, а мы же за чистым фаном. После окончания официальной части, к нам подходило несколько человек, и они очень удивлялись, что девочка-первоклассница понимает, что такое двоичная логика, но 99% это не интересует.
  7. Не думаю, что архитектуру ПК стоит изучать. Уверен, что архитектура шагнула далеко вперед со времен MS-DOS и стала настолько сложной, что никакого времени не хватит ее постичь. Лучше начать с того, что даст ощутимый результат сразу, и в то же время замотивирует изучать дальше. Ребенку проще и понятнее написать "light.on(Color.RED)", а не "*(0x400800b4) = 1". Я в 99% случаев пишу (работаю) на Си, но там очень много особенностей и ограничений. Это как изучать математику по калькулятору. В Питоне все проще, понятнее, много библиотек, работает на разных платформах - пишешь алгоритм, а код. Базовые конструкции практически любого языка присутствуют. Можно сначала линейный код писать. Затем в задачах, которые в цикл сворачиваются, показать что такое цикл и как он упрощает жизнь и т.д. и т.п. Я сам Питон только с лета начал изучать, но уже много где с ним столкнулся: декодеры для DSLogic (сейчас для своих нужд написать декодер не составляет труда), скрипты KiCAD (надеюсь, позволят еще сильнее реализовать автоматизацию сквозного проектирования), для обработки логов/текстовых файлов теперь использую Питон (раньше все делал на Перле), программируемые блоки LEGO (спайк, инвентор, даже старичок ev3) могут выполнять программы на микроПитоне, черная пилюля может работать с микроПитоном.
  8. Сейчас модно STEAM - это не только программирование, а весь комплекс сопутствующих дисциплин.
  9. Python очень рекомендую. Для 12-13 лет самое то. Я дочке в 7 лет показал avr-asm в машинных кодах, но это исключительно со взрослым. Самостоятельно она довольно быстро разобралась со Scratch. Flowcode чем-то напоминает Scratch, но Scratch в разы удобнее - можно со смартфона пальцем программировать. Плюс большая коллекция всего, чтобы сделать анимацию, игру и т.п. У известного производителя конструкторов есть целое подразделение для образовательных целей. Насколько я понял, сейчас они пришли к схеме: Scratch 3.0 для начинающих, а для продвинутых Python.
  10. Неа. Есть некоторое количество палочек. Игроки по очереди берут одну, две или три палочки. Кто забирает последнюю, тот проиграл. У этой игры есть простая стратегия выигрыша, и если противник хоть раз ошибется, то ваша победа гарантирована.
  11. Есть у меня attiny10 в SOT23-6. Периодически с дочкой занимаемся электроникой. На тему динамического обновления сделали интересный макет. К трем оставшимся пинам МК подключили три кнопки и 6 светодиодов с независимым управлением. Сделали: двоичный счетчик с запуском/остановкой/сбросом; двоичный калькулятор с накоплением; игру "палочки", причем, МК всегда выигрывает человека (или почти всегда, если при первом ходе человек не допустит ошибку).
  12. Рекомендую Scratch. Там, вроде, и материалы для преподавателей есть. Можно довольно просто сделать несложные мультики/игрушки. А можно и робота LEGO (Boost) или arduino (mBlock) запрограммировать.
  13. Ваш осциллограф находится в Госреестре. Это должно быть существенным плюсом для тех, кому нужно СИ. Для тех, кому просто посмотреть (а их большинство) есть много интересных современных моделей за порядок цен, указанный вами. Например, Hantek DSO4254C стоит в диапазоне 34(Китай)..54(РФ) тыр. По-моему, вариантов не много: 1) либо не продавать; 2) либо за 10 тыр продать тому, кому "посмотреть"; 3) либо найти того, кому "измерять", но вопрос с поверкой открытый.
  14. Может, реальная полоса сигнала не нулевой ширины: на спектр 18МГц накладываются сигналы с другими частотами, и в сумме амплитуда выше.
  15. Товарищи! В чем смысл выяснения отношений и переходов на личности? Все все поняли, всем все ясно. Если ТС заложит F091, то по грабелькам, может, и пройдется - дык, опыт будет, и нам повод по-обсуждать. Заложит жирный МК - будет только основным функционалом заниматься без углубления в дебри и побочные явления. Меня бы F091 как исполнителя для данного ТЗ - отпугнул.
  16. Да, вы все верно подметили. Я для 168МГц прикинул задержки: порядка 72 нс при допуске 150 нс. Джиттер будет еще меньше. Я когда первый раз столкнулся с задержками DMA, был настолько разочарован, что к DMA сейчас отношусь как к медленному аппаратному блоку, единственное преимущество которого - делать что-то без участия CPU.
  17. А что за бинарная прошивка? Где? К какому МК или плате?
  18. Предлагаю этот вопрос закрыть, т.к. он всплыл от неуверенности работоспособности связки GPIO+TIM+DMA. Связка работоспособна. Обвязка? потребление? цена, наконец? Мы серийно используем F030 для управления светодиодными матрицами, в самых простых случаях. Правда, сейчас (уже несколько лет) перешли на F051. Большинство транспортных табло делаем на нем. Я на практике знаю, что из Cortex-M0 можно по максимуму выжать. Но это для крупных серий. Я ТС рекомендую взять МК "по-толще", все на нем отладить, а при необходимости сменить МК или семейство.
  19. На частоте 48МГц интервал 0.35 мкс, это порядка 16 тактов. Не "прям подряд", но близко. Я рекомендую F4, а еще лучше F3/G4. Там еще бодрее будет. Картинка - это к вопросу, что DMA не мгновенный, а в некоторых случаях десятки тактов.
  20. Ничего. Работать будет. Да, будут дрожать фронты, но это не критично. Я давно об этом уже написал.
  21. В "Martin T., The Insiders Guide to the STM32 ARM based Microcontroller(2008)" в главе "4.2.3 Direct Memory Access" довольно подробно расписан механизм работы DMA. Несложная арифметика дает 7..10 тактов на следующую транзакцию. Т.е. если делать единичные DMA-запросы, то эффект можно и на 3-м такте получить. Но если жарить по-полной, то я меньше 12 тактов не планирую, все равно работать не будет. В теории досконально не разбирался, но на практике 12 тактов наблюдал и побороть не смог. Кста, Проверить-то совсем не сложно: по первому сравнению таймера делаем OC таймера на вывод пина, и запрос DMA на запись в BSRR "1", по второму каналу тоже самое, но запись "0". Наблюдаем на трехканальном анализаторе, измеряем задержку и джитер.
  22. По моим ощущениям, DMA-транзакция может занимать порядка 12 тактов, это при 168МГц порядка 0.071 мкс. Да, дребезжать фронты будут, но по-моему не критично.
  23. Настраиваем 3 канала совпадения (можно и два, если очень захотеть). Первый записывает через DMA лог "1" во все нужные пины GPIOx->BSRR (это может быть UP-событие). Второй канал через 0.35 мкс записывает значение в GPIOx->BSRR из специального массива M[0]. Третий канал через 0.9 мкс записывает значение в GPIOx->BSRR из специального массива M[1]. Задача подготовить два 32-(можно и 16-)битных массива M[0] и M[1], по одному элементу на каждый бит. Т.е. размер в элементах равен 24 * N, где N-число светодиодов в линий. Но так можно до 16 линий одновременно рулить. Если памяти жалко, то можно попробовать в кольцевом DMA готовить данные на лету.
  24. А сколько пинов нужно? Информации об этом не нашел в топике. Я бы предложил 100-нигий, т.к. можно FSMC задействовать, если нужно, типа, многоразрядный SPI. У адресный светодиодов зачастую одна линия с очень строгими таймингами. Тут либо SPI+DMA, либо GPIO+TIM+DMA. ОЗУ в F401 очень много.