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

SimpleSoft

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

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

  • Посещение

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

    2

Сообщения, опубликованные SimpleSoft


  1. 5 hours ago, KPG said:

    SimpleSoft

    Forth (Форт) уже есть портированный на эти платы?

    И какой, если не секрет? 🙂

    GD32F470 on Github - не густо.

     

    P.S. GD32F470 Series (Stretch-Performance) – GD32 ARM Cortex-M4 Microcontrollers

    Возможно ли для  платы из топика  подключать Ардуино шилды?

     

     

    Есть BSP который даёт GigaDevice - GD32F4xx Firmware Library v.3.0.3 и в него добавили поддержку платы.

    Да, вы можете подключать Arduino shields. Надо смотреть какие ноги 5В толерантны.

    • Downvote 1
  2. 26 minutes ago, tonyk_av said:

    Даже ссылку не даёте. Продаваны конченные. Удачи вам!

    И вам хороших выходных)
    Что мешает зарегистрироваться на бесплатный вебинар? Вы и получите ссылку на материалы.

    • Downvote 1
  3. Саму плату можно заказать в Китае - все материалы мы высылаем тем кто зарегистрировался.

    Плату планируем поставлять для тех кто планирует платные курсы с нами.

  4. Добрый день.

    Приглашаю на бесплатный вебинар по теме «Разработка ПО для GigaDevice GD32 семейства. Профессиональный подход.
    Разработка на базе открытого ПО.»
    Ссылка на вебинар: https://go.mywebinar.com/smkx-fnrj-qpbm-kfdb
    Содержание вебинара: https://dab-embedded.com/en/services/webinar-gigadevice-gd32-software-dev-prof/?lang=en

    25.Февраля 2023, 15:00 по Москве
    Длительность 1 час.

    #вебинар #firmware #GD32 #opensource

    • Upvote 1
    • Downvote 1
  5. Я использовал в разных проектах. Он делает возможность сливать инструкции во время выполнения ядром. Дамп регистров конечно не делает в реальном времени но по инструкциям можно просмотреть принятые решения. 

    Я бы сказал что при таких редких глюках как отвал раз в неделю будет сложно копаться в дампе, он будет огромного размера. Там в реальном времени валятся инструкции и сервисная инфа. Например если контроллер работает на 120Мгц то как минимум 240МБ в секунду придут данные. Сами прикидывайте. 

    Я бы посоветовал больше потратить время на воспроизведение глюка в лабораторных условиях и тогда можно отловить. 

  6. Добрый день,

    Используем в новом проекте STM32H750 и Ethernet PHY KSZ8091R - опять вижу в генерированном CubeMX проекте ошибки в работе с D-Cache и естественно сгенерированный проект сразу не запускается (использован STM32H7 MCU pack 1.7.0)

    Мы поправили - но будьте внимательны  - можно легко закопать дни в поиске проблемы.

  7. Добрый день.

    Лучше взять https://www.intrinsyc.com/snapdragon-embedded-development-kits/snapdragon-855-hdk/ 

    Там Hexagon DSP V66x.

    Там в SDK, в примерах есть скрипты которые через ADB закачивают все необходимые файлы на платформу и запускают на cDSP.

    Дебажить у вас на целевой платформе не получится, у них там очень кривой отладчик через ADB.

    Мы купили Lauterbach  с лицензией для Hexagon DSP и с помощью него дебажим на платформе. Но лучше вариант - это симулятор от Lauterbach.

     

  8. On 12/11/2019 at 10:39 AM, diman8911 said:

    то просто перестает читать флешку после нескольких байт

    А сравнивали эти байты с пачкой при плюсовой температуре? Может всёже флешка отдаёт ошибочные данные?

  9. Только увидел сообщение :)

    Было такое - были проблемы с кэшем. На HDD всё ОК, на SSD - бывало проблемы. Не решили - просто перенести на HDD.

    Может у меня не ваш случай - гляньте ProcMon - что IAR делает в это время.

  10. Добрый день

    Наша компания ищет схемотехника готового работать удалённо.

    Задача:

    Необходимо разработать схему с 8-ми канальным ЦАП отвечающий следующим характеристикам:

    1.       Первые 4 выходных канала с возможностью управлять нагрузкой в 100 мА при +12В диапазоне (0..+12В). Точность – 1мВ (выход х Вольт ±1мВ). Допустимый уровень шума – ≤ 15 мкВ (RMS)
    2.       Вторые 4 выходных канала с возможностью управлять нагрузкой в 500 мА при +12В диапазоне. Точность – 25мВ. Допустимый уровень шума – ≤ 1 мВ (RMS)
    3.       Требуемая частота изменения значения на выходах ≥ 500 Гц.
    4.       Схема должна иметь возможность измерять установленный уровень каждого выхода ЦАП с точностью 1мВ (с помощью 8-канального АЦП или АЦП + мультиплексор)
    5.       Шина управления ЦАП и АЦП – желательно SPI (но не критично).
    6.       Индустриальный диапазон температур -40°C to +85°C

    Присылайте ваше предложение по сотрудничеству в личку. 

  11. Спасибо за советы.

    Реализовали предложение чтению данных только если необходимо, т.е. вызываем USBD_CDC_ReceivePacket когда следующие данные реально нужны.

    Действительно помогло.

    Заметили особенность - TeraTerm Ymodem "пихает" пакеты постоянно (видимо маленький таймаут для Write, или ещё что-то, что мы упускаем из виду) - проверено с помощью Com Port monitor на стороне PC, который "слушает" всё что летит от TeraTerm в COM port.

  12. Спасибо всем за ответы.

    18 hours ago, Сергей Борщ said:

    Почему? Вот почему вы не прочитали хотя бы какую-нибудь статью вроде "USB на пальцах"?

    Мы хорошо разбираемся в USB, мой вопрос был про опыт решения на STM32. 

    По поводу не читать USB RX - мы не пробовали, но возник вопрос - а не будет ли STM32 дергать постоянно прерывание о приёме данных? (в Tech Ref не копались) Может кто-то знает как OTG в STM32H7 обрабатывает RX data interrupt?

  13. Добрый день,

    реализуем YModem поверх USB CDC. Тестируем под Win7 с помощью TeraTerm.

    Как только начинается передача пакетов данных от ПК (TeraTerm) в STM32, пакеты данных (по 512) прилетают с такой скоростью, что забивают кольцевой буфер под завязку.
    Посмотрели более детально, TeraTerm (Ymodem TX) повторяет пакеты до тех пор, пока STM32 не пришлёт ACK (тогда шлёт следующий кусок данных).

    Возник вопрос - как "притормозить" приходящие пакеты? Мы рассматривали вариант отключать прерывания USB:

    hpcd_USB_OTG_HS.Instance->GAHBCFG &= ~USB_OTG_GAHBCFG_GINT;

    Но это как-то жестоко, хоть и работает.

    Второй вариант который мы рассматривали - это Flow Control, но отбросили - не всегда его конечный клиент использует, да и потом без него тоже система должна корректно отрабатывать.

    Обработчик который сейчас реализован:

    static int8_t CDC_Receive_HS(uint8_t* Buf, uint32_t *Len)
    {
      /* USER CODE BEGIN 11 */
      USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*)hUsbDeviceHS.pClassData;
      if (hcdc)
      {
        USBD_CDC_SetRxBuffer(&hUsbDeviceHS, Buf);
        USBD_CDC_ReceivePacket(&hUsbDeviceHS);
    
        if (bs_usb_rx_command(Buf, hcdc->RxLength) == 0)
        {
            return (USBD_BUSY);
        }
      }
      return (USBD_OK);
      /* USER CODE END 11 */
    }

    Если функция bs_usb_rx_command не может записать в кольцевой буфер (он полон) данные - возвращаем USBD_BUSY (по сути теряем данные). Но следующие тут же прилетают.

    Поделитесь, пожалуйста, опытом, как вы решали подобную задачу. Спасибо!

    MCU: STM32H743XIH
    STM32CubeIDE Version: 1.0.2
     

×
×
  • Создать...