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

dimka76

Свой
  • Постов

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

  • Посещение

  • Победитель дней

    15

dimka76 стал победителем дня 12 июля

dimka76 имел наиболее популярный контент!

Репутация

62 Очень хороший

2 Подписчика

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

  • Звание
    developer
    Гуру
  • День рождения 03.10.1976

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Retained

  • Звание
    Array

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

22 652 просмотра профиля
  1. WCH CH32F203 CAN

    Да, попробую обязательно. Только вот второе устройство же принимает без ошибок. Пока еще не успел посмотреть. CAN1->BTIMR = (0UL << CAN_BTIMR_SJW_Pos) | // 1 TQ (3UL << CAN_BTIMR_TS1_Pos) | // 4 TQ (2UL << CAN_BTIMR_TS2_Pos) | // 3 TQ (11UL << CAN_BTIMR_BRP_Pos) | (1UL << CAN_BTIMR_SILM_Pos); // Silent mode
  2. WCH CH32F203 CAN

    Счетчики в этом МК программно сбросить нельзя. В этом регистре вообще все биты только для чтения.
  3. WCH CH32F203 CAN

    На всякий случай написал. Для справки. Вот схема для третьего устройства. Третье устройство в Silent Mode, т.е. вообще в сеть ничего не отправляет. Режим "шпиона". R5 не установлен. PB3 для пробуждения МК от CAN шины сделал. Да, т.к. второе устройство подтверждает все сообщения. Не задержка, а именно пропуск. Дальше все пакеты третьим устройством принимаются. Т.е., если первые 16 пакетов отправлял 10, а семнадцатым отправил 20, то и примется 20. Все три устройства лежат на столе. Провода 10-15 см длинной. Скорость передачи 500 кбит/с
  4. WCH CH32F203 CAN

    Второе устройство, которое настроено в нормальном режиме и ведет прием, принимает без пропусков. Первое и второе устройство в нормально режиме. Третье устройство (проблемное, про которое я тему поднял) в Silent. Первое только передает, остальные принимают. Хорошо, попробую. Спасибо. ------------------------------------------------------------------------- На этот МК документа Errata нет. Я найти не смог.
  5. WCH CH32F203 CAN

    Здравствуйте. Работаю с CAN на указанном выше микроконтроллере. Это фактически клон STM32. CAN настроен на режим Silent mode. В сети три устройства. Два работаю в нормальном режиме, а одно в Silent Mode. Одно устройство, работающее в нормальном режиме с некоторой периодичность отправляет один и тот же пакет. Настроен фильтр на определенный CAN ID После включения питания первые первые 16 пакетов не принимаются моим устройством, дальше прием работает нормально. И при каждом включении питания или сбросе все стабильно повторяется - первые 16 пакетов не принимаются. В чем может быть дело ?
  6. Как-то у них оформлено не очень, в параметрической таблице на сайте они идут с питанием от 2 до 3,6 https://www.onsemi.com/products/timing-logic-memory/standard-logic/logic-gates/MC74LCX00
  7. Кто производитель ? У OnSemi вся серия LCX имеет рекомендованный диапазон рабочих напряжений питания от 2 до 3,6 Вольт.
  8. Dmamux stm32g030

    Можно придумать кучу алгоритмов приема данных и каждый будет по своему хорош. У меня сделано так. По UART ведется работа в диалоговом режиме. Мастер отправляет запросы ведомому. Пока мастер не получит ответ на запрос, новый запрос не отправляет. Микроконтроллер здесь выступает в роли подчиненного. Запросы могут быть разной длины. В микроконтроллере объявляется массив принимаемых данных размером чуть больше самого длинного запроса (не спрашивайте зачем, я так решил, памяти с избытком). В Н7 есть возможность настроить прерывание по длительности паузы во входящем потоке. Время паузы можно регулировать. Размер принимаемых данных DMA настраивается на размер массива данных. Когда сработает прерывание по паузе приема смотрим какой в DMA остаток. Отсюда получаем размер принятых данных. После обработки принятого запроса надо опять восстановить размер принимаемых данных в DMA, а для этого его надо выключить, а затем снова включить Я не так хорошо знаю английский и часто прибегаю к помощи on-line переводчика.
  9. Dmamux stm32g030

    В Reference Manual на микроконтроллере четко описана процедура настройки (перенастройки) и не описывается почему именно так надо делать. Так же там написано, что сбрасывать флаги надо при выключенном канале. Регистр количества принимаемых данных при каждом принятом байте инкрементируется. А для приема следующей пачки данных значение этого регистра надо опять задать новое. Но пока канал включен регистр количества данных только для чтения
  10. Dmamux stm32g030

    все из примеров ))) STM говорит, что перед настройкой надо выключать. Да, на самом деле, надо дождаться того, что он выключился, но мне похоже повезло и помогло то, что после выключения я еще одну операцию делаю, а потом меняю настройку.
  11. Dmamux stm32g030

    нет, а если вы раньше уже настроили какой-то другой канал и теперь поверх этой настройки пытаетесь внести новую настройку. Я не внимательно посмотрел. Действительно, у Н7 и DMA и DMAMUX начинаются с нуля. А у G0 DMA с 1, а DMAMUX с 0, как выше уже написал Сергей Борщ и как вы сами в этом убедились.
  12. Dmamux stm32g030

    Зачем вы применяете чтение-модификацию-запись ? Мультиплексор не может сразу несколько каналов выбрать. Мультиплексов всегда только один канал выбирает. Поэтому надо просто запись делать. Вы таймер правильно настроили ? Вы GPIO под этот таймер правильно настроили ? С G0 не сталкивался, но в H7 применял для UART. У них DMA и DMAMUX одинаково сделаны. Вот мой вариант приема по UART
  13. А куда подевалась хваленая немецкая точность ? У самого VW 2020 года, но дешевенький. И несколько раз самопроизвольно срабатывала аварийка и два раза это привело к полной разрядке аккумулятора. Вот какого рожна они не предусмотрели защиту от глубокого разряда аккумулятора ? Зато позаботились о подсказчике переключения передач. Да нафига он нужен, я и без них решу когда мне переключаться
  14. Википедия пишет, что 6 из 8 реакторов российские. Канадские как раз по 1000
  15. Это если ток базы меняется. А коллекторный резистор на ток базы не влияет (почти).
×
×
  • Создать...