This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] DLP-7970ABP:DLP-7970ABP

Guru**** 2393725 points
Other Parts Discussed in Thread: TRF7970A

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1444088/dlp-7970abp-dlp-7970abp

器件型号:DLP-7970ABP
Thread 中讨论的其他器件:TRF7970A

工具与软件:

您好!

我正在使用 stm32l0开发 RFID 读取器 TRF7970a 芯片、我现在遇到的问题是我好像初始化芯片有误、因此不会发出射频场。 首先、电源状态良好、因为绿色 LED 亮起、通过 SPI 在 STM32和 trf 之间进行通信的情况良好、因为我可以写入寄存器、然后读取它、所有这些都匹配。 问题是、代码开始工作前一周、我可以在示波器上看到射频场、但现在没有变化、但不会发出射频场...

如果有任何帮助、将不胜感激。

int main(void)
{

  /* USER CODE BEGIN 1 */

  /* 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_USART2_UART_Init();
  MX_TIM22_Init();
  /* USER CODE BEGIN 2 */
  SLAVE_SELECT_LOW;
  HAL_Delay(2);
  SLAVE_SELECT_HIGH;
  // Wait until TRF system clock started
//  HAL_Delay(5);

  //set the enable Pin high
  TRF_DISABLE;
  HAL_Delay(4);
  TRF_ENABLE;

  // Set up TRF initial settings
  TRF79xxA_initialSettings();
  TRF79xxA_setTrfPowerSetting(TRF79xxA_3V_FULL_POWER);
  // Initialize all enabled technology layers
  NFC_init();

//  TRF79xxA_writeRegister(0x00, 0x20);

  log_message("Chip Status control register ");
  log_byteAsBits(TRF79xxA_readRegister(0x00));
  log_message("\r\n");
//  test_NFRFID_SPI_Communication();
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  TRF79xxA_turnRfOn();
//
  log_message("Chip Status control register ");
  log_byteAsBits(TRF79xxA_readRegister(0x00));
  log_message("\r\n");

  log_message("IRQ register ");
  log_byteAsBits(TRF79xxA_readRegister(TRF79XXA_IRQ_STATUS));
  log_message("\r\n");

  log_message("RSSI levels register ");
  log_byteAsBits(TRF79xxA_readRegister(TRF79XXA_RSSI_LEVELS));
  log_message("\r\n");

//  IRQ_ON;
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
	  NFC_findTag();

//	  HAL_Delay(1000);
  }
  /* USER CODE END 3 */
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="632816" url="~/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1444088/dlp-7970abp-dlp-7970abp "]正确的是、在代码运行一周前、我可以在示波器上看到射频磁场、但现在没有发生任何变化、但也没有发出射频磁场...

    您好!

     您是说一周前对现有代码运行良好、但突然它不再运行吗?

     为了找出问题所在、您可以在另一块电路板上运行相同的代码吗? 希望您有另一个板可供尝试。 这将使我们对发生的事情有一个很好的了解。 如果另一个电路板出现同样的问题、则可能是您的代码造成的。 您可能想要查看是否可以回忆上周以来对代码所做的任何更改。 希望您对代码有一定的版本控制、以返回到早期版本。 如果另一个板使用相同的代码、但不是当前板、则该板与当前板有关。  

     请注意、这是美国本周的公共假日。 请预计回复延迟。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我设法解决了问题、并且至少让射频场工作。 现在问题是当我尝试读取任何转发器时、什么都没有发生。 没有 LED 亮起、不产生中断、中断状态寄存器中没有任何内容。 我正在使用 TI TRF7970库中的函数 NFC_findTag ()、我希望它开箱即用、但没有。 然后、我尝试自行发送原始字节进行检查、但在使用 TRF79xxA_setupInitiator (0x88)在数据表中找到读取协议标签的步骤后出现问题  

    g_pui8TrfBuffer[ui8Offset++] = 0x8F;				// Reset FIFO
    	g_pui8TrfBuffer[ui8Offset++] = 0x90;				// Send without CRC
    	g_pui8TrfBuffer[ui8Offset++] = 0x3D;				// Write Continuous
    	g_pui8TrfBuffer[ui8Offset++] = 0x00;				// Length of packet in bytes - upper and middle nibbles of transmit byte length
    	g_pui8TrfBuffer[ui8Offset++] = 0x0F;				// Length of packet in bytes - lower and broken nibbles of transmit byte length
    	g_pui8TrfBuffer[ui8Offset++] = ui8Command;		// Send the polling command from function input - either REQA (0x26) or WUPA (0x52)
    
        TRF79xxA_writeRaw(&g_pui8TrfBuffer[0], ui8Offset);	// Issue the ISO14443A Polling Command

    我确信我使用的应答器大多为 NFCa、并且为 ISO14443a 设置了 ISO 控制寄存器、但我遗漏了一些其他步骤? 我可以在数据表中的哪里找到它们?

    P.S.很抱歉 在度假期间打扰了 U、我来自欧洲。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我认为问题在于、当我通过 SPI 发送命令 REQA 时芯片未发送命令、示波器上找不到命令 REQA。 我的步骤是->启用 RF 场、将 ISO 寄存器设置为 ISO14443A、然后根据上面的回复发送命令。