Сваял франкенштейна на T-Dongle ESP32-S2 WiFi development board. При втыкании в комп прикидывается флэшкой, файловое хранилище на SD. При втыкании в зарядку поднимает точку доступа и запускает файловый сервер с доступом к той же SD. На лцд экран выводится лог работы.
За основу брал примеры из esp-idf и tinyusb: esp-idf/examples/protocols/http_server/ - файловый сервер; esp-idf/examples/peripherals/spi_master/lcd/ - работа с экраном; tinyusb/examples/device/msc_dual_lun - работа с усб.
Из впечатлений - как и ожидалось усб работает не ахти (300кб/с) sd больше 4гб лучше не подключать, шить прикольно, просто воткнул в усб сбросил руками в режим загрузки и дальше или через последовательный порт штатными средствами idf (надо только отключить принудительный сброс в режим загрузчика перед прошивкой), или через дфу (через дфу не пробовал).
И? Ось по идее при получении инфы о том что в сидюк вставлен новый носитель автоматом перечитывает содержимое диска. Суть в том что для флэшек подобные команды/статусы (аля выброс лотка сидирома) не предусмотрены.
А причем тут флешка? Речь же о сидироме. Т.е. я так понимаю микроконтроллер прикидывается сидюком и при попытке открытия соответствующих файлов пытается сделать eject и повторную монтировку нового образа.
Если флешка ... будет подавать сигнал «извлечения устройства»
Первый кто впадет в ступор это будет драйвер операционки т.к. состояние/команда извлечение для данного типа не предусмотрено. Ну а дальше - останов usb устройства.
Т.е. что бы ось корректно обрабатывала команды извлечения диска микроконтроллер должен прикидываться msc типа сидюк, с соответствующей реализацией протоколов и дескрипторов на стороне контроллера. И вот тут затык, т.к. я конечно особо не искал, но во всех библиотеках что я видел обычно реализован msc типа hdd/flash.
Вероятность того, что письмо лежит в столе, равна p. В столе 5 ящиков. Открыли 4 из них. Письма в них не оказалось. Какова вероятность обнаружить его в 5-м ящике?
Эм я чет не пойму, или криво написано условие, или что то не то с правильным ответом. Т.к. задана вероятность нахождения письма в столе, и все ящики кроме одного открыты, по мне так правильный ответ - p. А у вас с какого то перепугу 0.2*p/(1-0.8*p).
Речь про то что чип ds1307 точность хода часов не определяет. Более того TXCO есть и более точные чем ds3231 (+/-5ppm).
И что значит лишние? ds1307 без TXCO или кварцевого резонатора работать не будет. По габаритам 5...3ppm TXCO не сильно больше кварца SiT1566 - 1.5мм * 0.8мм.
Из недостатков реализации можно отметить использование чипа DS1307, который славится своей неточностью и большими отклонениями отсчёта времени от реального значения.
Чип то тут причем? Из даташита:
The accuracy of the clock is dependent upon the accuracy of the crystal and the accuracy of the matchbetween the capacitive load of the oscillator circuit and the capacitive load for which the crystal wastrimmed.
The DS1307 can also be driven by anexternal 32.768kHz oscillator. In this configuration, the X1 pin is connected to the external oscillatorsignal and the X2 pin is floated.
Т.е. если ставить ds1307 + кварц, то точность хода будет определяться характеристиками кварца, если ставить ds1307 + термостабилизированный генератор, то точность будет определяться точностными характеристиками этого генератора. Как пример - ту же точность что на ds3231 (+/-5ppm) можно получить на связке ds1307+SiT1552.
О типе клеммника и типе проводов - в условии ничего не сказано. Считаю что клеммник - винтовой (что то типа DG305-5.0-02P-12-00AH), и 1,2,3,4 провода в одну клемму вполне влезут и зажмутся винтом.
В свое время очень часто применял (во времена 8051, AVR), когда было делать лень на прерываниях и морочится с очередями или оставалось мало оперативки. Но, при этом вся логика функционирования девайса висела на прерывании от таймера. Т.е. получалось что все что нужно делается в обработчике прерывания каждый тик, а обмен с ПК - фоном висит.
Сейчас, с десятками килобайтам ОЗУ на борту, для современных МК конечно так делать не надо. Но опять же, не сказаны условия в которых этот антипаттерн приводится.
Хз, я считаю что клеммник - винтовой (что то типа DG305-5.0-02P-12-00AH), и 4 провода в одну клемму вполне влезут и зажмутся винтом. О типе клеммника и типе проводов - в условии ничего не сказано.
Сваял франкенштейна на T-Dongle ESP32-S2 WiFi development board.
При втыкании в комп прикидывается флэшкой, файловое хранилище на SD.
При втыкании в зарядку поднимает точку доступа и запускает файловый сервер с доступом к той же SD.
На лцд экран выводится лог работы.
За основу брал примеры из esp-idf и tinyusb:
esp-idf/examples/protocols/http_server/ - файловый сервер;
esp-idf/examples/peripherals/spi_master/lcd/ - работа с экраном;
tinyusb/examples/device/msc_dual_lun - работа с усб.
Из впечатлений - как и ожидалось усб работает не ахти (300кб/с) sd больше 4гб лучше не подключать, шить прикольно, просто воткнул в усб сбросил руками в режим загрузки и дальше или через последовательный порт штатными средствами idf (надо только отключить принудительный сброс в режим загрузчика перед прошивкой), или через дфу (через дфу не пробовал).
И? Ось по идее при получении инфы о том что в сидюк вставлен новый носитель автоматом перечитывает содержимое диска. Суть в том что для флэшек подобные команды/статусы (аля выброс лотка сидирома) не предусмотрены.
А причем тут флешка? Речь же о сидироме. Т.е. я так понимаю микроконтроллер прикидывается сидюком и при попытке открытия соответствующих файлов пытается сделать eject и повторную монтировку нового образа.
Тут опять вопрос чего реализовано в системе, сбросит ли она кэш после кратковременного извлечения или нет.
Первый кто впадет в ступор это будет драйвер операционки т.к. состояние/команда извлечение для данного типа не предусмотрено. Ну а дальше - останов usb устройства.
Т.е. что бы ось корректно обрабатывала команды извлечения диска микроконтроллер должен прикидываться msc типа сидюк, с соответствующей реализацией протоколов и дескрипторов на стороне контроллера. И вот тут затык, т.к. я конечно особо не искал, но во всех библиотеках что я видел обычно реализован msc типа hdd/flash.
msc это ж не только флэшка, может быть и cdrom. Если прикидываться сидюком то вполне все уживется без глюков.
Да, дороговато но там ведь не только есп32с2 а ещё всякое есть + вообщем то законченный корпус.
Зачем колхозить лишние провода? Есть же T-Dongle ESP32-S2 WiFi development board.
eclipse с плагином для идф? Тогда гляньте тут: https://github.com/espressif/idf-eclipse-plugin/blob/master/README.md#projectconfigure
Для библиотек это делается через: make menuconfig (было раньше для симэйка) сейчас: idf.py menuconfig.
Эм я чет не пойму, или криво написано условие, или что то не то с правильным ответом. Т.к. задана вероятность нахождения письма в столе, и все ящики кроме одного открыты, по мне так правильный ответ - p. А у вас с какого то перепугу 0.2*p/(1-0.8*p).
Речь про то что чип ds1307 точность хода часов не определяет. Более того TXCO есть и более точные чем ds3231 (+/-5ppm).
И что значит лишние? ds1307 без TXCO или кварцевого резонатора работать не будет. По габаритам 5...3ppm TXCO не сильно больше кварца SiT1566 - 1.5мм * 0.8мм.
Чип то тут причем? Из даташита:
Т.е. если ставить ds1307 + кварц, то точность хода будет определяться характеристиками кварца, если ставить ds1307 + термостабилизированный генератор, то точность будет определяться точностными характеристиками этого генератора. Как пример - ту же точность что на ds3231 (+/-5ppm) можно получить на связке ds1307+SiT1552.
О типе клеммника и типе проводов - в условии ничего не сказано. Считаю что клеммник - винтовой (что то типа DG305-5.0-02P-12-00AH), и 1,2,3,4 провода в одну клемму вполне влезут и зажмутся винтом.
В свое время очень часто применял (во времена 8051, AVR), когда было делать лень на прерываниях и морочится с очередями или оставалось мало оперативки. Но, при этом вся логика функционирования девайса висела на прерывании от таймера. Т.е. получалось что все что нужно делается в обработчике прерывания каждый тик, а обмен с ПК - фоном висит.
Сейчас, с десятками килобайтам ОЗУ на борту, для современных МК конечно так делать не надо. Но опять же, не сказаны условия в которых этот антипаттерн приводится.
Хз, я считаю что клеммник - винтовой (что то типа DG305-5.0-02P-12-00AH), и 4 провода в одну клемму вполне влезут и зажмутся винтом. О типе клеммника и типе проводов - в условии ничего не сказано.
Провода 4, так что максимум - 8^4. Правда тут хз что за клеммник, они тоже разные могут быть.
8^4 же. 4 провода на 8 клемм.
Лучше играйте в азартные игры, шанс на них выиграть повыше будет.