Ответы пользователя по тегу STM
  • Как перезаписать System memory в STM32F40x?

    AlanDrakes
    @AlanDrakes
    Никак. Загрузчик НЕ перезаписывается.

    Раздел 3.2.1 - Flash Memory Organization
    <...>
    The information block is divided into two parts:
    1. System memory: used to boot the device in System memory boot mode. The area is
    reserved for use by STMicroelectronics and contains the boot loader which is used to
    reprogram the Flash memory through the selected communication interface. It is
    programmed by ST when the device is manufactured, and protected against spurious
    write/erase operations. For further details, please refer to AN2606.

    Информационный блок разделён на две части:
    1. Системная память: Используется для загрузки устройства в режиме загрузки из Системной Памяти. Эта область зарезервирована STMicroelectronics и содержит загрузчик, который используется для перепрограммирования Flash памяти через выбраный коммуникационный интерфейс. Эта область запрограммирована ST, когда устройство произведено, и защищена от ложных операций записи/стирания. Для уточнения информации обратитесь к AN2606.

    Начало AN2606:
    Introduction
    The bootloader is stored in the internal boot ROM memory (system memory) of STM32
    devices. It is programmed by ST during production. Its main task is to download the
    application program to the internal Flash memory through one of the available serial
    peripherals (USART, CAN, USB, I2C, SPI, etc.). A communication protocol is defined for
    each serial interface, with a compatible command set and sequences. This document
    applies to the products listed in Table 1. They are referred as STM32 throughout the
    document.

    Загрузчик записан во внутреннем boot ROM памяти (системной памяти) контроллеров STM32

    Собственно, дальше переводить смысла нет).
    Ответ написан
    2 комментария
  • Где подробно описывается GPIO STN32?

    AlanDrakes
    @AlanDrakes
    Reference Manual - самый подробный вариант описания.
    Пользуюсь именно этим документом всегда.
    Ответ написан
    Комментировать
  • Почему в половинном прерывании DMA на HAL STM32 кольцевой буфер со значениями АЦП заполнен уже полностью?

    AlanDrakes
    @AlanDrakes
    1. Попробуйте уменьшить скорость выборки данных.
    2. Попробуйте увеличить количество выборок в буфере, так как можете просто не успеть среагировать на прерывание при малом размере буфера. Точнее, обработчик запустится, но может уже настать момент прерывания по заполнению буфера.
    3. Прерывание дейсвтительно будет генерироваться, когда буфер заполнен на половину.
    Попробуйте ещё быстрый вывод в консоль - тогда будет точно понятно, что где произошло.

    upd:
    Кстати, а точно срабатывают прерывания по половине передачи и полной? Есть подозрение..
    Ответ написан
    1 комментарий
  • Какой выбрать LCD дисплей или LED-матрицу для статичного отображения?

    AlanDrakes
    @AlanDrakes
    Ну у Вас и задачка.
    С разбега на ум приходят только варианты "Купить готовую световую панель" (ну те, что ставят на киоски и которые раздражающе мерцают), и управлять ею. 100% будет видно метров с 10 и больше.
    Высота 10-15 см - это не менее 10" экрана. ПОДОБНОГО для AVR/ARM, да ещё с адекватными ценами я не видел.
    Далее. Вариант светодиодной индикации не рассматривали? В частности, несколько светодиодов разных цветов и их комбинации.
    Зелёный/Зелёный - хорошо. Зелёный/Красный - предупреджение. Красный/Красный - ну всё, каюк.
    Плюс: Быстро "читаются".
    Минус: "Кодирование слова".
    Ответ написан
  • Stm32 SPL или Регистры?

    AlanDrakes
    @AlanDrakes
    Сам пишу на какой-то дикой смеси из вырезок из HAL и самописных регистровых обращений. Вторые преобладают.
    В некоторых местах архитектура самого HAL достаточно странная и ставит буквально в тупик. Например, ETH_HAL_ReceivePacket так и не удалось заставить работать по причине того, что он просто плохо описан.
    Пришлось ваять свои шустрые велосипеды.
    С отправкой было легче, но тоже перехожу на более легковесные свои функции.
    Ответ написан
    Комментировать
  • Как помигать диодиком на stm32l152 DISCO под Linux?

    AlanDrakes
    @AlanDrakes
    Поставьте хотя бы демо-версию Keil'а. Ограничения в 32kB кода для начала будет болчее чем достаточно.
    Готовые примеры так же можно найти в сети.
    Минимальный - настройка GPIO, и через таймер менять состояние пина.
    Например, вот так:
    int main(void) {
    	RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
    	GPIOA->MODER |= 1;	// GPIOA.0.MODE -> out mode
    	GPIOA->OSPEEDR |= 3;	// GPIOA.0.SPEED -> MAX SPEED
    	while(1) {
    		for (uint32_t i=0;i<1000000;i++) {};		// Пауза
    		GPIOA->ODR ^= 1;	// Toggle GPIOA.0
    	};
    };

    Вот этот код будет мигать пином PA0.
    Ответ написан
  • Как выдрать прошивку с МК ST32f1??

    AlanDrakes
    @AlanDrakes
    Если прошивка защищена через Option Bytes:
    tqfp.org/stm32/zashita-ot-schityvaniya-proshivki-s...
    Уровень 1 (Read Protect ) - только обходными манёврами - загрузчик, RAM, запуск из RAM.
    Если же выставлен уровень 2 (No Debug) - то никак. Вообще. Слишком дорого, должно быть, выйдет.

    Stm32xxx - reference manual, раздел 3.3 (Embedded Flash memory -> Memory Protection).
    Ответ написан
    Комментировать