主题中讨论的其他器件: HALCOGEN
大家好、
我最近开始使用 TMS570LC4357的 ESM 模块。 我正在寻找一些详细说明或示例来配置和生成错误来检查 ESM 功能、因为我没有得到预期的结果。
在阅读手册和论坛中提出的注入 DCC 错误并检查 ESM 功能的问题后、我遵循的步骤:
Halcogen 配置:







代码:
/** @file HL_sys_main.c
* @brief Application main file
* @date 11-Dec-2018
* @version 04.07.01
*
* This file contains an empty main function,
* which can be used for the application.
*/
/*
* Copyright (C) 2009-2018 Texas Instruments Incorporated - www.ti.com
*
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the
* distribution.
*
* Neither the name of Texas Instruments Incorporated nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/* USER CODE BEGIN (0) */
/* USER CODE END */
/* Include Files */
#include "HL_sys_common.h"
/* USER CODE BEGIN (1) */
#include "HL_het.h"
#include "HL_gio.h"
#include "HL_reg_gio.h"
#include "HL_dcc.h"
#include "HL_reg_dcc.h"
#include "HL_esm.h"
#include "HL_reg_esm.h"
#include "HL_hal_stdtypes.h"
/* Standard includes. */
#include <stdio.h>
#include <stdlib.h>
/* USER CODE END */
/** @fn void main(void)
* @brief Application main function
* @note This function is empty by default.
*
* This function is called after startup.
* The user can use this function to implement the application.
*/
/* USER CODE BEGIN (2) */
uint64 channel_status;
uint32 ErrPin_State;
void delay(void);
void blinky(void);
/* USER CODE END */
int main(void)
{
/* USER CODE BEGIN (3) */
int i;
ErrPin_State=3U;
esmInit(); // Initializing the ESM driver
dccInit(); // initializes the DCC module
gioInit(); // Initializes the GIO module
gioSetDirection(gioPORTB, 0xff); // Setting port B direction as output
esmActivateNormalOperation(); // Activates normal operation mode
dccEnable(dccREG1); // This function enables the dcc counters to begin counting.
dccSetCounter0Seed(dccREG1,0U); // sets the seed value for Clock source 0 counter.
dccGetErrStatus(dccREG1); // Returns the error status of selected dcc1
esmSetCounterPreloadValue(ESM_LTCPR_CONFIGVALUE); // Setting counter pre-load value (esmREG->LTCPR = value & 0xC000U;)
esmEnableInterrupt(esmCHANNEL30); // Enabling Group-1 Channels Interrupts
esmSetInterruptLevel(esmCHANNEL30,1); // Setting Group-1 Channels Interrupts levels for channels 0-63.
channel_status = esmGetStatus(esmGROUP1,esmCHANNEL30); // Return's the channels status of group1
// 0 - No error, no interrupt is pending 1 - Error occurred, interrupt pending
ErrPin_State = esmError();
//esmTriggerErrorPinReset();
/* USER CODE END */
return 0;
}
/* USER CODE BEGIN (4) */
/* USER CODE END */
我正在测试一些用于监控组1中 ESM 标志的代码。 由于该误差、引脚状态始终为高电平。
如何在 ESM 中注入 DCC 错误?



