標(biāo)題:
WK2124串口擴(kuò)展芯片資料 STM32程序demo等資料
[打印本頁]
作者:
ybh0123
時間:
2021-9-8 10:41
標(biāo)題:
WK2124串口擴(kuò)展芯片資料 STM32程序demo等資料
WK2124是成都為開微生產(chǎn)的SPI擴(kuò)4路UART的芯片,主接口SPI支持10波特率,有4個獨(dú)立的子串口,每個獨(dú)立的子串口都有256個字節(jié)的發(fā)送FIFO、接收FIFO,特別適合于需要多個串口主機(jī)設(shè)備。資料里有數(shù)據(jù)手冊、原理圖、MCU驅(qū)動、Linux下驅(qū)動等。
1.產(chǎn)品概述
WK2124是SPITM接口的4通道UART器件,WK2124實(shí)現(xiàn)SPI橋接/擴(kuò)展4個增強(qiáng)功能串口(UART)的功能。
擴(kuò)展的子通道的UART具備如下功能特點(diǎn):
每個子通道UART的波特率、字長、校驗(yàn)格式可以獨(dú)立設(shè)置,最高可以提供2Mbps的通信速率。
每個子通道可以獨(dú)立設(shè)置工作在IrDA紅外通信。
每個子通道具備收/發(fā)獨(dú)立的256 BYTE FIFO,F(xiàn)IFO的中斷可按用戶需求進(jìn)行編程觸發(fā)點(diǎn)。
WK2124采用SSOP20綠色環(huán)保的無鉛封裝,可以工作在2.5~5.0V的寬工作電壓范圍,具備可配置自動休眠/喚醒功能。
[注]:SPITM 為MOTOLORA公司的注冊商標(biāo)。
2.基本特性
2.1 總體特性
低功耗設(shè)計,可以配置自動休眠,自動喚醒模式(uS 級喚醒)
超大硬件收發(fā)緩存,支持256級FIFO
寬工作電壓設(shè)計,工作電壓為2.5V~5.0V
精簡的配置寄存器和控制字,操作簡單可靠
提供工業(yè)級
高速CMOS工藝,子串口速率最高可達(dá)2Mbps@5V、1.5Mbps@3.3V、1Mbps@2.5V
采用符合綠色環(huán)保政策的SSOP20無鉛封裝
2.2 擴(kuò)展子通道UART特性
子通道串口獨(dú)立配置,高速、靈活:
每個子串口為全雙工,每個子串口可以通過軟件開啟/關(guān)閉
波特率可以獨(dú)立設(shè)置,子串口最高可以達(dá)到2Mbit/s
每個子串口字符格式包括數(shù)據(jù)長度、停止位數(shù)、奇偶校驗(yàn)?zāi)J娇梢元?dú)立設(shè)置
完善的子串口狀態(tài)查詢功能
可以實(shí)現(xiàn)對單個子串口軟件復(fù)位
FIFO功能:
每個子串口具備獨(dú)立的256級發(fā)送FIFO,發(fā)送FIFO觸發(fā)點(diǎn)可按用戶需求進(jìn)行編程
每個子串口具備獨(dú)立的256接收FIFO,接收FIFO觸發(fā)點(diǎn)可按用戶需求進(jìn)行編程
軟件FIFO使能和清空
FIFO狀態(tài)和計數(shù)器輸出
錯誤檢測:
支持奇偶校驗(yàn)錯,數(shù)據(jù)幀錯誤、溢出錯誤及Line-Break錯誤檢測
支持起始位錯誤檢測
中斷特點(diǎn):
具備子串口接收FIFO超時中斷
支持Line-Break錯誤中斷
內(nèi)置符合SIR標(biāo)準(zhǔn)的IrDA紅外收發(fā)編解碼器,傳輸速度可達(dá)115.2K bit/s
2.3 SPI主接口特性
最高速度10M bit/s
僅支持SPI從模式
SPI模式0
支持最長256字節(jié)連續(xù)收發(fā)
單片機(jī)源程序如下:
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "wk2xxx.h"
#include "wk2xxx_test.h"
#include "spi.h"
#include "exti.h"
/*
目前stm32和WK2XXX 硬件連接關(guān)系
復(fù)位RST:PB8
cs:PA4
clk:PA5
mosi:PA7
miso:PA6
*/
void EXTI1_IRQHandler(void)
{
u8 gifr,rxbuf[256];
int rxlen;
printf("IN EXTI2_IRQ!!!!\n");
/*關(guān)閉LED燈*/
LED1(LED_OFF);
LED2(LED_OFF);
LED3(LED_OFF);
LED4(LED_OFF);
if(EXTI_GetFlagStatus(EXTI_Line1)!= RESET)
{ EXTI_ClearITPendingBit(EXTI_Line1); //清除LINE1上的中斷標(biāo)志位
gifr=WkReadGReg(WK2XXX_GIFR);/**/
do{
if(gifr&WK2XXX_UT1INT)//判斷子串口1是否有中斷
{ /*數(shù)據(jù)處理*/
/*數(shù)據(jù)接收*/
rxlen=wk_RxChars(1,rxbuf);//一次接收的數(shù)據(jù)不會超過256Byte
/*數(shù)據(jù)發(fā)送*/
//把接收的數(shù)據(jù)發(fā)送出去
wk_TxChars(1,rxlen,rxbuf);
}
if(gifr&WK2XXX_UT2INT)//判斷子串口2是否有中斷
{
/*數(shù)據(jù)接收*/
rxlen=wk_RxChars(2,rxbuf);//一次接收的數(shù)據(jù)不會超過256Byte
/*數(shù)據(jù)發(fā)送*/
//把接收的數(shù)據(jù)發(fā)送出去
wk_TxChars(2,rxlen,rxbuf);
}
if(gifr&WK2XXX_UT3INT)//判斷子串口3是否有中斷
{
/*數(shù)據(jù)接收*/
rxlen=wk_RxChars(3,rxbuf);//一次接收的數(shù)據(jù)不會超過256Byte
/*數(shù)據(jù)發(fā)送*/
//把接收的數(shù)據(jù)發(fā)送出去
wk_TxChars(3,rxlen,rxbuf);
// printf("port!!!!\n");
}
if(gifr&WK2XXX_UT4INT)//判斷子串口4是否有中斷
{
/*數(shù)據(jù)接收*/
rxlen=wk_RxChars(4,rxbuf);//一次接收的數(shù)據(jù)不會超過256Byte
/*數(shù)據(jù)發(fā)送*/
//把接收的數(shù)據(jù)發(fā)送出去
//wk_TxChars(4,rxlen,rxbuf);
}
gifr=WkReadGReg(WK2XXX_GIFR);
//printf("IN EXTI2_IRQ GIFR:0X%X !!!\n",gifr);
}while(gifr&0x0f);
printf("IN EXTI2_IRQ over! !!!\n");
}
}
int main(void)
{
//wk2xxx相關(guān)定義
unsigned char dat1,sendbuf[256]={0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0x12};
int len,scr;
LED_Init();
delay_init(); //延時函數(shù)初始化
NVIC_Configuration();// 設(shè)置中斷優(yōu)先級分組
uart_init(115200); //串口初始化為115200
WK_SPI_Init();//初始化SPI總線
/*讀寫GNEA,測試主接口通信是否成功*/
dat1=WkReadGReg(WK2XXX_GENA);
printf("gena=0x%x.\n",dat1);
/*硬件復(fù)位芯片*/
WK_RstInit();
/*初始化子串口*/
Wk_Init(1);
Wk_Init(2);
Wk_Init(3);
Wk_Init(4);
/*設(shè)置子串口波特率*/
Wk_SetBaud(1,115200);
Wk_SetBaud(2,115200);
Wk_SetBaud(3,115200);
Wk_SetBaud(4,115200);
/*使能485*/
//WK_RS485(1);
//WK_RS485(2);
//WK_RS485(3);
//WK_RS485(4);
EXTIX_Init();//初始化CPU外部中斷
while(1)
{ /*打開LED*/
LED1(LED_ON);
LED2(LED_ON);
LED3(LED_ON);
LED4(LED_ON);
delay_ms(10);
Exti_Disable();/*關(guān)閉外部中斷響應(yīng)*/
/*中斷屏蔽區(qū),這樣可以防止中斷響應(yīng)打亂spi的操作時序*/
/*通常在中斷函數(shù)外部操作讀寫寄存器的時候,最好關(guān)斷中斷響應(yīng),但是這個時間也不要過長,過長導(dǎo)致子串口溢出,從而導(dǎo)致數(shù)據(jù)丟失*/
/*如果對于大數(shù)據(jù)需要發(fā)送,一次操作不要超過256,最好不要讓程序阻塞在發(fā)送中*/
//len=wk_TxLen(4);/*判斷子串口4能寫入數(shù)據(jù)的個數(shù)*/
//wk_TxChars(4,len,sendbuf);/*寫入len個數(shù)據(jù)進(jìn)入發(fā)送fifo*/
WkWriteSFifo(4,sendbuf,10);
Exti_Enable();/*開啟外部中斷響應(yīng)*/
}
}
復(fù)制代碼
51hei.png
(4.12 KB, 下載次數(shù): 96)
下載附件
2021-9-8 15:25 上傳
所有資料51hei附件下載:
WK2124 Resources V1.1.7z
(3.76 MB, 下載次數(shù): 47)
2021-9-8 15:27 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
sfd123
時間:
2021-9-8 16:47
如何申請2片樣片試試?
作者:
cmyldd
時間:
2022-5-31 09:59
官方提供的例子啊
作者:
Angle145
時間:
2022-6-3 14:12
cmyldd 發(fā)表于 2022-5-31 09:59
官方提供的例子啊
http://www.torrancerestoration.com/bbs/dpj-220195-1.html
這是我參考官例改的測試過的
作者:
wdmvw
時間:
2022-6-12 10:40
樓上代碼測試有效,讀全局寄存器是0x34,謝謝。能不能放個中斷的代碼出來
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1