Перейти к содержанию
    

gerber

Участник
  • Постов

    884
  • Зарегистрирован

  • Посещение

Репутация

8 Обычный

Информация о gerber

  • Звание
    Знающий
    Знающий

Посетители профиля

11 021 просмотр профиля
  1. Разобрался, дело было в кварцевых резонаторах 8 МГц, замена на новые решила проблему. Они поначалу стартуют (HSE Ready), но потом отваливаются, контроллер переходит на внутренний HSI, который тоже 8 МГц. При ините UART опорная частота вычисляется честно, на основании текущего состояния RCC регистров, поэтому он продолжал работать. А вот счётчики инитились в расчёте на 72 МГц, поэтому звук резко падал вниз.
  2. Рабочие платы отгружены, поэтому снять с них проц и перекинуть не получится. Если бы глючил кварц, я понимаю, слетели бы все тактирования, но UART работает правильно. К тому же переход на HSI тактирование не решает проблему. Аппаратный ШИМ с выхода канала таймера TIM2. Вот это скорее всего, хотя покупались контроллеры не на Али, а в Промэлектронике. Маркировка чёткая, я видел контроллеры, маркированные "в подвале", здесь не тот случай.
  3. Есть небольшая серия из 10 шт устройств на базе STM32F103C8T6. 8 устройств работают нормально, а 2 устройства ведут себя одинаково странно - у них выходы счётчиков, которые формируют, например, звук пищалки, выдают частоту в несколько раз ниже планируемой. При этом, например, UART работает с правильной скоростью и ведёт обмен с хостом на 115200, как и нужно. Иногда плата может стартовать правильно (звук пищалки правильный), а через пару секунд звук резко понижается (частота падает). Контроллер менял на новый - не помогло. Пропаивал ножки, тоже нет положительного эффекта. Тактирование от кварца 8 МГц, схема согласно даташита. Есть ли идеи, что это может быть за проблема?
  4. И ещё надо убедиться, что volatile относится не к указателю, а к переменной, на которую он указывает.
  5. Есть такой термин "безопасное программирование". К примеру, что будет с вашим кодом, если список функций пуст (начинается с NULL)? Или в процессе отладки вы захотите (временно) отключить вызов какой-либо функции, заменив её на NULL в массиве? И чем будет ограничен вызов функций, если забыть завершить массив нулём? В последнем случае код может оказаться случайно рабочим, вы забудете про него на пару лет, а при очередной модификации начнутся глюки, и вы будете долго ломать голову. Логично и безопасно перебрать все элементы массива и вызвать ненулевые, разве нет?
  6. "Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам" (написано у вас в подписи)
  7. Последний ноль не особо нужен, размер массива известен в момент компиляции, и ходить по нему можно с помощью sizeof(UART_NN)
  8. Похоже, что в слой трафарета попали переходные, но не все, а те, которыми "прошивали" полигон. В целом, выглядит, как старая паста. Флюс недостаточно активен, поэтому шарики не сливаются в экстазе в каплю. Ну или какая-то экзотическая паста, с хитрым термопрофилем, которой нужен долгий преднагрев для активации флюса.
  9. У базовой станции и устройств в LoRaWAN разный IQ mode. Это сделано, чтобы устройства не слышали друг друга, общались только с БС. Аналогично, чтобы БС не принимали пакеты другой БС. Поэтому сниффер может слушать только один из каналов (либо восходящий, либо нисходящий), в зависимости от настройки IQ mode.
  10. pci.exe, hwinfo.exe, findpci.exe, подобные утилиты писались многими, поскольку все они работали через вызов PCI BIOS, и были довольно просты.
  11. Оба модуля сделаны на базе DW1000 чипа, поэтому разница только в антенне. Поскольку вы не будете (вероятно) использовать их для измерения расстояния между узлами, то и Antenna Delay не будет играть особой роли, как и диаграмма направленности. UWB приёмник прекрасно принимает и отражённые копии.
  12. Посмотрите в сторону импульсной сверширокополосной связи (UWB), стены проходит на ура, скорость 110 Кбит - 6.8 Мбит/с. Есть аппаратный ACK принятого пакета, по которому передающий узел может убедиться, что его пакет принят. Не надо никакого установления связи, узлы вещают в эфир свою информацию. Есть прецизионный пикосекундный таймер, с помощью которого можно задать точное время передачи пакета, таким образом поддерживать общее расписание выхода в эфир. Но даже без него 5 узлов будут нормально обмениваться, выходя в эфир по псевдослучайному принципу (ALOHA). При пересечении в эфире пакетов от разных узлов, кореллятор приёмника цепляется за самый сильный и таким образом хотя бы 1 пакет будет принят.
  13. В мороз резко увеличивается потребляемая от электросети мощность, люди включают обогреватели, водогреи. Поэтому, возможно, возросший уровень электромагнитных помех сбивает с толку ваши прошивки и ничего не работает. Запись в EEPROM два раза, потому что при чтении считалось не то и прошивка не увидела, что ключ уже есть. И т. п. Косвенно это подтверждается тем, что в холодильнике при -18 С всё работает.
×
×
  • Создать...