首頁>技術>

Raw transparent output

除錯時,經常採用原始資料輸出模式Raw transparent output。

原始資料輸出引腳PC2/TPRA,用示波器可以直接採集TPRA上的訊號。

從示波器上可以觀察到,雜波訊號上電後就產生,對應中心頻率(433.92MHz)和調製方式(ASK/FSK)後,訊號會產生變化,但不是正常訊號,還需要調整接收波特率才能解析到正確的訊號。

不同波特率的訊號

一般主機定義的鑰匙訊號,發出來的都是相同波特率的訊號。但是也有例外,比如有的主機定義的鑰匙所發出來同一幀訊號,波特率就各不相同,我見過有發波特率是1KHz喚醒幀、0.5KHz同步幀和2KHz資料幀特殊訊號。這樣在設定5781的波特率的時候,只能把對應的波特率設定為2KHz,那麼資料幀對應的就是正常的1個碼元,而喚醒幀則是半個碼元,同步幀是1/4個碼元。於是所解析到的資料需要自重組。

不歸零編碼和曼切斯特編碼

不歸零編碼(NRZ)的傳輸速度是曼切斯特編碼的兩倍。比如,曼切斯特編碼的傳輸速度是9600碼元/秒,那麼如果採用NRZ編碼,傳輸速度就是9600*2 = 19200碼元/秒。

系統的pattern檢測,實際上是按照NRZ碼匹配的,所以設定的時候需要注意對應關係,例如:

wake up 0x55555555

start frame ID 0x55555556

SPI讀寫異常

問題程式碼:

spi_tx_buf[0] = 0x01;

spi_tx_buf[1] = 0x00;

spi_tx_buf[2] = 0x00;

R_CSI00_Send_Receive(spi_tx_buf, 3, spi_rx_buf);

flags_system = spi_rx_buf[0];

flags_events = spi_rx_buf[1];

fill_level = spi_rx_buf[2];

Delay(_T3*30);

ATA5781_SetPIN_CS();

按照這種寫法,SPI將讀不到正確的返回值,因為R_CSI00_Send_Receive(spi_tx_buf, 3, spi_rx_buf);並不是阻塞傳送,實際上執行完了該語句後,硬體上訊號並沒有傳送完全。因此可以將延時提前,解決這個問題,修改程式碼如下:

spi_tx_buf[0] = 0x01;

spi_tx_buf[1] = 0x00;

spi_tx_buf[2] = 0x00;

R_CSI00_Send_Receive(spi_tx_buf, 3, spi_rx_buf);

Delay(_T3*30);

ATA5781_SetPIN_CS();

flags_system = spi_rx_buf[0];

flags_events = spi_rx_buf[1];

fill_level = spi_rx_buf[2];

RX模式下,只能開一個通道

如果同時開啟A和B,接收模組會失效,因此RX模式下只能開一個通道,比如通道A

ATA5781_SET_SYSTEM_MODE(BM_SYS_MODE_CONFIG_VCO_TUNING | OPM_RX, BM_SVC_CH_CONFIG_PATHA);

提高接收模組的適應性

由於汽車鑰匙在生產的過程中,會存在一定的差異性,因此鑰匙本身一般存在頻偏,因此接收端一般會適當地增大接收頻寬(bandwidth)和接收頻偏(FSK),來儘可能提高產品的適應性。

15
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • linux 安裝nodejs