Приемопередатчик Mrf49Xa

28-05-2013, 11:36 Cмотрели: 1372
Помогите с кодом для приемопередатчика MRF49XA.

Например для передачи простого байта.



Кода для передатчика:


#include <mega8535.h>
#include <delay.h>


/******************************************************
***** MRF49XA COMAMAND BYTE TO REGISTERS *****
*****************************************************/
#define COMMAND_BYTE_STSREG 0x00
#define COMMAND_BYTE_GENCREG 0x80
#define COMMAND_BYTE_AFCCREG 0xC4
#define COMMAND_BYTE_TXCREG 0x98
#define COMMAND_BYTE_TXBREG 0xB8
#define COMMAND_BYTE_CFSREG 0xA0
#define COMMAND_BYTE_RXCREG 0x94
#define COMMAND_BYTE_BBFCREG 0xC2
#define COMMAND_BYTE_RXFIFOREG 0xB2
#define COMMAND_BYTE_FIFORSTREG 0xCA
#define COMMAND_BYTE_SYNBREG 0xCE
#define COMMAND_BYTE_DRSREG 0xC6
#define COMMAND_BYTE_PMCREG 0x82
#define COMMAND_BYTE_WTSREG 0xE0
#define COMMAND_BYTE_DCSREG 0xC8
#define COMMAND_BYTE_BCSREG 0xC0
#define COMMAND_BYTE_PLLCREG 0xCC

/*****************************************************
***** MRF49XA DATA SETTING TO REGISTERS *****
****************************************************/

#define GENCREG_OPS1 0x18 //433MHz 12.5pF
#define AFCCREG_OPS1 0xD7
#define TXCREG_OPS1 0x30
#define TXBREG_OPS1 0x00
#define CFSREG_OPS1 0xC8 // 430.5MHz Fval = 200
#define RXCREG_OPS1 0xA1
#define BBFCREG_OPS1 0x2C
#define RXFIFOREG_OPS1
#define FIFORSTREG_OPS1 0x81
#define SYNBREG_OPS1
#define DRSREG_OPS1 0x23
#define PMCREG_OPS1 0x00
#define WTSREG_OPS1
#define DCSREG_OPS1
#define BCSREG_OPS1
#define PLLCREG_OPS1

/******************************************
***** SPI DIRECTION REGISTER *****
******************************************/
#define SPI_PORT_SS 0
#define SPI_PORT_MOSI 5
#define SPI_PORT_MISO 6
#define SPI_PORT_SCK 7


/******************************************
***** SPI CHIP SELECT CONTROL *****
******************************************/
#define SPI_ACTIVE_SS(PORT,BIT) PORT &= ~(1<<BIT)
#define SPI_UNACTIVE_SS(PORT,BIT) PORT |= (1<<BIT)


/**********************************************
***** SPI 16-BIT DATA RECEIVE ACCESS *****
**********************************************/

void SPI_write ( unsigned char command_byte, unsigned char data )
{
SPI_ACTIVE_SS(PORTB,SPI_PORT_SS);

SPDR = command_byte;

while (!(SPSR & (1<<SPIF)));

SPDR = data;

while (!(SPSR & (1<<SPIF)));

SPI_UNACTIVE_SS(PORTB,SPI_PORT_SS);
}


unsigned char SPI_read(unsigned char command_byte)
{
SPI_ACTIVE_SS(PORTB,SPI_PORT_SS);

SPDR = 0x00;

while(!(SPSR & (1<<SPIF)));

SPI_UNACTIVE_SS(PORTB,SPI_PORT_SS);

return SPDR;
}

void mrf49xa_initialization (void)
{
delay_ms(10);
SPI_write(COMMAND_BYTE_FIFORSTREG,FIFORSTREG_OPS1);
SPI_write(COMMAND_BYTE_FIFORSTREG,FIFORSTREG_OPS1|0x02);
SPI_write(COMMAND_BYTE_GENCREG, GENCREG_OPS1);
SPI_write(COMMAND_BYTE_AFCCREG, AFCCREG_OPS1);
SPI_write(COMMAND_BYTE_CFSREG,CFSREG_OPS1);
SPI_write(COMMAND_BYTE_DRSREG,DRSREG_OPS1);
SPI_write(COMMAND_BYTE_PMCREG,PMCREG_OPS1);
SPI_write(COMMAND_BYTE_RXCREG,RXCREG_OPS1);
SPI_write(COMMAND_BYTE_TXCREG, TXCREG_OPS1);
SPI_write(COMMAND_BYTE_PMCREG,PMCREG_OPS1 | 0x20);
delay_ms(5);
SPI_write(COMMAND_BYTE_PMCREG,PMCREG_OPS1 | 0x80);
SPI_write(COMMAND_BYTE_GENCREG, GENCREG_OPS1 | 0x40);
SPI_write(COMMAND_BYTE_FIFORSTREG,FIFORSTREG_OPS1);
SPI_write(COMMAND_BYTE_FIFORSTREG,FIFORSTREG_OPS1|0x02);




}

void mrf49_send_byte(unsigned char data)
{
SPI_write(COMMAND_BYTE_PMCREG,PMCREG_OPS1);
SPI_write(COMMAND_BYTE_GENCREG, GENCREG_OPS1|0x80);
SPI_write(COMMAND_BYTE_PMCREG,PMCREG_OPS1|0x20);
SPI_write(COMMAND_BYTE_TXBREG,0xAA);
SPI_write(COMMAND_BYTE_TXBREG,data);
SPI_write(COMMAND_BYTE_PMCREG,PMCREG_OPS1|0x80);
SPI_write(COMMAND_BYTE_GENCREG, GENCREG_OPS1|0x40);
SPI_write(COMMAND_BYTE_FIFORSTREG,FIFORSTREG_OPS1|0x02);
}
void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=Out Func6=In Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In
// State7=0 State6=T State5=0 State4=0 State3=T State2=T State1=T State0=T
DDRB = (1<<SPI_PORT_SCK)|(1<<SPI_PORT_MOSI)|(1<<SPI_PORT_SS);
SPI_UNACTIVE_SS(PORTB, SPI_PORT_SS);
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x01;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// SPI initialization
// SPI Type: Master
// SPI Clock Rate: 4000,000 kHz
// SPI Clock Phase: Cycle Half
// SPI Clock Polarity: Low
// SPI Data Order: MSB First
SPCR=0x50;
SPSR=0x00;
mrf49xa_initialization();

while (1)
{
//if (PINA&0x01)
delay_ms(1000);
mrf49_send_byte(254);
// Place your code here

};
}



А вот код для приемника не могу понять как написать и даже сомневаюсь в правильности кода передатчика. Даташит прикрепил. помогите кто сталкивался и кто хорошо умеет читать на английском.
Раздел: Периферия и внешние устройства


 Куплю Панели Плк-50М.

28-05-2013, 11:36 Cмотрели: 880
Куплю панели ПЛК-50М (под ГУ50), можно без стаканов, в кол-ве 30-40шт.

Почтовые расходы оплачу.





[email protected]
Раздел: Куплю


 Приемник Звукового Вещания

28-05-2013, 11:36 Cмотрели: 781
Здравствуйте, не могу найти, нужна схема принципиальная электрическая, супергетеродинного приемника СВ, с перестраиваемым преселетором(ВЦ, УРЧ), гетеродином, ФСС,УПЧ и Ам детектор. Заранее благодарен за любую помощь. На микросхемах серии К157, К237, К174, К175.
Раздел: Школьникам и студентам


 Фиксирование С Помощью Кнопки

28-05-2013, 11:36 Cмотрели: 714
Здравствуйте! Подскажите, какими схемотехническими решениями можно реализировать захват кадра (кнопкой оператора) и передачу его далее для обработки как изображение?

Т.е. установленная цифровая камера, оператор следит за монитором и в конкретный момент, при нажатии на кнопку, производиться захват кадра и передача его в канал связи.
Раздел: Видеонаблюдение


 Питание К155Ли1

28-05-2013, 11:36 Cмотрели: 953
Ребят подскажите - нужен логический элемент И, взгляд пал на микросхему К155ЛИ1, напряжение питание которой +5В, у меня +12В. С помощью чего можно подключить, или есть подобная схема И на 12 В?
Раздел: Песочница или Вопрос-Ответ


 Детектирование Сигнала Определенной Частоты Преобр. Фурье

28-05-2013, 11:36 Cмотрели: 832
гуглил, гуглил, но так и не понял следующее:   необходимо рассмотреть сигнал определенной частоты  на линии связи (в кабеле, в воздухе не важно). Сигналов там много все разной частоты и разной формы. Подцепляем осциллограф естественно видим эту кашу. Берем принтскрин осциллографа, оцифровываем, получаем набор точек (время + напряжение). Далее можно сделать дискретное преобразование Фурье(или Хартли)  и получим набор синусоид с определенной амплитудой, фазой, частотой. И что с этим дальше делать???

Например мне надо выловить сигнал на частоте 10МГц, я приблизительно представляю, что это последовательность прямоугольных импульсов, а не синусоида. Как мне его достать из набора синусоид?
Раздел: Песочница или Вопрос-Ответ


 Регулятор Громкости Tda8196 Фильтр Низких Tl072 Для Tda7294

28-05-2013, 11:36 Cмотрели: 2192
здравствуйте.

обобщу свой проект в 1 тему. распространенное явление делать сабвуфер на TDA7294 и динамике 75ГДН 1-4.



усилитель за месяц с горем пополам собрал. качает он 75ГДН 1-4 в ящике бандпас 6го порядка.

качает не очень. то ли транс слабый, то ли усь слабый, то ли я много хочу.



фото всего что есть




Spoiler


Регулятор Громкости Tda8196 Фильтр Низких Tl072 Для Tda7294



Регулятор Громкости Tda8196 Фильтр Низких Tl072 Для Tda7294





на фото слева на право:

транс 12в хз сколько А, питает регулятор громкости на TDA8196 и фильтр низких частот на 2х TL072.

для этого создана искуствено земля и просто выпрямитель.

фильтр требует двухполярного питания, регулятор однополярного. минус днополярного и земля двухполярного соеденены между собой и еще соеденены на землю усилителя.

далее сам усилитель и его трансформатор. тут УЖЕ проблем нет, кроме сильного фона в динамике.



ТЕПЕРЬ проблемы.



1. регулятор громкости. на схеме он справа

питается от однополярного с делителем.




Spoiler
Регулятор Громкости Tda8196 Фильтр Низких Tl072 Для Tda7294



Регулятор Громкости Tda8196 Фильтр Низких Tl072 Для Tda7294





Регулятор Громкости Tda8196 Фильтр Низких Tl072 Для Tda7294



сначала я собрал только регулятор. если не подключать минусовый провод звука, то он просто пропускает звук через себя. если повесить минусовый провод звука на минус питания (земля в однополярном), то звук регулируется, но сильно искажается, бас пропадает. до середины все вроде нормально, после ужасы.  

звук подаю с компа на 4ю ногу (плюсовый провод).  3ю ногу цепляю на землю, отцепляю - никакой реакции.

вторая нога у меня просто свободна.



может я не так что то подключаю?? подскажите пожалуйста.



2. фильтр. на схеме он слева.



Регулятор Громкости Tda8196 Фильтр Низких Tl072 Для Tda7294



нашел эту упрощенную схему в инете, кто то ее уже собирал и кому то советовал.

суть в том, как я понял, что тут нет суматора. звук одного из каналов просто фильтруется и все.



рабочая ли вообще эта схема в принципе??



собрал я и ее.




Spoiler
Регулятор Громкости Tda8196 Фильтр Низких Tl072 Для Tda7294



Регулятор Громкости Tda8196 Фильтр Низких Tl072 Для Tda7294



Регулятор Громкости Tda8196 Фильтр Низких Tl072 Для Tda7294




звук с компа подается сначала на фильтр и после на регулятор громкости.



включаю все это щастя и оно просто ФОНИТ. нет никаких песен, никаких других звуков, кроме монотонного фона. регулятор громкости этот фон четно и плавно регулирует))





ПОМОГИТЕ пожалуйста разобраться с этим всем и довести проект до приятного баса
Раздел: Предусилители, темброблоки, фильтры.


 Требуются Специалисты!

28-05-2013, 11:36 Cмотрели: 812
Научно - технический центр Элинс - занимается разработкой и производством систем управления для комплексов вооружений. Предприятие находится в Зеленограде. В настоящее время у нас открыто более 70 вакансий. Требуются специалисты с высшим, средним и средне-специальным образованием. Знания и навыки работы с радиоэлектронной аппаратурой - обязательны! Трудоустройство и соц. пакет в полном соответствии с ТК РФ. Ожидаемый уровень оплаты труда обсуждается с каждым кандидатом индивидуально. Форма допуска в зависимости от вакансии. Отдел персонала: 8 495 651 08 86  Присылайте резюме: [email protected]
Раздел: Вакансии и разовая работа


 Внутрисхемное Программирование Atmega

28-05-2013, 11:36 Cмотрели: 912
Доброго времени суток уважаемые эксперты. Начал изучать микроконтроллеры, и возник такой вопрос. Если делать на плате вывод для внутрисхемного программирования, можно ли подключать к выводам MISO MOSI SCK еще что-нибудь? Так то я понимаю что можно, но не будет ли проблемм при программировании МК, если к этим ногам будет одновременно подключен и программатор и транзисторный ключ?



Заранее спасибо.
Раздел: AVR


 Куплю Трансформаторы Тан-29 , Тан-44

28-05-2013, 11:36 Cмотрели: 842
Куплю трансформаторы ТАН-29 , ТАН-44 в Москве

а также дроссель Д-40
Раздел: Куплю




Опрос

Ваши предпочтения в TRX


Одинарное преобразование
Двойное преобразование
Прямое преобразование
SDR
Другое
Мне всё равно

Календарь новостей
«    Май 2013    »
ПнВтСрЧтПтСбВс
 12345
6789101112
13141516171819
20212223242526
2728293031