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.

TLV2548: 不能正确获取CFR值

Part Number: TLV2548

 这是代码,两种方式都时使用过, 先发送0XA000到TLV2548, 再发送0xa102设置寄存器,56位为0:0.     最后使用0x9000读取CFR值,然后读取的值不是上一步写入的0x102。

 读出的值为0xffff。  这是为什么呢?

  • 您好,

    datasheet 13页 有写CFR的时序图,datasheet 11页有读CFR的时序图,建议您用示波器抓下波形,对照看下时序是否正确?

  •  我测量了时钟和cs片选信号,然后使用该代码进行发送和接收数据时,发现cs有从高到低的转换,cs应该是正常的,但是时钟没有信号。这个问题能确定是由spi master controler出现了问题是吗?感谢。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    int main(void)
    {
    int Status;
    int i, j;
    int value;
    u16 sendValue = 0;
    xil_printf("====SPI Selftest Example =======\r\n");
    Status = spi0_init();
    if (Status != XST_SUCCESS)
    {
    xil_printf("SPI0 Selftest Example Failed\r\n");
    return XST_FAILURE;
    }
    Status = spi1_init();
    if (Status != XST_SUCCESS)
    {
    xil_printf("SPI1 Selftest Example Failed\r\n");
    return XST_FAILURE;
    }
    memset(WriteBuffer,0,1024);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 完整代码如下:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #include "xparameters.h"
    #include "xspips.h"
    #include "xil_printf.h"
    #include "sleep.h"
    #include "xspips_hw.h"
    XSpiPs Spi0, Spi1;
    #define SpiPs_RecvByte(BaseAddress) \
    (u8) XSpiPs_In32((BaseAddress) + XSPIPS_RXD_OFFSET)
    #define SpiPs_SendByte(BaseAddress, Data) \
    XSpiPs_Out32((BaseAddress) + XSPIPS_TXD_OFFSET, (Data))
    int spi0_init();
    void spi0_one_write();
    void SpiRead(u8 spiNum, int ByteCount);
    void SpiWrite(u8 spiNum, u8 *Sendbuffer, int ByteCount);
    unsigned char ReadBuffer[1024];
    unsigned char WriteBuffer[1024] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 我刚注意到 TLV2548产品首页的状态标黄了,即此产品已经停产了,请知晓这一点:

    这个问题能确定是由spi master controler出现了问题是吗?

    基本可以确定是spi master的问题,因为TLV2548 的时钟信号是输入,但保险起见建议做以下测试:

    spi master 与 TLV2548 时钟信号之间有电阻吗?有的话,建议去掉电阻即悬空master 时钟输出看下master 时钟是否有输出,这样就排除了TLV2548 对此信号的影响。或直接焊掉TLV2548 芯片去测试。

x 出现错误。请重试或与管理员联系。