Jump to content

    

Mysteo

Свой
  • Content Count

    394
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Mysteo

  • Rank
    Местный
  • Birthday 01/05/1991

Старые поля

  • Vkontakte
    Array

Информация

  • Город
    Array

Контакты

  • Skype
    Array

Recent Profile Visitors

1898 profile views
  1. Кажется в нашем регионе именно такой случай. Звоню с МТС на Йоту.
  2. Здравствуйте! Делаю звонилку для офисных нужд на различных модемах. Не могу понять как идентифицировать сброс вызова. Если ответная сторона просто сбрасывает вызов, то оператор начинает сообщать "Абонент сейчас недоступен оставьте сообщение", в данный момент команда AT+CLCC сообщает что вызов сейчас активный и что на ответной стороне трубка поднята А если ответная сторона берет трубку и после этого сбрасывает, то модему прилетает NO CARRIER и я могу распознать что вызов сбросили.
  3. To minimize crosstalk, TI recommends to keep high-speed signals away from each other. Each pair should be separated by at least 5 times the signal trace width. Separating with ground as depicted in the layout example also helps minimize crosstalk. Вот что написано. Сигнальная линия это обычные GPIO ? Или все же имеется в виду ширина диф линии ?
  4. Теперь по диф паре D+ D- созрел вопрос: в рекоммендациях сказано, что расстояние между линиями должно быть не менее 5 * толщину проводника. Но тогда как добиться 90 Ом импеданса если с увеличением расстояния между дорожкам , импеданс увеличивается? Параметры высоту дорожки и высоту изоляции взял с JLCPCB
  5. Тоже хотел про диф пары спросить. Но пока из не понятного это как достичь импеданса 90 Ом. Вроде как онлайн калькуляторы есть, которые в зависимости от характеристик платы и длины дорожки выдают ширину проводника. До этого по позже доберусь. Спасибо. Что-то не обратил внимания.
  6. Здравствуйте! Пришлось проектировать USB Hub на микросхеме TUSB4041I увидел в даташите следующую картину: Вижу что экран USB разъема соединен с землей через 1МОм резистор, взял несколько готовых USB хабов , там корпус USB напрямую с землей звонится. Как делать правильно? И как располагать полигон экрана на плате ?
  7. Здравствуйте! Приобрел данный набор для изучения ZigBee и сразу же попал в какую-то не логичную ситуацию. STM предоставляет в паке STM32Cube_FW_WB примеры приложений ZigBee для Nucleo и USB Dongle. Открываю первый попавшийся пример из P-NUCLEO-WB55.USBDongle - ZigBee_MeterId_Server_Coord. Читаю readme : For this application it is requested to have: - 1 STM32WB55xx (Nucleo or USB dongle) board loaded with: - wireless coprocessor : stm32wb5x_Zigbee_FFD_fw.bin - application : Zigbee_MeterId_Server_Coord - 1 or more STM32WB55xx board loaded with: - wireless coprocessor : stm32wb5x_Zigbee_FFD_fw.bin - application : Zigbee_MeterId_Client_Router Четко сказано , что нужно залить стэк stm32wb5x_ZigBee_FFD_fw.bin в донгл. Но проблема в том , что ZigBee стеки урезанный RFD и полный FFD занимают больше 256 килобайт флэши и в DONGLE данный стек никак не залить, к тому же в документации в радиостекам написано, что нельзя ZigBee прошить. Получается, что на одном наборе нельзя ничего с ZigBee провернуть ?
  8. Уже нашел, не хватало выхода из данной функции при закрытии TCP. Почему то без оптимизации нормально работало все) tcp_recv_func(void *arg, struct altcp_pcb *pcb, struct pbuf *p, err_t r) { if (p == NULL) { r = altcp_close(pcb); if (r != 0) { return r; } return ERR_OK; }
  9. В общем проблема то была не в буте , а в том что когда билд создается под Release , была включена оптимизация по скорости, а когда Debug то оптимизация отключена. Вот собственно и все)
  10. Что то совсем ничего не понимаю. Убрал условие if (updateKey == START_FIRMWARE_SIGNATURE) и сразу прыгаю в основное приложение. В основном приложении снова ловлю hard fault после того как TCP соединение закроется. Закомменчу MX_USART3_UART и SystemClock_Config , код уменьшается до 6 килобайт FLASH и все работает нормально. Создаю переменную в программе Boot static const uint8_t test[4000] , размер FLASH программы бут 10 килобайт, заливаю. С основной программой никаких проблем нет. Адреса BOOT и основной программы не переплетаются ни сколько.....не пойму что за фигня.
  11. В общем добавил я _no_init переменную все работает. Но опять основная программа в hard fault падает после того как TCP соединение закроется. if (updateKey == START_FIRMWARE_SIGNATURE) { JumpToApplication(); } /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_USART3_UART_Init(); MX_CRC_Init(); /* USER CODE BEGIN 2 */ HAL_UART_Transmit(&huart3, bootHelloWord, (sizeof(bootHelloWord)-1),1000); updateKey = START_FIRMWARE_SIGNATURE; HAL_NVIC_SystemReset(); Вот сейчас элементарно вот такой кусок программы работает. По идее после HAL_NVIC_SystemReset вся периферия должна была сброситься и никаких проблем в основной программе не должно быть. Но если я закомменчу SystemClock_Config , MX_GPIO, MX_USART3 то все работает нормально
  12. Вот как , не знал о такой фишке. Спасибо. И что если значение в данной секции изменить и сделать перезагрузку МК , значение не изменится?
  13. данная секция noinit находится во FLASH? Если же эта секция в SRAM то после перезагрузки же там снова появится дефолтное значение?
  14. Спасибо, да заметил, что дело в SystemClock_Config(); не смотря на то что в Bootloader'е и основной программе одно и тоже сконфигурированно, но если закомментить в буте настройку тактирования SystemClock_Config(); то основная программа работает нормально. Да вроде бы правильно перенос векторов выполнил. В файле основной программы в system_stm32f4xx.c указал #define VECT_TAB_OFFSET 0x8000 Я использую CLion , раньше трудился в Keil Uvision
  15. Что-то у меня большие проблемы все равно после перехода из бута в основную программу. Не понимаю как нормально отдебажиться. Так как бутлоадер и основная программа по сути два разных проекта. Вижу только что в hard fault программа падает после того как TCP соединение закроется. А что не так, не пойму. Если загружаться без бутлоадера, то программа работает без проблем. В основной программе FreeRTOS используется, может что не учел после перехода из бут ? То есть у Вас алгоритм примерно такой: Основное приложение хочет обновиться и в RAM выставляет определенные значения, после чего выполняется переход в Boot без сброса микроконтроллера?