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.

[参考译文] CCS/RF430FRL152HEVM:RF430FRL152H NFC 值读取示例代码

Guru**** 2478765 points
Other Parts Discussed in Thread: RF430FRL152HEVM, RF430FRL152H, RF430CL330H, UNIFLASH, DLP-7970ABP

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/687345/ccs-rf430frl152hevm-example-code-of-nfc-value-reading-for-rf430frl152h

器件型号:RF430FRL152HEVM
主题中讨论的其他器件: RF430FRL152HRF430CL330HUNIFLASHMSP-FET430UIFDLP-7970ABPMSP-EXP430G2

工具/软件:Code Composer Studio

您好!

我使用 RF430FRL152HEVM 套件与手机进行 NFC 通信。 我想从手机到 RF430FRL152HEVM 套件执行读写操作。  您能否提供任何基本的示例代码、以便我能够以最少的工作量测试此功能。  

我没有从 TI 网站上找到任何有关此功能的示例代码(固件)。  

谢谢、

Anil Garg

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

    Anil、您好!

    有关 NDEF 示例产品的详细信息、请参阅常见问题 解答的第1.4节:http://www.ti.com/lit/pdf/sloa247

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

    感谢您提供响应和有用的链接。

    1.我尝试了以下路径中的示例:
    slac691f\RF430FRL15xH_projects_v1_5\RF430FRL15xH_projects_v1_5\RF430FRL15xH_projects_v1_5\RF430FRL15xH NFC projects\RF430FRL152H

    我在评估板中对上述代码进行了编程并使用智能手机进行了测试。 我面临的问题是 NFC 标签正在通过智能手机检测并显示标准名称,但未显示数据信息。


    NDEF 存储器:


    //块1
    0x03、// NDEF 消息存在
    0x0B,//长度,11字节
    0xD1、//记录头
    0x01、//类型长度

    //块2
    0x07、//有效载荷长度
    0x55、//记录类型 U (URI)
    0x01、// URI 标头标识符
    0x74、//"t"

    //块3
    0x69、//'i'
    0x2E、//'.'
    0x63、//'c'
    0x6f、//'o'

    //块4
    0x6D、//"m"
    0xFE、// TLV 终端器
    0x00、//空无关
    0x00//空无关
    };

    对 NDEF 存储器进行访问后,从任何读写设备读取后,应在数据字段中显示 TI.com。 我正在使用 Sony Experia M 的智能手机

    同一智能手机正在正确读取 RF430CL330H 评估板中的数据。

    请提供具有主机控制器(SPI/I2C)和 ISO15693接口的 RF430FRL152示例源代码

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

    您在智能手机上使用的是什么应用程序?

    slac691中提供的示例是我们提供的服务范围、可以从这些服务中进一步发展能力。 如果您需要 NFC 功能、则应使用当前项目并根据我们的 SensorHub 项目添加 I2C 代码。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在我的应用中、我使用的是主机控制器、它将使用 I2C 通信向 RF430FRL 控制器写入/读取数据。 智能手机将使用 NFC 通信从 NDEF 存储器读取相同的数据。 我的问题是:
    1.我可以使用相同的 I2C 传感器库来连接主机控制器吗?
    2. ROM 和 FRAM Mamory 有何区别? 块大小的作用是什么?
    3.在上一帖子中提到的示例代码中:如果 TI.com 被写入 NDEF 存储器数据字段,那么为什么它不显示在智能手机屏幕上,即使智能手机每次检测 NFC 标签也是如此。 ?
    4.请与主机控制器和 RF430FRL152/54共享任何接口示例代码,以便更好地理解。

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

    Anil、您好!

    [引用 user="Anil Garg"]1. 我是否可以使用相同的 I2C 传感器库来连接主机控制器?

    并不是传感器库将 RF430FRL152H 设置为主机、而是从机、但您仍然可以了解配置要求。

    [引用 user="Anil Garg"]2. ROM 和 FRAM Mamory 有何区别? 块大小的作用是什么?

    ROM 是只读存储器。 它永远不能被更改、只能被访问。

    FRAM 是非易失性存储器、即使在断电后也能保存数据。 如果您想了解有关 FRAM 的更多信息、此常见问题解答可能很好: http://www.ti.com/lit/ml/slat151/slat151.pdf

    [引用 user="Anil Garg"]3. 在上一个帖子中提到的示例代码中:如果 TI.com 被写入 NDEF 存储器数据字段,那么为什么它不显示在智能手机屏幕上,即使智能手机每次都检测到 NFC 标签。 ? [/报价]

    我也不知道您使用的是哪种智能手机应用程序、我也不知道。 智能手机应用程序的差异太大。 我需要能够用我的手机进行测试、才能提供大量建议。

    [引用 user="Anil Garg"]4. 请与主机控制器和 RF430FRL152/54共享任何接口示例代码、以便更好地理解。
    [/报价]

    抱歉、我们没有此类代码。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Anil Garg
    3.在上一帖子中提到的示例代码中:如果 TI.com 被写入 NDEF 存储器数据字段,那么为什么它不显示在智能手机屏幕上,即使智能手机每次检测 NFC 标签也是如此。 ?
    Ralph Jacobi:同样、我不知道您使用的是哪款智能手机应用程序、我也不知道。 智能手机应用程序的差异太大。 我需要能够用我的手机进行测试、才能提供大量建议。
    Anil Garg:我使用的是智能手机型号 neme "Sony Experia M"。 Android 应用和操作系统:"NFC 工具"。  如果可能、请分享您之前测试过的任何 Android 应用程序。 我将在测试此结果后分享结果。  
    Anil Garg
    4.请与主机控制器和 RF430FRL152/54共享任何接口示例代码,以便更好地理解。

    Ralph Jacobi: 抱歉、我们没有这样的代码。

    Anil:您可以共享代码生成器工具的任何路径吗?  因为在我的应用中实现此功能的时间非常短。  

    5.根据标准 ISO15693,NDEF 存储器的最大长度是多少?

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

    Anil、您好!

    使用我们提供的 Web 示例中的 NDEF 示例项目、我在 Samsung Galaxy S7 Active 设备中使用了以下两个应用程序:

    wakdev 的 NFC 工具(我认为这是您参考的 NFC 工具、因为它是我在 Play Store 中的搜索结果下获得的最重要的结果):

    NFC TagInfo 作者:Michael Roland (Hagenburg Research):

    两个应用程序在读取标签时都没有问题。

    关于代码生成工具、这不是我们拥有的工具、抱歉。

    关于最大 NDEF 大小、由 NFC 论坛而非 ISO15693定义。 我认为它被设置为2^16-1或 65535字节、但我不是肯定的、如果您有兴趣、您必须使用 NDEF 标准进行验证。 但是、该最大值不适用于 RF430FRL15xH 器件、因为它们受可用存储器的限制、因此您可以查看最大3KB 的 NDEF 存储器、也就是说、如果您不使用器件上的任何其他功能。 在开发主机控制器固件后、剩余的空间将是您可以与器件一起使用的最大 NDEF 消息。

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

     大家好、我已经用不同的智能手机尝试过多次、但每次我只能读取已收到的消息(屏幕截图)。 我无法读取数据(TI.com)。  请确认 是否存在用于初始读取 NDEF 存储器的任何硬件设置。 ?

    
    

    您能否与您之前测试过的源代码共享..?

    拉尔夫·雅各比:

    关于最大 NDEF 大小、由 NFC 论坛而非 ISO15693定义。 我认为它被设置为2^16-1或 65535字节、但我不是肯定的、如果您有兴趣、您必须使用 NDEF 标准进行验证。 但是、该最大值不适用于 RF430FRL15xH 器件、因为它们受可用存储器的限制、因此您可以查看最大3KB 的 NDEF 存储器、也就是说、如果您不使用器件上的任何其他功能。 在开发主机控制器固件后、剩余的空间将是您可以与器件一起使用的最大 NDEF 消息。

    Anil:

    1.根据数据表,FRAM 的大小为2KB,那么是否可以将 NDEF 存储器的大小扩展到3KB?   

    2.在 NDEF 消息格式中:长度和有效载荷长度由1个字节的空间分配(如下消息所示),最大长度为255字节。 那么我们如何定义一个变量中大于255字节的 NDEF 存储器?  

    NDEF 存储器:



    //块1
    0x03、// NDEF 消息存在
    0x0B,//长度,11字节
    0xD1、//记录头
    0x01、//类型长度

    //块2
    0x07、//有效载荷长度
    0x55、//记录类型 U (URI)
    0x01、// URI 标头标识符
    0x74、//"t"

    //块3
    0x69、//'i'
    0x2E、//'.'
    0x63、//'c'
    0x6f、//'o'

    //块4
    0x6D、//"m"
    0xFE、// TLV 终端器
    0x00、//空无关
    0x00 //空无关
    };

    示例代码(用于测试):

    main.c:
    
    #include "NDEF.h"
    #include "types.h"
    #include "patch.h"
    #include 
    
    //********* 函数原型******** /
    void DeviceInit(void);
    //******** /
    
    /******* 总结
    *此项目*仅*使用 RF430FRL15xH ROM 上的射频堆栈(ISO15693)。 此设置允许用户创建
    从 FRAM 运行的*自定义应用程序。 只有运行 RF 堆栈
    的 RF13M 矢量需要指向其* ROM 位置。
    *
    
    ////////////////////////////
    *守则空间
    
    *
    *请检查 lnk_rf430frl152h_NFC_only.cmd 文件以自定义用于 NDEF 消息("FRAM_NDEF")
    *或代码("FRAM_CODE")的代码空间量。
    *
    /
    
    /
    *主要内容
    
    *
    *简介:项目条目。
    *
    *帕拉姆[IN]:无
    *
    
    *帕拉姆[OUT]:无
    *
    返回:
    *
    /
    
    void main()
    {
    
    WDTCTL = WDTPW + WDTHOLD; //停止看门狗
    
    // ROM RF13M 模块设置**正确的 RF 堆栈操作需要以下三行
    DS = 1;//需要在此处初始化 ROM 变量
    ASM ("调用#0x5CDA ");//调用 ROM 函数(初始化函数指针)
    asm ("调用#0x5CAC ");//调用 ROM 函数(检查器件配置)
    
    
    initISO15693 (clear_block_locks);//清除所有块锁定
    //initISO15693 (0);//将块锁定保留为在 FRAM 中设置//
    
    JTAG 设置为在该函数中禁用调用
    DeviceInit();
    
    while (1)
    {.}
    //在此处输入应用程序代码...
    __bis_SR_register (LPM3_bits + GIE);
    }
    
    
    /
    *DeviceInit
    
    *
    *简介:初始化时钟系统和其他设置
    * patchable function
    *
    * param[in]:parameters:具有这些独立选项
    * Initialize_device_clock_system -初始化时钟系统
    * populate_interrupt_vector_in_initialization -填充默认中断矢量并重新计算其 CRC
    *
    param[out]:无
    *
    返回无
    *
    *可修补:是
    /
    void DeviceInit (void)
    {
    P1SEL0 = 0xF0;//保留 JTAG
    P1SEL1 = 0xF0;//保留 JTAG
    //P1SEL0 = 0x00;//无 JTAG
    //P1SEL1 = 0x00;//无 JTAG
    
    P1DIR &=~0xEF;
    P1REN = 0;
    
    CCSCTL0 = CCSKEY; //解锁 CCS
    
    CCSCTL1 = 0; //时钟速度不要减半
    CCSCTL4 = SELA_1 + SELM_0 + SELS_0; //为 ACLK 选择 VLO 并为 MCLK 和 SMCLK 选择 HFCLK/DCO
    CCSCTL5 = DIVA_2 + DIVM_1 + DIVS_1; //将 ACLK (4)、MCLK 和 SMCLK 的分频器设置为1
    CCSCTL6 = XTOFF; //如果不使用晶振、则将其旋转
    CCSCTL8 = ACLKREQEN + MCLKREQEN + SMCLKREQEN;//如果未使用时钟、则禁用时钟
    
    CCSCTL0_H |= 0xFF; //锁定 CCS
    
    返回;
    }
    
    
    
    //#pragma vector = RFPMM_vector
    //__interrupt void RFPMM_ISR (void)
    //{
    //}
    //
    ////////#pragma vector = Port1_vector
    //_interrupt Port1_ISR (void)
    //{
    //////// pragma
    
    = SD_ISR/ CONVERSIMP_0/
    
    
    
    
    
    void
    
    
    / SECTION / CONVERSIMP_ADC#BRT =// //注释此行以使用 ROM 的 RF13M ISR,取消注释下一行,请参阅.cmd 文件以了解详细信息
    #pragma CODE_SECTION (RF13M_ISR,".rf13m_ROM_ISR")//注释此行以创建将存在于 FRAM 中的自定义 RF13M ISR,绕过 ROM, 取消注释之前
    的#pragma vector = RF13M_vector
    __interrupt void RF13M_ISR (void)
    {
    //现在该矢量指向运行射频堆栈的 ROMS 固件位置。
    //在此处输入代码将不更改 CODE_SECTION 行
    //上面,而会导致错误。
    //更改上面的代码部分将导致 ROM RF 堆栈被绕过。 需要创建新的处理程序
    。}
    
    //#pragma vector = WDT_Vector
    //_INTERRUPT void WDT_ISR (void)
    //////
    //
    
    ////////#pragma vector = TIMER0_A1_vector
    //_INTERRUPT void TimerA1_ISR (void)
    ////////////////
    
    
    
    
    
    
    
    
    
    
    
    
    
    //////#Sysvector = TIMER0_A1_STRUPT //(void)/SNVA1/nvoid //SNVA1/ISR (void)/SNVA1/nvoid //SNVA1/nvoid //n //SNVA//SNMPLE/SNVA//SNVA//#pragma vector (void
    
    
    
    
    
    
    
    
    //此项目基于 RF430FRL152H。 但是、它也适用于 RF430FRL154H。
    //但是,必须在固件系统控制寄存器中设置 ROM_SENSOR_SUPPOR_DISABLED (或 ROMSensorSupportEnable,请参阅上述两个选项)。 这在 RF430FRL154H 上被自动强制。
    //This setting is needed to disable the ROM which use block 0...(需要此设置来禁用使用块0...) 作为虚拟寄存器、但 NDEF 需要该存储器。
    #define firmware_control_address0xF867
    #pragma RETAIN (Firmware_System_Control_Byte);
    #pragma LOCATION = firmware_control_address
    //此变量需要声明为"volatile"、以便 BlockLockLockROM_Patched 函数正常工作。 但是、可以更改分配。
    volatile const u08_t Firmware_System_Control_Byte = ROM_SENSOR_SUPPING_DISABLED + EROM_EUSCI_SUPPING_DISABLED + NFC_BUTE_BLOCK_BLOCK + FIRST_ISO_PAGE;//0x7F、//此值设置固件系统控制寄存器
    
    // ROM 变量-请勿更改!!!!!!
    //声明不受编译器使用
    的保护/******** /
    #pragma RETAIN (DS)
    #pragma LOCATION = 0x1C00
    u08_t DS;
    #pragma RETAIN (RF)
    #pragma LOCATION = 0x1C6A
    const u08_t RF;
    #pragma RETAIN (NRX)
    #pragma LOCATION = 0x1CA4 //
    const u08_t NRX[34];#pragma
    RETAx (N08
    )#pragma RETAx (NRETAx)#pragma RETAIN = 0x1C12_t RETAx
    
    (N08)#pragma RETAIN = 0x1C12_t RETAx (nT)
    
    
    #pragma RETAIN (PF)
    #pragma LOCATION = 0x1C0A
    const U16_t PF[48];
    /********* /
    
    //*
    这是一条 NDEF 消息:www.ti.com
    *这条消息可以更长的时间并根据需要进行编辑。 但是、它仅限于第一页(大约968字节)、
    *第二页主要用于补丁固件、但也可以通过 NFC 通过正确的命令进行读取。
    //
    
    #define NDEF_START_ADDRESS0xF868
    #pragma RETAIN (NFC_NDEF_Message);
    #pragma LOCATION = NDEF_START_ADDRESS;//地址
    
    const u08_t NFC_NDEF_Message[21]的位置={
    
    //块0
    0xE1、// NDEF 魔法编号
    0x40、//版本号
    、0x779、读取/写入条件// 1008字节/ 8 = 126块
    0x00、//0x04、//8字节扩展存储器//0x00、//不支持读取多个块(仅限于3个块)
    
    //块1
    0x03、// NDEF 消息存在
    0x0B、//长度、11字节
    0xD1、//记录头
    0x01、//类型长度
    
    //块2
    0x07,//有效载荷长度
    0x55,//记录类型 U (URI)
    0x01,// URI 标头标识
    符0x74,//'t'
    
    //块3
    0x69,//'I'
    0x2E,//''。
    0x63、//'c'
    0x6f、//'o'
    
    //块4
    0x6D、//'m'
    0xFE、// TLV 终端
    器0x00、//空无关
    0x00//空无关
    };
    
    /
    *initISO15693
    
    *
    *简介:初始化射频堆栈
    *
    * param[in]:参数-设置 ISO15693 (清除锁定块的选项)的配置
    *
    param[out]:none
    *
    return 「无」
    /
    void initISO15693 (u16_t parameters)
    {
    
    RF13MCTL |= RF13MTXEN + RF13MRXEN + RF13MRFTOEN;//在 RF13M 模块上设置 Rx 和 TX 功能
    //启用中断**请勿更改以下两行,
    这是 RF13MNT 中正确的 RF 堆栈操作所需的|= RF13MRXRXIE + RF13MTOIE;//如果
    
    (参数& clear_block_lock)
    为{,则在 RX 和超时以及过流和欠流检查上启用中断
    memset (((u08_t *) FRAM_LOCK_BLOCK、0xFF、FRAM_LOCK_BLOCK_SAGE_SIZE); //块用零位锁定,清除 FRAM 和 RAM 锁定块
    }
    
    // BlockLockLockLockAPI (3,LOCK_BLOCK);//测试此 API
    //
    // BlockLockLockAPI (3,CHECK_LOCK);//测试此 API
    }
    
    /
    *BlockLockLockAPI
    
    *
    *简介:将块锁定在 FRAM 或 RAM 中。
    *
    * param[in]:block -要锁定的块。 在4字节模式下、这将锁定两个块、具体取决于所选的页面。
    *
    * param[out]:none
    *
    * return 「无」
    /
    u16_t BlockLockLockAPI (u16_t block、u08_t checkLock)
    {
    u16_t locked;
    
    locked = BlockLockLockROM_patched (block、checkLock);
    return locked;
    }
    
    
    
    lnk_rf430frl152h_NFC_only.cmd:
    
    /********* /*
    指定系统内存映射 */
    ********* /
    
    存储
    器{
    SFR :origin = 0x0000、length = 0x0010
    外设_8位 :origin = 0x0010,length = 0x00F0
    外设_16BIT :origin = 0x0100,length = 0x0100
    RAM :origin = 0x1C00,length = 0x1000
    
    ///ROM ISR、起始点、长度不正确
    RF13M_ROM_ISR:origin = 0x54D0,length = 0x0002
    
    //代码区域,可以增加/减少
    // FRAM_NDEF + FRAM_CODE 长度必须等于0x768 (FRAM_NDEF 从0xF868开始)
    //两个段一起位于0xF868-0xFFCF 范围内
    FRAM_NDEF :origin = 0xF868、length = 0x0068 //结束于0xF8CF - NDEF 存储器段
    FRAM_CODE :origin = 0xF8D0,length = 0x0700 //在0xFFCF - Firmware memory 部分结束
    JTAGSIGNATURE :origin = 0xFFD0、length = 0x0004、fill = 0xFFFF
    BSLSIGNATURE :origin = 0xFFD4、length = 0x0004、fill = 0xFFFF
    INT00 :origin = 0xFFE0、length = 0x0002
    INT01 :origin = 0xFFE2,length = 0x0002
    INT02 :origin = 0xFFE4,length = 0x0002
    INT03 :origin = 0xFFE6,length = 0x0002
    INT04 :origin = 0xFFE8、length = 0x0002
    INT05 :origin = 0xFFEA,length = 0x0002
    INT06 :origin = 0xFFEC,length = 0x0002
    INT07 :origin = 0xFFEE,length = 0x0002
    INT08 :origin = 0xFFF0,length = 0x0002
    INT09 :origin = 0xFFF2,length = 0x0002
    INT10. :origin = 0xFFF4,length = 0x0002
    INT11. :origin = 0xFFF6、length = 0x0002
    INT12. :origin = 0xFFF8,length = 0x0002
    INT13. :origin = 0xFFFA,length = 0x0002
    INT14 :origin = 0xFFFC,length = 0x0002
    复位 :origin = 0xFFFE,length = 0x0002
    }/*********
    
    /*
    指定段分配到内存中 */
    ********* /
    
    SECTIONS
    {
    组(all_FRAM)
    {
    组(READ_WRITE_MEMORY)
    {
    .TI.persistent:{} 对于#pragma PERSISTENT *
    .cio :{} /* C I/O 缓冲器 *
    sysmem :{} /*动态内存分配区域*/
    }
    
    组(只读_存储器)
    {
    .cinit :{} /*初始化表 *
    .pinit :{} /* C++构造函数表 *
    init_array :{} /* C++构造函数表 *
    .mspabi.exidx:{} /* C++构造函数表 *
    .mspabi.extab:{} /* C++构造函数表 *
    .const :{} /*常量数据 */
    }
    
    GROUP (可执行文件存储器)
    {
    .text :{} /*代码 */
    }
    }> FRAM_CODE
    
    rf13m_ROM_ISR:{}> RF13M_ROM_ISR 类型= DSECT
    
    .jtagsignature:{}> JTAGSIGNATURE/* JTAG Signature *
    bslsignature:{}> BSLSIGNATURE /* BSL Signature *
    .jtagpassword /* JTAG 密码 *
    
    .bss :{}> RAM /*全局和静态变量 *
    .data :{}> RAM /*全局和静态变量 *
    .TI.noinit:{}>RAM /*用于#pragma noinit *
    堆栈 :{}> RAM (高) /*软件系统堆栈 *
    
    /* MSP430中断矢量 *
    
    int00 :{} > INT00
    .int01 :{} > INT01
    .int02 :{} > INT02
    .int03 :{} > INT03
    .int04 :{} > INT04
    RFPMM :{*(.int05 )}> INT05类型= VECT_INIT
    端口1 :{*(.int06 )}> INT06类型= VECT_INIT
    SD_ADC :{*(.int07 )}> INT07 type = VECT_init
    USCI_B0 :{*(.int08 )}> INT08类型= VECT_INIT
    ISO :{*(.int09 )}> INT09 type = VECT_init
    WDT :{*(.int10 )}>INT10类型= VECT_INIT
    TIMER0_A1:{*(.INT11 )}> INT11 type = VECT_INIT
    TIMER0_A0:{*(.INT12 )}> INT12 type = VECT_INIT
    联合国管理信息系统 :{*(.INT13 )}> INT13类型= VECT_INIT
    SYSNMI :{*(.int14)}> INT14类型= VECT_INIT
    .reset :{} >复位/* MSP430复位矢量 */
    }/
    
    ********* /*
    包括外设内存映射 */
    ********* /-l
    
    rf430frl152h.cmd 

    谢谢、

    Anil  

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

    Anil、您好!

    这个结果让我认为标签没有正确加载或实施 NDEF 项目。 您是否对其进行了任何更改?

    使用的示例工程位于:

    [系统位置]\slac691f\RF430FRL15xH_projects_v1_5\RF430FRL15xH_projects_v1_5\RF430FRL15xH_projects_v1_5\RF430FRL15xH NFC projects\RF430FRL152H

    关于 NDEF 空间、很抱歉我在 FRAM 上的拼写错误、我的意思是最大2kB 的空间。

    我还应该提到、如果 NDEF 数据可能是易失的(即断电时消失)、则也可以使用4KB RAM、尽管这可能需要电池供电的应用。

    [引用 user="Anil Garg"] NDEF 消息格式:长度和有效载荷长度由1字节空间分配(如下消息所示),最大长度可达255字节。 那么我们如何定义一个变量中大于255字节的 NDEF 存储器?  [/报价]

    NDEF 消息的 NFC 论坛规范概述了如何声明大于255字节的 NDEF 消息。 请参阅它们、了解消息的结构如何支持大于255字节的数据。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1.根据 NDEF 存储器,我在以前的邮件中与您共享:消息应该显示 TI.com,但根据您共享的屏幕快照,它显示 http://www.ti.com。如果我们引用相同的源代码,为什么会出现一些差异?

    2.我正在使用 Code Composer Studio 7.3.0 IDE。 我已将 CCS 源代码导出到一个目录中,成功地遵循并使用 MSP FET430UF 进行编程。 同样、我也通过使用 UNIFLASH 工具进行编程进行了改进。 开关 S6位置保持在电源位置。 SV7跳线短路。 我已经用 USB、JTAG 以及射频电源进行了改进。 我对不同智能手机重复了相同的过程、并收到与您共享的相同结果。


    我不知道确切的原因,为什么它不能正常工作?

    谢谢、

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

    Anil、您好!

    您发送的屏幕截图未显示任何数据。

    如果您想知道为何选择 http://www.ti.com 而不是 TI.com、这很容易解释。

    NDEF 消息的这一部分就是为什么:

    0x55、 //记录类型 U (URI)
    0x01、 // URI 标头标识符 

    映射到 http://www/的 URI 标识符代码为0x01。 因此、 请访问 http://www。 由于用作 NDEF 消息一部分的 URI 标识符、Android 应用程序会自动附加信息。

    有关更多详细信息、请参阅 URI 消息的官方 NDEF 规格。

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

    我使用的是 Code Composer Studio 7.3.0 IDE。 我已将 CCS 源代码导出到一个目录中,成功地遵循并使用 MSP FET430UF 进行编程。 同样、我也通过使用 UNIFLASH 工具进行编程进行了改进。 开关 S6位置保持在电源位置。 SV7跳线短路。 我已经用 USB、JTAG 以及射频电源进行了改进。 我对不同智能手机重复了相同的过程、并收到与您共享的相同结果。

    请提供故障排除的任何指导。 任何开关位置问题????  或任何链接器文件问题?? 或其他东西??

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

    Anil、您好!

    我不完全理解问题、但 EVM 用户指南的第2.3节介绍了正确的开关设置、这可能会有所帮助 :http://www.ti.com/lit/ug/slau607b/slau607b.pdf

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经完成了。 我还能对评估板产生疑问吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Anil、您好!

    我再次通读您的主题、我发现问题所在存在很多冲突。

    我已经看到您说过、从您无法读取 NDEF 到获得 http://www.ti.com 的所有内容

    现在到底有什么问题? 它与此帖子的屏幕截图是否相同: e2e.ti.com/.../2541323 、您可以在其中读取标签、但不存在 NDEF 数据?

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

    我收到了 TI 的评估套件 RF430FRL152HEVM。 在使用 默认程序(随评估板提供)通过智能手机(采用 NFC 工具应用的 Sony Experia M)进行 NFC 通信测试期间、我被发现只能读取标签信息 、而不能读取 NDEF 存储器。  

    然后、我使用 MSP FET 430对控制器进行了重新编程(通过以下示例路径中给出的源代码对 CCS 7.3.0进行编程)、但仍然面临 相同的问题。  

    以下路径中的示例:

    slac691f\RF430FRL15xH_projects_v1_5\RF430FRL15xH_projects_v1_5\RF430FRL15xH_projects_v1_5\RF430FRL15xH NFC projects\RF430FRL152H

    等待您的建议。

    谢谢、

    Anil

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

    您是否拥有使用 RF430FRL152HEVM GUI 所需的硬件? 我们可以检查是否使用该设置进行了正确编程。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的。。。 我使用"MSP430 USB-Debug-Interafce MSP-FET430UIF"对卡进行编程。 请查看下面的设置和配置屏幕截图。  

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

    Anil、您好!

    我的意思是 RF430FRL152HEVM GUI、它需要一个读取器器件以及以前可用的 TRF7970AEVM、或者现在需要具有 MSP-EXP430G2 LaunchPad 的 DLP-7970ABP。

    GUI 如下图所示:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    否。 我没有使用任何 GUI、因为读取器设备不可用... 是否有这种可靠性?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Anil、您好!

    通常情况下、但我不知道调试此问题的另一种方法。 您是唯一遇到该示例问题的人、我没有解释为什么、也无法在此处重新创建。 GUI 将帮助我提供一些更多信息、以便找出问题所在。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Ralph:

    我仍然在寻找问题的解决方案。

    我使用不同的智能手机(如 Sony Experia M、Samsung Galaxy 等)以及不同的 Android 应用(如 NFC 工具、NFC 读取器等)进行了测试,并使用经过测试的评估板(由 TI 班加罗尔团队测试的 RF430FRL152HEVM 套件)进行了测试。 但在我的最后、我无法阅读 NDEF 记录并获得与之前在记录通信中共享的相同结果。

    我想知道,是否存在与 Android 版本或手机支持相关的问题? 因为这两款手机都支持 NFC,并且我能够成功读取 ISO 1443-4标签(RF430CL330H)的 NDEF 数据。

    如果需要,我还可以共享测试 vedio。

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

    Anil、您好!

    有时、由于每部手机都运行自己的 NFC 堆栈、因此与 Sony、Samsung、Google 和 LG 的操作会有一些差异、但这很少影响标签读取。 通常、这仅影响对等和卡仿真等 NFC 模式。

    连接许多智能手机的一个因素是、RF430FRL152H 默认为8字节模式、除非编程为4字节模式、并非所有电话都支持8字节模式的读取。 但是、我们的固件示例随附的 NDEF 示例会处理将器件设置为4字节模式的问题、因此如果正确使用该模式、这不会是问题。 使用 RF430FRL152HEVM GUI 将有助于非常轻松地识别这一点、因为 GUI 仅适用于8字节模式、如果您尝试在4字节模式下读取寄存器、则会弹出一条警告。

    您可以随意与几部手机和应用程序共享视频、我可以评论我在这些手机和应用程序上看到的内容。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我正在使用的手机是2013型号 它是否支持 IEC 15693 NFC 标准?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Anil、您好!

    虽然我不知道 ISO15693的 NDEF 定义如何、但这可能是原因? 我在2013年没有从事 NFC 工作,所以无法肯定地说:)

    您能否尝试使用过去2-3年的任何电话?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ralph、

    感谢您的宝贵意见和支持。  

    问题与手机阅读器的兼容性有关、符合 IEC15963标准。  

    现在工作正常。  

    更多查询:

    在 RF430FRL15x MSP 控制器中声明任何全局 RAM 变量的过程是什么? ? 我可以使用任何全局变量声明局部变量,但无法访问 RAM。 为什么?

    2.如何使用射频空气编程功能? 我想使用在示例代码中生成的.out 文件对 RF430FRL15x 控制器进行编程。我已经使用    GUI 应用程序尝试使用 DLP-7970ABP 和 MSP-EXP430G2 LaunchPad (您在上次通信中提出了建议)。  

    谢谢、

    Anil

     

    谢谢、

    Anil

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

    您能否为这些查询启动新的主题? 此主题已经很长了、这两个问题都与主题不一致。