[i] Запуск микросхем MDR1215LGI

ID статьи: 55472
Дата последнего изменения: 01.11.2024 16:50:38

Микросхемы MDR1215LGI функционально аналогичны микросхемам MDR1206FI за исключением корпуса (и внутренней разварки выводов), а также некоторых особенностей, которые описаны ниже. 

В рамках данной статьи приводится базовая информация для использования микросхем MDR1215LGI.

1. Создание и запуск проекта HelloWorld в IDE Eclipse и IAR EW for RISC-V, особенности работы

Вся информация из статей [i] Создаем проект для МК MDR1206FI, MDR1206AFI в IDE Eclipse и [i] Создаем проект для МК MDR1206FI, MDR1206AFI в IAR EW for RISC-V касательно микросхем MDR1206FI применима к MDR1215LGI, поэтому по части установки ПО и настройки проекта следует ориентироваться на информацию из этой статьи. 

При подключении отладчиком к микросхеме по JTAG выводы микросхемы в функции JTAG должны быть стандартно доопределены до высокого уровня внешними резисторами доопределения от 4,7 кОм до 10 кОм с учетом того, чтобы эти подтяжки не влияли на работу системы.

Основные отличия относительно MDR1206FI, на которые стоит обратить внимание:

Код базового примера "HelloWorld" с переключением выводов PD5, PD7 при использовании SPL MDR32VF0xI v0.1.0 приведен ниже:

/* Includes ------------------------------------------------------------------*/

#include "MDR32VF0xI_config.h"

#include "MDR32VF0xI_rst_clk.h"

#include "MDR32VF0xI_port.h"


/* Private define ------------------------------------------------------------*/

#define LED_PORT MDR_PORTD

#define LED_PORT_CLK RST_CLK_PCLK_PORTD

#define LED_PIN_1 PORT_PIN_7

#define LED_PIN_2 PORT_PIN_5


/* Private variables ---------------------------------------------------------*/

PORT_InitTypeDef PORT_InitStructure;


uint32_t DelayCnt = 0;


/* Main function */

int main()

{

    RST_CLK_DeInit();

    for (uint32_t i = 0; i < 1000000; i++) {}

    RST_CLK_HCLK_ClkSelection(RST_CLK_CPU_HCLK_CLK_SRC_HSI);


    RST_CLK_PCLKCmd(LED_PORT_CLK, ENABLE);


    PORT_StructInit(&PORT_InitStructure);

    PORT_InitStructure.PORT_Pin = (LED_PIN_1 | LED_PIN_2);


    PORT_InitStructure.PORT_Direction = PORT_DIRECTION_OUT;

    PORT_InitStructure.PORT_Function = PORT_FUNCTION_PORT;

    PORT_InitStructure.PORT_Mode = PORT_MODE_DIGITAL;

    PORT_InitStructure.PORT_Power = PORT_POWER_NOMINAL_UPTO_2mA;

    PORT_Init(LED_PORT, &PORT_InitStructure);


    PORT_SetBits(LED_PORT, (LED_PIN_1 | LED_PIN_2));


    while (1) {

          if (DelayCnt++ >= 0x00010000) {

                DelayCnt = 0;

                PORT_ToggleBit(LED_PORT, (LED_PIN_1 | LED_PIN_2));

          }

    }

}


2. Использование выводов GPIO, совмещенных с JTAG

При разрешенной работе порта JTAG количество доступных для использования выводов GPIO у микросхем MDR1215LGI ограничено двумя выводами (PD5 и PD7). Их количество можно расширить до 6 за счет отключения JTAG. Аппаратно отключение JTAG осуществляется с помощью сброса в 0 бита BKP_LDO.JTAG_ON батарейного домена. Для записи в данный бит предварительно необходимо разрешить тактирование блока BKP в регистре PER2_CLOCK контроллера тактовой частоты и записать ключ 0x8555AAA1 в регистр BKP_WPR батарейного домена. После отключения JTAG выводы PA6-PA9 можно настраивать в требуемую функцию. 

Но важно понимать, что отключение JTAG исполняемым из Flash-памяти ПО может повлечь за собой полную потерю возможности подключения по JTAG в дальнейшем. Поэтому перед отключением JTAG для возможности подключения к микроконтроллеру отладчиком в начале основной программы необходимо выставить достаточную задержку (например, 1 секунду), чтобы был временной промежуток между подачей питания и отключением JTAG.

Контактная информация

Сайт:https://support.milandr.ru
E-mail:support@milandr.ru
Телефон: +7 495 221-13-55