Module RF CC2500

Rebirth

Cố Vấn CLB
Staff member

Quân Trương

Thành Viên PIF
Ở thanh ghi USICTL0, nếu lúc đầu mình set cho nó là Master Mode ở mạch vdk A, thì mạch B dc set là slave Mode và mạch B sẽ hiển thị nội dung yêu cầu ở Master, vậy nếu tiếp tục từ mạch B nhấn nút để A hiển thị thì set thanh ghi lúc đầu như thế nào ạ ?
 
sẽ không có cách nào khác. vẫn cấu hình cho A là master và B là Slave. Khi B nhận được nút nhấn mà A không yêu cầu B gửi tín hiệu về thì B sẽ không có quyền gủi về. lúc đó muốn A yêu cầu thì B phải báo cho A biết nó có dữ liệu. Chính vì vầy mà trên module RF CC2500 có 2 pin GDO0 và GDO2 sẽ trả về một xung khi có sự kiện xảy ra trên Module RF (ví dụ như Truyền xong dữ liệu, hay đã nhận được dữ liệu). dựa vào sự kiện đó để MCU biết mà yêu cầu module RF gửi tín hiệu về MCU.
 

Quân Trương

Thành Viên PIF
1. Thanh ghi command strobe được sử dụng như thế nào anh ? Những nội dung được giới thiệu trong Table34 là đã được mặc định hay cần phải kích hoạt vậy anh? Em thấy table 34 có STX, SRX để enable TX/RX, vay nếu muốn kích hoạt TX/RX thì sẽ add địa chỉ 0x34 0x35 vô UCA0TXBUF hả anh ?
2. Nếu em em cho data=UCA0TXBUF thì giá trị data sẽ "tự động" vô TXFIFO, rồi khi TXFIFO có được giá trị full sẽ "tự động" Transmitt, rồi bên bộ thu thì RXFIFO nhận được sẽ "tự động" cho vào UCA0RXBUF luôn hay cần có tín hiệu kích hoạt anh ?

Mạch phát:
data=0x0f;

While(!(IFG2& UCA0TXIFG)); //TX buffer ready ?
UCA0TXBUF=data // send data
While (UCA0STAT & UCBUSY) ; //wait TX complete

Mạch thu :
#pragma vector=USCIAB0RX_VECTOR
__interrupt void RX(void)
{
while (UCA0STAT & UCBUSY);
P2OUT=UCA0RXBUF;
}

Nếu là như thế này thì có hoạt động không anh ?

3.Nếu chỉ truyền 1 tính hiệu 1 byte chẳng hạn thì có cần set FIFOTHR ko anh ?

4. Em config GDO2 như thế này đúng ko anh :

While(!(IFG2& UCA0TXIFG)); //TX buffer ready ?
UCA0TXBUF=0x00; // xac dinh thanh ghi IOCFG2
While (UCA0STAT & UCBUSY) ; //wait TX complete
UCA0TXBUF=0X40; // select active low (1) / high (0) -chan Gdo2 =0 khi datatrong TXFIFO hoac RXFIFO da duoc send hoac nhan
While (UCA0STAT & UCBUSY) ; //wait TX complete

Trong datasheet có ghi nếu (GD02 & GDO0 )=1 thì sẽ kích hoạt Transmit/Receive, vậy kích hoạt như thế nào a ?
 
Top