Witam, od kilku dni próbuje uruchomić nadajnik oparty na module RFM12B ale jakoś bez skutku. Nie wysyłam narazie żadnych danych tylko sprawdzam miernikiem czy układ generuje nośną 868MHz pod konfiguracji. Czasem po n-tym resecie układ zaczyna generować nośną ale po odłączeniu zasilania i ponownym włączeniu nie ma żadnej reakcji. Przeglądałem róźne artykuły i tematy na forach. Zmniejszyłem długość połączeń miedzy modułem a uC ale to nie rozwiązało problemu. Poniżej wklejam kod którego używam:
Proszę o jakieś porady co może byc nie tak.
PS. ATtiny i RFM zasilane napięciem 3,3V, uC taktowany wewnętrznym oscylatorem 8MHz
#include <stdio.h>
#include <avr/io.h>
#include <avr/delay.h>
#define CS_SET PORTD|=_BV(6);
#define CS_CLR PORTD&=~_BV(6);
#define MOSI_SET PORTB|=_BV(1);
#define MOSI_CLR PORTB&=~_BV(1);
#define MISO_SET PORTB& 0x08;
#define SCK_CLR PORTB&=~_BV(2);
#define SCK_SET PORTB|=_BV(2);
#define LED_SET PORTD|=_BV(5);
#define LED_CLR PORTD&=~_BV(5) ;
#define WAIT_NIRQ_LOW() while(PINB&0x01);
void main (void)
{
SPI_SOFTWARE_INIT();
_delay_ms(3000);
RFM12B_Init();
while (1){LED_CLR;
}
}
void SPI_SOFTWARE_INIT(void)
{
DDRB=255;
PORTB=0 ; //MOSI i SCK
//DDRB&=_BV(2);
DDRD=255;
CS_CLR;
}
void SEND_SOFTWARE_SPI (int dana)
{
for (int i=0;i<16;i++)
{
if (dana &0x8000)
{
MOSI_SET;
}
else {MOSI_CLR; }
dana=dana<<1;
SCK_SET;
delay();
SCK_CLR;
//delay();
}
}
void RFM12B_Init (void)
{
//SEND_SOFTWARE_SPI(0xFE00);
SEND_SOFTWARE_SPI(0x0000);
SEND_SOFTWARE_SPI(0x80E7);
SEND_SOFTWARE_SPI(0x8238);
SEND_SOFTWARE_SPI(0xA640);
SEND_SOFTWARE_SPI(0xC687);
SEND_SOFTWARE_SPI(0x94A0);
SEND_SOFTWARE_SPI(0xC2AC);
SEND_SOFTWARE_SPI(0xCA81);
SEND_SOFTWARE_SPI(0xCED4);
SEND_SOFTWARE_SPI(0xC483);
SEND_SOFTWARE_SPI(0x9850);
SEND_SOFTWARE_SPI(0xCC77);
SEND_SOFTWARE_SPI(0xE000);
SEND_SOFTWARE_SPI(0xC800);
SEND_SOFTWARE_SPI(0xC070);
//SEND_SOFTWARE_SPI(0xCA81);
}
void delay (void)
{
for (int i=0; i<4;i++)
{
asm("nop");
}
}
Proszę o jakieś porady co może byc nie tak.
PS. ATtiny i RFM zasilane napięciem 3,3V, uC taktowany wewnętrznym oscylatorem 8MHz
