Обновить
36
2.1

Пользователь

Отправить сообщение

Так в этом же и была цель - проводить доступные измерения по имеющимся данным без каких либо доработок текущей конструкции самоката

О, это важная тема, скорее всего для отдельной статьи, т.к. в случае ошибки мы можем не только сломать какой-то функционал, но и полностью потерять связь с устройством, превратив его в кирпич.

Но если кратко:

  • У нас есть отдельный сервис для плановой доставки обновлений с разными возможностями кастомизации - например, обновить 1% какого-то региона или только самокаты определенной модели

  • Стараемся выносить фичетоглы или ключевые настроки фичей в конфиг сервис, что бы опять же - регулировать тестовый период и иметь возможность быстро вмешаться (обновление прошивки всегда более длительный процесс)

  • Реализованы разные фоллбеки на случай, если все совсем плохо. Например, если после обновления самокат даже не может подключиться к платформе - через какое-то время он откатится на дефолтную прошивку

  • Мониторинги, алерты и т.д. - когда важно понять, что что-то идет не так, максимально быстро и не от пользователей или сервисной команды

  • Но самое важное - это процессы. То есть, просто набор правил и практик, которые если соблюдать (а лучше - автоматизировать), то фоллбеки никогда не сработают, т.к. проблема будет отловлена в самом начале процесса раздачи прошивок

Мне больше нравятся антенны на самой плате (ну или SMD керамические, хотя это дороже и менее эффективно). Я понимаю, у них разные области применения и где-то нужны внешние, но у меня таких задач не было…
Ориентировался вот на эти аппноты от TI:
swra351a.pdf, swra228c.pdf, swru120b.pdf, swra161b.pdf.

Ну и не всегда есть под рукой приборы, которые позволяют оценить, как ваша, только что придуманная антенна работает. Однажды у меня в питании nRF24L01 стоял DC-DC и все работало вроде, но не очень. А когда дошли руки посмотреть анализатором спектра — был неприятно удивлен:

image

Такую несущую он выдавал

А вот такую должен (при питании от LDO):

image

На плате ни одного 0805, все 0603. Действительно, на отладке фирменной от нордик (правда, MCU — nRF51) стоят 0402.

Я лично не проверял с 0402, не знаю. Дальность особо не тестил, но по квартире метров 20 с парой не несущих стен работает.

Купил в китае на Али по 30р/шт, так что вряд ли.
Проще же сделать это на внешних компонентах, а МК использовать любой, который удобно программировать.
К примеру, я когда-то делал Zero-crossing на компаратор + аналоговый мультиплексор (Low Capacitance, Low Charge Injection)

image

Нужно было измерять только положительную полуволну синуса микроконтроллером (сигнал симметричен был). В схеме компаратор кроме того, что детектирует переход через 0, так еще и переключает мультиплексор так, что бы в положительную полуволну сигнал шел на АЦП МК, а в отрицательную выдавал 0.
Если честно, не очень понял, о чем речь. Скорее всего, нету, но вы можете проверить сами!
Кстати, в отдельном файле у меня все же есть макросы BUZZER_PIN, BUZZER_PORT, BUZZER_CLK_PINS (BuzzerConfig(void)). Туда же, при желании, можно записать таймер:

#define BUZZER_TIM TIM2
#define BUZZER_CH  CH1
О хорошей переносимости между программами, использующими FreeRTOS. Точнее даже, о сложной переносимости самодельных способов синхронизации между задачами. Мне лично проще потратить двадцать минут и исправить конфигурацию функций инициализации руками, чем создавать полностью универсальные функции.

ST уже пробовали так сделать и что вышло? Ага, SPL. Не то, что бы совсем плохо, но ругаться есть на что. Каждый сам выбирает себе эту грань, главное не вдаваться в крайности.
У меня он работал очень плохо, без преувеличесний. Много ложных срабатываний. Ради интереса покажу позже код инициализации и то, как это работает.

А серия тоже f103? Может, в старших камнях исправили?
Ага =)
Но только шины данных и адреса для NOR flash и OLED
Не знаю. Думаю, что не очень сильно, но не готов это грамотно обосновать.
Спасибо.
Обойтись было можно, но не было смысла — я просто подкидываю платы для хобби к другим заказам с более сложными платами.
Форм фактор свой, не кредитный, просто так вышло.
Это очень клевые стойки от Wurth Electronics
Это шоттки по питанию, они есть на схеме в публикации.
Большая часть платы приведена тут, кстати. Остальное — карта памяти uSD, радиомодуль nRF24L01+, аналоговый датчик света, EEPROM память и сокеты для дочерних плат
Почему неудобно?
Да, я тоже так изначально думал делать. Но не стал — забыл, почему. Вспомню — напишу.
Описанное в статье и правда избыточно, я так изначально и задумывал — не вдаваться в оптимизацию алгоритма работы прежде, чем все не будет работать. Лично я не планирую использование бута в том виде, в котором он описан — это скорее учебный вариант. В дальнейшем я просто буду его модифицировать отдельно под очередной проект. Где флешка будет внешняя, где — принимающий интерфейс не ЮСБ, и т.д.
Ну хоть какая-нибудь кнопка будет в вашем устройстве? Этот бут можно завести на вообще любую кнопку.
Нет, в виде композита не думал, т.к. у всего, для чего я буду использовать этот бут — есть хотя бы одна кнопка.
Вы имеете ввиду, что нужно отдать USB_MSD всю флешку, кроме той, где хранится бутлоадер? А потом при перезагрузке прыгать по тому адресу, где лежит файл APP.BIN (ОС его туда положила — и этот адрес не сложно вычислить без монтирования файловой системы, а вручную, по таблице FAT)?
Тут проблема в том, что я не могу предугадать действия ОС. Вдруг она разобьет файл на куски, и разбросает их по диску. Это вполне возможно, если на MSD диске лежат какие-то другие файлы (например, несколько разных прошивок, или файлы настройки чего-то внутри МК). Поэтому я и пользуюсь FatFS — что бы легко получить доступ к файлу невзирая на то, что ОС с ним творила.
Его, как минимум, можно использовать для обучения :-)
Что значит " устройство уже является win-совместимым"? То есть у него уже есть какой-то USB интерфейс (и он настоящий, не usb-uart конвертор)? Тогда можно прошить этот бут на ваше устройство и потом через него обновлять вашу прошивку. Нужна только кнопка, которая при включении устройства выбирает — грузится в режиме бута или же в режиме исполнения вашей программы.

Я пробовал через этот бутлоадер заливать приложения, использующие USB (CDC или MSD). Удачно все.

Информация

В рейтинге
1 120-й
Зарегистрирован
Активность