Работа с TEA5767.

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2064
Зарегистрирован: Пт апр 24, 2009 11:39:16
Откуда: г.Оренбург

Сообщение Pika4u »

Итак, понимаю прекрасно, что тем таких было немерено, но все-таки. Почитав даташит(в переводе читать невозможно, а уровень скилла "понять даташит, когда учишь немецкий" не позволил) я в принципе понял, что и как отправлять модулю. Непонятно одно мне-как ему отправить частоту станции, на которую переключиться надо? В даташите две формулы даны, отличающиеся лишь одним знаком(+ изменили на -), но перевод дает полную тупость. Так какую использовать? Сижу и туплю вот по этому поводу. Заранее спасибо :)
Steve Jobs. 1955-2011. Мы помним, как ты преобразовал наш мир....
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку

Сообщение Zhuk72 »

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

Сейчас посмотрел и первые мысли по вопросу такие.

Первый попавшийся даташит какой-то бедный на подробности и формулу я там что-то не заметил.
Второй даташит (точнее говоря Application note) вывел на формулу, которую вы очевидно имеете в виду.

На стр.27 там расписано как это все работает и для чего нужно и дан такой алгоритм:
Set HILO to “1”.
Tune to Fwanted + 450 kHz: measure signal level LevelHigh
Tune to Fwanted – 450 kHz: measure signal level LevelLow
If LevelHigh < LevelLow then HILO is “1” else HILO is “0”.
Тут уже и без перевода понятно.

Для какого МК и на чем пишете?
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Контактная информация:
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку

Сообщение Zhuk72 »

Вдогонку к вышесказанному.

Для каждой станции, очевидно, нужно иметь оба значения: плюсовое и минусовое (2х2 байта на станцию).
Сперва отправляете "плюс", а по результату расчета выясняете правильно оно или нужно отправить минус (с переводом HILO в 0).

Может я и ошибаюсь, не исключено. Достаточно бегло пробежался, могу что-то упустить/недопонять.
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 63
Зарегистрирован: Сб мар 09, 2013 21:46:01
Откуда: Уфа

Сообщение alex-wolf »

если можно паподробнее
-/+
на каждую станцию
а то у меня получается ральная частата укв2 станции 107,00мгц а у меня показывает/работает без помех 106,95мгц, и это касается всех частот "- 0,05мгц"
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку

Сообщение Zhuk72 »

Подробнее не скажу, руки пока до него не дошли.
Но в предыдущем сообщении я дал ссыль на даташит и алгоритм, по которому определяется, какой знак надо выставить.
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Контактная информация:
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 63
Зарегистрирован: Сб мар 09, 2013 21:46:01
Откуда: Уфа

Сообщение alex-wolf »

Но в предыдущем сообщении я дал ссыль на даташит и алгоритм, по которому определяется, какой знак надо выставить.

---
прсто нет слов...
сплошное расстройство

из апнота/брошуры № AN10133

Low voltage FM stereo radio
with TEA5767/68
AN10133


High side injection tuning
In high side injection mode the PLL word is calculated with the following formula:

Ndec=(4*(Frf+Fij)))/Frefs

NDEC = Decimal value of PLL word
FRF = the wanted tuning frequency [Hz}
Fif = the Intermediate Frequency [Hz]
FREFS = the reference frequency [Hz}


In the PC control software this is implemented in the following way:

PLL=ROUND*[4*(TunedFrequency*1000+Fij)/(Ref[XTAL]/1000)]

PLL = NDEC = Decimal value of PLL word
TunedFrequency is the wanted tuning frequency in MHz,
Fif is the Intermediate Frequency of 225 kHz,
REF[XTAL] is the reference frequency in kHz, which depends on the selection of the oscillator
frequency as shown in the table below:

XTAL PLL REF Reference frequency Crystal frequency
0 0 50000 Hz 13 MHz
0 1 50000 Hz 6.5 MHz
1 0 32768 Hz 32.768 kHz
1 1 32768 Hz 32.768 kHz


Ndec=(4*(Frf(+/-)Fij))/Frefs


Now that The PLL word has been calculated in decimal, it must be converted to Hex decimal before sending in
to the tuning system.
If the receiver has to be tuned to a FM frequency of 100MHz, the PLL word will be calculated as follow:

PLLdec=ROUND*[4*(100*1000+225)/(50000/1000)]=8018
PLLhex=1F52

Low side injection tuning
To tune the tuner for example to 100MHz, the PLL word can be calculated as follow:
PLLdec=ROUND*[4*(100*1000-225)/(50000/1000)]=7982
PLLhex=1F2E


ну и самое главное, о чем спор

4.5 Tuning Algorithm
The tuning system can perform an autonomous search, or search can still be done in the classical way under μC
control. When the tuner receives a (autonomous) search request (bit 6 of data byte 1 is set) it will begin scanning
the FM band until a frequency is found or the band limit is reached.
High/Low side issues
As early discussed in this paragraph, the TEA5767/68 can be operated in two modes: High or Low side injection
selectable with HILO bit (bit 4 of data byte 3) via the bus interface. Under certain circumstances is the selection
of one of these modes not arbitrary.
575768.GIF
(12.58 КБ) 724 скачивания
The wanted station is at 98 MHz at a signal level of 100 μV and there is a strong neighbouring station at 98.4
MHz with a signal level of about 2.5 mV. With HILO=1 (black curve) the image response of 98.4 MHz is right
on top of the wanted station at 98 MHz, masking this wanted station. With HILO=0 (red curve) no interference
is heard on 98 MHz. The image of the unwanted station can now be found at 98.85MHz.
In the demo software the following algorithm is used to set HILO to the optimal level:
Set HILO to “1”.
Tune to Fwanted + 450 kHz: measure signal level -> LevelHigh
Tune to Fwanted – 450 kHz: measure signal level ->LevelLow
If LevelHigh < LevelLow then HILO is “1” else HILO is “0”.
In the given situations no problems will arise with search tuning as the image frequencies are not on the search
grid of 100 kHz.
However when the signal level of the wanted station increases to above about 3 mV false stops may be
introduced due to unwanted mixing effects in the FM signal channel
575768_.GIF
(11.44 КБ) 613 скачиваний
Now two additional stops are introduced at 98.1 MHz (HILO =1) and on 98.7 MHz (HILO = 1)
In the demo software these stops are rejected with the following algorithm:
Measure the level when the search has stopped ->Level 1
Toggle the HILO bit and measure level again -> Level 2 and also read the IF counter result -> IFC
Tuning is correct when the following formula is met:
Absolute value of (Level1 – Level2) < 2 and $31 < IFC < $3E


и напоследок
существует три разновидности английского языка
это:
английский – биологический / медицинский
английский – делопроизводственный / юридический
английский - технический
Контактная информация:
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку

Сообщение Zhuk72 »

Рано или поздно, но мне и самому это понадобится, поэтому давайте сначала.
Какой кварц используется и как рассчитываете значение ФАПЧ (PLL)? Какой вообще МК?
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 63
Зарегистрирован: Сб мар 09, 2013 21:46:01
Откуда: Уфа

Сообщение alex-wolf »

проект
в CodeWizardAVR V2.04.4a

библиотечка с когота пректа , сырая , неоптимизированная, много лишних телодвижений в плане постояннго опросса микросхемы, самому переписать уже дополяная - нет опыта
кварц часовой 32768Гц



#include <delay.h>
#include <stdio.h>
#include <twi.h>

#define TEA5767_ADR 0xc0 // адрес TEA5767 или TEA5768,+1 на запись

//макросы для вкл/выкл определенных функций TEA (см. даташит)
#define MUTE_ON tea5767_w_data.wr_byte1 |= 0x80 ;tea5767_write(&tea5767_w_data);
#define MUTE_OFF tea5767_w_data.wr_byte1 &= ~0x80 ;tea5767_write(&tea5767_w_data);
#define DTC75 tea5767_w_data.wr_byte5 |= 0x40 ;tea5767_write(&tea5767_w_data);
#define DTC50 tea5767_w_data.wr_byte5 &= ~0x40 ;tea5767_write(&tea5767_w_data);
#define HCC_ON tea5767_w_data.wr_byte4 |= 0x04 ;tea5767_write(&tea5767_w_data);
#define HCC_OFF tea5767_w_data.wr_byte4 &= ~0x04 ;tea5767_write(&tea5767_w_data);
#define SMUTE_ON tea5767_w_data.wr_byte4 |= 0x08 ;tea5767_write(&tea5767_w_data);
#define SMUTE_OFF tea5767_w_data.wr_byte4 &= ~0x08 ;tea5767_write(&tea5767_w_data);
#define STEREO_ON tea5767_w_data.wr_byte3 &=~ 0x80 ;tea5767_write(&tea5767_w_data);
#define STEREO_OFF tea5767_w_data.wr_byte3 |= 0x80 ;tea5767_write(&tea5767_w_data);

typedef unsigned char u8_t;
typedef unsigned int u16_t;
typedef unsigned long int u32_t;

//unsigned char state;
unsigned char StateMachine(char state, unsigned char stimuli);

char Auto_scan_up(char input);
char Auto_scan_up1(char input);
char Manual_search_up(char input);
char Manual_search_down(char input);
char Stereo(char input);
char Mono(char input);
char Noise_on(char input);
char Noise_off(char input);
//
//#define FALSE 0
//#define TRUE (!FALSE)
//#define NULL 0
////

// Menu state machine states

#define ST_AUTOSEARCH 30
#define ST_AUTOSEARCH_SEARCH 31
#define ST_SCAN_UP 32
#define ST_MANUALSEARCH 40
#define ST_MANUALSEARCH_SEARCH 41
#define ST_MANUALSEARCH_SEARCH_UP 42
#define ST_MANUALSEARCH_SEARCH_DOWN 43
#define ST_MANUALSEARCH_UP 44
#define ST_MANUALSEARCH_DOWN 45
#define ST_OPTIONS 50
#define ST_OPTIONS_ST_MN 51
#define ST_STEREO_MONO 52
#define ST_STEREO 53
#define ST_MONO 54
#define ST_OPTIONS_NOISE 55
#define ST_NOISE 56
#define ST_NOISE_ON 57
#define ST_NOISE_OFF 58

/* COMMUNICATION: WRITE MODE
Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 Bit 2 Bit 1 Bit 0
----------------------------------+--------------------+--------------+------------------+--------------+-----------------+--------------+----------------
Data byte 1 | mute | Search mode | PLL13 | PLL12 | PLL11 | PLL10 | PLL9 | PLL8 |
----------------------------------+--------------------+---------------+--------------------------------+-----------------+---------------+----------------|
Data byte 2 | PLL7 | PLL6 | PLL5 | PLL4 | PLL3 | PLL2 | PLL1 | PLL0 |
----------------------------------+-------------------+----------------+------------------+-------------+----------------+----------------+---------------|
Data byte 3 | Search | Search | | HiLo side | | | | |
| up/down | stop level | | injection |Mono/stereo | Mute left | Mute right | SW port1|
----------------------------------+------------------+-----------------+----------------+---------------+-----------------+----------------+--------------|
Data byte 4 | SW port 2| Stand-by |Band limits |xtal | Soft-mute | HCC SNC | Search | |
| | | | | | | indicator | |
------------------+--------------+------------------+----------------+-----------------+----------------+----------------+----------------+--------------|
Data byte 5 | PLL ref | Deemph | Not used | Not used | Not used | Not used | Not used | Not used |
---------------------------------------------------------------------------------------------------------------------------------------------------------------|
*/



float freq; //частота freq,,PLLfreq
u8_t rx_pwr, if_cnt, exit_bit = 0;
u8_t mem_index = 1;
u32_t PLLfreq;

char iii = 0;
//char tea5767_w_data ; u16_t freq_lcd;
char mute_bit,xx,if_count,x_qual;

// начальные данные регистров при первом включении после прошивки чобы не улетала TEA в астрал :)
eeprom u8_t ee_b1 =0x31; ; //
eeprom u8_t ee_b2 = 0x20; ; //
eeprom u8_t ee_b3 = 0x90; // 90
eeprom u8_t ee_b4 = 0x1E; //0x16 //1e 1E
eeprom u8_t ee_b5 = 0x0; //c0
eeprom u16_t freq_ee = 1070;
eeprom u16_t mem[21];
eeprom u8_t mem_index_ee = 1;


//
struct tea5767wr_data
{ u8_t wr_byte1; //1-ый байт данных для записи
u8_t wr_byte2;
u8_t wr_byte3; //3-ий байт данных для записи
u8_t wr_byte4;
u8_t wr_byte5; //5-ый байт данных для записи
} tea5767_w_data;
struct tea5767rd_data
{ u8_t rd_byte1; //1-ый байт данных для записи
u8_t rd_byte2;
u8_t rd_byte3; //3-ий байт данных для записи
u8_t rd_byte4;
u8_t rd_byte5; //5-ый байт данных для записи
} tea5767_r_data;
////запись регистров в TEA (struct tea5767wr_data *wdata) (struct tea5767wr_data *wdata) (struct tea5767wr_data*wdata)
void tea5767_write (struct tea5767wr_data*wdata)
{ twi_start();
twi_wr_addr(0xc0); // (0xc0); для записи tx
twi_wr(wdata->wr_byte1);
twi_wr(wdata->wr_byte2);
twi_wr(wdata->wr_byte3);
twi_wr(wdata->wr_byte4);
twi_wr(wdata->wr_byte5);
twi_stop();
}; //
////чтение регистров TEA (struct tea5767rd_data *rdata) (struct tea5767rd_data*rdata)
void tea5767_read (struct tea5767rd_data*rdata)
{
twi_start();
twi_wr_addr(0xc1); // (0xc1); для чтения tx
rdata->rd_byte1 = twi_rd(1);
rdata->rd_byte2 = twi_rd(1);
rdata->rd_byte3 = twi_rd(1);
rdata->rd_byte4 = twi_rd(1);
rdata->rd_byte5 = twi_rd(1);
twi_stop();
};





void tea5767_init (void)
{
tea5767_w_data.wr_byte1 = ee_b1; //считывание даных TEA из EEPROM
tea5767_w_data.wr_byte2 = ee_b2;
tea5767_w_data.wr_byte3 = ee_b3;
tea5767_w_data.wr_byte4 = ee_b4;
tea5767_w_data.wr_byte5 = ee_b5;
DTC50;
STEREO_ON;
MUTE_ON; //отключение звукового тракта при включении питания
SMUTE_ON;
tea5767_write(&tea5767_w_data);
delay_ms(1000);
//tea5767_write(&tea5767_w_data);
freq = freq_ee * 100000;
};
//запись регистров TEA в EEPROM для памяти при выкл питания
void write_ee (void)
{
ee_b1 = tea5767_w_data.wr_byte1;
ee_b2 = tea5767_w_data.wr_byte2;
ee_b3 = tea5767_w_data.wr_byte3;
ee_b4 = tea5767_w_data.wr_byte4;
ee_b5 = tea5767_w_data.wr_byte5;

freq_ee = freq / 100000;

mem_index_ee = mem_index;
}



////функция вычисления частоты вверх
////mute_bit - откл/вкл звука при поиске (char mute_bit)
void freq_up (unsigned char mute_bit)
{
freq += 50000; //100000;
if (freq == 108100000)
{
freq = 74000000;
}
PLLfreq =(4 * (freq + 225000))/ 32768; // 32768
tea5767_w_data.wr_byte1 = ((PLLfreq >> 8) & 0x3f); // 3F ; (PLLfreq & 0x00003F00) >> 8;
tea5767_w_data.wr_byte2 = (PLLfreq & 0xFF); // (PLLfreq & 0x000000FF);
if(mute_bit) MUTE_OFF;
// if(mute_bit) MUTE_ON;
tea5767_write(&tea5767_w_data);
}
//void freq_up(char mute_bit)
//{
// freq += 100000;
// if (freq == 108100000)
// {
// freq = 74000000;
// }
//// PLLfreq = (((freq + 225000) * 4) / 32768);
/// PLLfreq = (((freq - 225000) * 4 ) / 32768);
// PLLfreq = 4 * (freq - 225000) / 32768;
// tea5767_w_data.wr_byte1 = ((PLLfreq >> 8) & 0x3F);
// tea5767_w_data.wr_byte2 = (PLLfreq & 0xFF);
// if(mute_bit) MUTE_ON;
// if(!mute_bit) MUTE_OFF;
// tea5767_write(&tea5767_w_data);
//}
//функция вычисления частоты вниз и запись в TEA
//mute_bit - откл/вкл звука при поиске 32768L


void freq_down(char mute_bit)
{
freq -= 100000; //100000;
if (freq == 74000000)
{
freq = 108000000;
}
PLLfreq =4 * (freq + 225000L) / 32768L;
tea5767_w_data.wr_byte1 = ((PLLfreq >> 8) & 0x3f); // 3F
tea5767_w_data.wr_byte2 = (PLLfreq & 0xFF);
if(mute_bit) MUTE_ON;
if(!mute_bit) MUTE_OFF;
tea5767_write(&tea5767_w_data);
}

//
// return x;
//}
//
////считывание счетчика ПЧ из TEA5767
char tea5767_if_count (void)
{
char yyyyy;

tea5767_read(&tea5767_r_data);
yyyyy = tea5767_r_data.rd_byte3 & 0x7F;
delay_ms(10); if_count = yyyyy;
return yyyyy;
}

//функция считывания и отображения стерео/моно
void st_mn(void)
{
tea5767_read(&tea5767_r_data);
if((tea5767_r_data.rd_byte3 & 0x80) == 0x80)
{
lcd_gotoxy(14,0);
lcd_putsf ("ST");
}
else
{
lcd_gotoxy(14,0);
lcd_putsf ("MN");
}

}
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку

Сообщение Zhuk72 »

AVR я не знаю, а Си знаю не лучше :)

Поэтому смотрел только концовку, где рассчитывается ФАПЧ с минусом.
Там написано PLLfreq =4 * (freq + 225000L) / 32768L, плюс вместо минуса. Для чего нужен L, я не знаю. В плюсах его нет.
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 63
Зарегистрирован: Сб мар 09, 2013 21:46:01
Откуда: Уфа

Сообщение alex-wolf »

Там написано PLLfreq =4 * (freq (+/-) 225000L) / 32768L,
насколько я понял 32768 - L означает частоту кварцевого осциллятора в некоторых компиляторах
в нашем случае символ "L" опускаем( не обращаем на него внимания, и не записываем, оставляем только)

PLLfreq = (((freq + 225000) * 4) / 32768);
PLLfreq = (((freq - 225000) * 4 ) / 32768);
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку

Сообщение Zhuk72 »

PLLfreq = (((freq + 225000) * 4) / 32768);
PLLfreq = (((freq - 225000) * 4 ) / 32768);

Ну так сделайте подсчеты по этим формулам для 107 МГц, скормите их по очереди ТЕА и посмотрите при каком из них частота выставится правильно, т.е. прием будет без помех.

Вы вообще что хотите получить: значение ФАПЧ из его автопоиска или задание ему значений из сохраненных в памяти станций?
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 63
Зарегистрирован: Сб мар 09, 2013 21:46:01
Откуда: Уфа

Сообщение alex-wolf »

Там написано PLLfreq =4 * (freq (+/-) 225000L) / 32768L,
насколько я понял 32768 - L означает частоту кварцевого осциллятора в некоторых компиляторах
в нашем случае символ "L" опускаем( не обращаем на него внимания, и не записываем, оставляем только)

PLLfreq = (((freq + 225000) * 4) / 32768);
PLLfreq = (((freq - 225000) * 4 ) / 32768);
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 63
Зарегистрирован: Сб мар 09, 2013 21:46:01
Откуда: Уфа

Сообщение alex-wolf »

13088,989=(((107000000+225000)*4)/32768)
13034,058=(((107000000-225000)*4)/32768)

округляем, без запятых
13034
13089

переводим в hex
13034=32EA
13089=3321
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку

Сообщение Zhuk72 »

Теперь надо отправить ему 5 байт: 32h, EAh, 00h, 10h, 00h для "-" и 33h, 21h, 20h, 10h, 00h для "+" и сравнить качество сигнала в обоих случаях.
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 63
Зарегистрирован: Сб мар 09, 2013 21:46:01
Откуда: Уфа

Сообщение alex-wolf »

еще бы научится коррктно роботать с консолью (rx-tx) и передать на квадратную шину
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку

Сообщение Zhuk72 »

Я решил начать разбираться с ним, но под рукой нет подходящего МК. Подходящий по количеству ног (18) не имеет железного I2C, а писать софтверный, не имея никакого опыта общения ни с шиной, ни 5767, не хочется. Потом разбирайся где накосячил: в реализации протокола или общении с приемником.

Есть другой МК с железным I2C, но 28 ног - перебор :) Может временно на макетке с него и начну.

Дам знать, как только будут результаты.

Кстати, аудиовыходы можно нагрузить на обычные компьютерные колонки? А то у меня ни одного усилителя нет, чтобы слушать, что он там принял.
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку

Сообщение Zhuk72 »

alex-wolf писал(а):еще бы научится коррктно роботать с консолью (rx-tx) и передать на квадратную шину
Вот, кстати, для вас: http://www.radiokot.ru/forum/viewtopic.php?t=56361 И АВР, и исходники есть.
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 63
Зарегистрирован: Сб мар 09, 2013 21:46:01
Откуда: Уфа

Сообщение alex-wolf »

благодарю Вас за указанный ресурс (поподался, читал)
там исходники написаны на компиляторе "win-avr" , а я использую "cvavr" а это не одно итоже
у "win-avr" другое названия операторов, и очень громозкий код, получается "макрос в макросе"

такое сравниние: "cvavr" напоминает язык программирования "JAWA" несколько строчек и программа готова
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку

Сообщение Zhuk72 »

Как бы ни писался код, но ведь алгоритмы одинаковые.
Просто посмотреть, как там организовано общение с ТЕАшкой, как рассчитывают частоту и пр.
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 63
Зарегистрирован: Сб мар 09, 2013 21:46:01
Откуда: Уфа

Сообщение alex-wolf »

для сравниния, в микро эвм (avr ATmega16
mega16_макетница.lay
(122.99 КБ) 668 скачиваний
в моем случае)
1) прграммная реализация
2) аппоратная реализация
квадратной шины, но принцип "общения" с перефирией (в данном случае с TEA5767) остатся не изменным.
Контактная информация:
Ответить

Вернуться в «Периферия»