Jump to content
Smith2007

CAN снифер

Recommended Posts

Posted (edited)

Имеется контроллер STM32F103RET6.

На CAN интерфейс подключен трансивер TJA1040

USART подключаю к компьютеру на котором запускаю CAN Hacker.

Создал проект (Keil) с использованием библиотек cmsis. 

Включаю режим CAN_Mode_LoopBack. Отправляю пакет в цикле из CAN Hacker и получаю его же обратно.

Прием пакетов по прерыванию в кольцевой буфер. 

Осцилографом становлюсь на выход трансивера (CANH, CANL)

photo_2019-03-07_21-51-54.jpg.239abf13f7471c4e3d921057f2b2fae8.jpg

Количество отправленных пакетов = количеству принятых. При разных установленных скоростях шины - длительность сигналов так же меняется.

Подключаюсь к CAN Шине авто.

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

DSC_1437.thumb.JPG.7fa5626d0e06b6e07f2933fd13d90e6a.JPG

 

Как правильно определить параметры таймингов по форме сигнала? (цена деления 2 мкс)

 

Edited by Smith2007

Share this post


Link to post
Share on other sites

ну надо почитать спецификацию на CAN, там все подробненько изложено. Лупбэк будет работать полюбому, так как отправка и прием идет на одной скорости. А для того чтобы "нюхать" чужой поток надо как минимум знать его частоту. Иначе нишиша асинхронный CAN не примет

Share this post


Link to post
Share on other sites
Posted (edited)

Какая частота синхронизации? и какие значения в этих регистрах CAN_SJW, CAN_BS1, CAN_BS2, CAN_Prescaler ? и какое авто?

Edited by optima

Share this post


Link to post
Share on other sites

Высококачественные конденсаторы Panasonic для надежности вашей электроники!

Электролитические алюминиевые конденсаторы Panasonic отличаются повышенной надежностью, длительным сроком службы, низким импедансом и выдерживают большой ток пульсаций, в то время как семейства полимерных конденсаторов Panasonic SP-CAP, POSCAP, OS-CON и HYBRID характеризуют сверхнизкий ESR и увеличенная емкость, работа при высоких напряжениях и в расширенном температурном диапазоне. Приобретая продукцию Panasonic, вы гарантированно получаете самое передовое решение для ваших задач. Для облегчения вашего выбора, мы подготовили подборку полезных материалов.

Читать статьи

Posted (edited)
48 минут назад, optima сказал:

Какая частота синхронизации? и какие значения в этих регистрах CAN_SJW, CAN_BS1, CAN_BS2, CAN_Prescaler ? и какое авто?

Автомобиль УАЗ Патриот 2016 года. 

На разъеме OBD имеются пины 6 и 14.

Судя по описанию распиновки разъема (найдено в инете) это и есть CANH, CANL

В этот разъем подключаю ELM327 -, загружаю torque pro.

5c8531f0da3bb_2019-03-0222-15-37.thumb.PNG.480af47bfa179feb5540b726a2681ac7.PNG

 

Если я правильно понимаю, то ELM327 цепляется через этот разъем к скоростной шине 500 кбит. Доступные датчики.

Screenshot_2019-03-10-20-43-49.thumb.png.43dd414058ac53e65ff449dba72d6ebd.png

Частота тактирования CAN шины 36 МГц

2019-03-10_20-54-43.png.0382d442f543b597301ad2d41025b674.png

 

2019-03-10_20-59-02.png.bf1f58d772edb5de179e5c3f43ca1d1a.png

 

Prescaler=  6,  Seg1 = 6, Seg2 = 5

36/6/(1+6+5) = 500 кбит.

SJW ставил 1, 2, 3 - не помогло.

Осцилограмма сигнала

2019-03-10_21-03-07.png.d79997c7398d4d87a50d1412916548c3.png

 

Процедура инициализации CAN

//*****************************************************************
//
//  Модуль CAN шины
//
//
//
//*****************************************************************
#include "can.h"

void init_CAN(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;

	/* CAN GPIOs configuration */
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); 		// включаем тактирование AFIO
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); 				// включаем тактирование порта

	RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);		// включаем тактирование CAN-шины
	
	// Настраиваем CAN RX pin GPIOA Pin11
	GPIO_InitStructure.GPIO_Pin   = CAN1_RX_SOURCE;
	GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_IPU;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(CAN1_GPIO_PORT, &GPIO_InitStructure);

	// Настраиваем CAN TX pin GPIOA Pin12
	GPIO_InitStructure.GPIO_Pin   = CAN1_TX_SOURCE;
	GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(CAN1_GPIO_PORT, &GPIO_InitStructure);

  	// Включаем трансивер GPIOB Pin1
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
	GPIO_InitStructure.GPIO_Pin   = CAN1_STB_PIN;
	GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
	GPIO_Init(CAN1_STB_PORT, &GPIO_InitStructure);
	GPIO_WriteBit(CAN1_STB_PORT, CAN1_STB_PIN, Bit_SET );
	
	#ifdef CAN1_ReMap
		GPIO_PinRemapConfig(GPIO_Remap1_CAN1, ENABLE);			// Переносим Can1 на PB8, PB9
	#endif

	// Инициализация режима CAN шины по умолчанию
	CAN_InitStructure.CAN_TTCM = DISABLE;
	CAN_InitStructure.CAN_ABOM = DISABLE;	// DISABLE
	CAN_InitStructure.CAN_AWUM = ENABLE;
	CAN_InitStructure.CAN_NART = ENABLE;	// DISABLE
	CAN_InitStructure.CAN_RFLM = DISABLE;
	CAN_InitStructure.CAN_TXFP = DISABLE;
	CAN_InitStructure.CAN_Mode = CAN_Mode_Normal;			// Обычный режим работы устройства
	//CAN_InitStructure.CAN_Mode = CAN_Mode_LoopBack;	// Для тестирования без подключенных устройств шины
	CAN_InitStructure.CAN_BS1 = CAN_BS1_13tq;
	CAN_InitStructure.CAN_BS2 = CAN_BS2_2tq;
	CAN_InitStructure.CAN_SJW = CAN_SJW_1tq;
	CAN_InitStructure.CAN_Prescaler = CAN1_SPEED_500KB;	// Выбираем нужную скорость
	
	CAN_Init(CAN1, &CAN_InitStructure);

	// CAN filter init
	CAN_Filter.CAN_FilterNumber = 0;
	CAN_Filter.CAN_FilterMode = CAN_FilterMode_IdMask;
	CAN_Filter.CAN_FilterScale = CAN_FilterScale_32bit;
	CAN_Filter.CAN_FilterIdHigh = 0x0000;
	CAN_Filter.CAN_FilterIdLow = 0x0000;
	CAN_Filter.CAN_FilterMaskIdHigh = 0x0000;
	CAN_Filter.CAN_FilterMaskIdLow = 0x0000;
	CAN_Filter.CAN_FilterFIFOAssignment = CAN_FIFO0;
	CAN_Filter.CAN_FilterActivation = ENABLE;
	CAN_FilterInit(&CAN_Filter);

	// CAN FIFO0 message pending interrupt enable
	CAN_ITConfig(CAN1, CAN_IT_FMP0, ENABLE);

	// NVIC Configuration
	// Enable CAN1 RX0 interrupt IRQ channel
	NVIC_InitTypeDef NVIC_InitStructure;
	NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn;
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
	NVIC_Init(&NVIC_InitStructure);
	
}

#ifdef __cplusplus
 extern "C" {
#endif
  

//**********************************************
// Устанавливаем параметры шины
//
//**********************************************
void CAN_Setup(CAN_InitTypeDef CAN_InitStructure){

	CAN_Init(CAN1, &CAN_InitStructure);
}

//**********************************************
// Устанавливает скорость CAN
//
//**********************************************
void CAN_Speed(uint16_t prescaler, uint8_t bs1, uint8_t bs2, uint8_t sjw) {
	CAN_InitStructure.CAN_BS1 = bs1;
	CAN_InitStructure.CAN_BS2 = bs2;
	CAN_InitStructure.CAN_SJW = sjw;
	CAN_InitStructure.CAN_Prescaler = prescaler;	// Выбираем нужную скорость
	CAN_Setup(CAN_InitStructure);
}

В данном случае скорость шины выставляется настройками CANHacker.

 

 

Edited by Smith2007

Share this post


Link to post
Share on other sites
Posted (edited)

Вопрос еще закрался....

Если после инициализации контроллера я создаю новые настройки (собираю структуру с новыми параметрами) и выполняю 

CAN_Init(CAN1, &CAN_InitStructure);

Это правильно?

Или нужно сначала сделать DeInit?

 

 

upd.

Подключился к шине в режиме отладки.

Изменения наблюдаю только в одном регистре MSR

2019-03-10_15-35-29.png.ba874575ee125ad0f00427772566457e.png2019-03-10_15-35-49.png.df767c697f444c6bd1d59a4516b07510.png

Edited by Smith2007

Share this post


Link to post
Share on other sites
                     

Вебинар "Как создать BLE-устройство на базе новейшего беспроводного микроконтроллера STM32WB55"

27 ноября 2019 года компания КОМПЭЛ приглашает разработчиков, технических руководителей и энтузиастов беспроводной связи на вебинар, посвященный новинке 2019 года – мультипротокольному беспроводному микроконтроллеру STM32WB55, который позволяет создавать устройства на базе стандартов BLE 5.0; BLE Mesh; 802.15.4/ZigBee и Thread. На вебинаре мы покажем, как с помощью привычных инструментов STM32Cube и STM32CubeMX можно создать свое первое, надежно работающее BLE-приложение.

Зарегистрироваться на вебинар

Да все верно шина там работает на 500к. По расчетам скорости тоже все верно. Так что с таймингами думаю порядок.  Возможно еще что то упустили в настройках!

1 минуту назад, Smith2007 сказал:

Это правильно?

Да вообще не вопрос, сколько надо столько и перестраивай.

я перестраивал и без  DeInit проблем не возникало, но правильно думаю с DeInit

Share this post


Link to post
Share on other sites

3 дня вожусь и не пойму в чем причина.

Может это СФТ протокол особенный (ISO15765-4CAN11/500), который stm32 не понимает?

Share this post


Link to post
Share on other sites

Создайте в CubeMx проект
"из короьбки" там все работает

могли не проинициализировать DMA

могли не включить прерывание

могли неверно задать фильтр

и т.д. и т.п.

 

А все ваши посты - гадание на кофейно гуще

Share this post


Link to post
Share on other sites
22 минуты назад, Smith2007 сказал:

Может это СФТ

Вряд ли. Почему в настройках у тебя значения  CAN_BS1_13tq; CAN_BS2_2tq;  CAN_SJW_1tq; не такие как были указаны ранее?

Share this post


Link to post
Share on other sites

Прерывание, фильтры и т.д. - все работает. Я же проверяю работу в режиме loopback. Все принимается и отправляется. Параллельно слежу осцилографом за сигналом. Вижу изменения и уже различаю 0 и 1. 

 

2 минуты назад, optima сказал:

CAN_BS1_13tq; CAN_BS2_2tq;  CAN_SJW_1tq; не такие как были указаны ранее?

Скорость задается при подключении CAN Hacker. Происходит переинициализация структуры настроек.

2019-03-10_22-11-16.png.930f278761ff4afc938c477f524289a5.png

 

2019-03-10_22-10-41.png.bc9d06490a0ff5a589f4cdc31971c2ea.png

 

2019-03-10_22-11-32.png.cee4bea32b0a912889ec2e555c1dd578.png

 

 

Share this post


Link to post
Share on other sites

А выше что за

1 час назад, Smith2007 сказал:

Процедура инициализации CAN

Судя по ней если preskaler остается равным 6 то 500к уже не получается!  36/6/(13+2+1)

Share this post


Link to post
Share on other sites
2 минуты назад, optima сказал:

Судя по ней если preskaler остается равным 6 то 500к уже не получается!  36/6/(13+2+1)

define подставляется

2019-03-10_22-25-44.png.f6608f5982abca875f916f079a0625b2.png

Share this post


Link to post
Share on other sites

Собрал с нуля проект из примеров Кейла.

Не читает :(

Завтра соберу два МК и соединю их по КАН. Проверю работу КАН таким образом.

 

Share this post


Link to post
Share on other sites
14 часа назад, optima сказал:

 

А вообще прерывание по приему работает?

 

Ни одного прерывания не получаю

Share this post


Link to post
Share on other sites
Posted (edited)

Сам себе отвечу.

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

//**********************************************************************/
//         Тестирование скорости приема с CAN
//
//**********************************************************************/
void app_CANScaner (void *argument) {
	USARTSend("CAN Scaner\n\r");
	CanRxMsg msg;
	uint32_t speed;
	uint32_t ratio;

	uint8_t rec;
	uint8_t lec;

  while(1) {
		USARTSend("Prescaler\tBS1\tBS2\tSpeed\tRatio \n\r");
		for (uint16_t prescaler = 1; prescaler < 15; prescaler++) {
			for (uint8_t bs1 = CAN_BS1_1tq; bs1 <= CAN_BS1_16tq; bs1++) {
				for (uint8_t bs2 = CAN_BS2_1tq; bs2 <= CAN_BS2_8tq; bs2++) {
					//while (CAN_RxFrameCount() == 0);
					CAN_InitStructure.CAN_Prescaler = prescaler;
					CAN_InitStructure.CAN_BS1 = bs1;
					CAN_InitStructure.CAN_BS2 = bs2;
					CAN_InitStructure.CAN_SJW = CAN_SJW_1tq;
					//CAN_InitStructure.CAN_Mode = CAN_Mode_LoopBack;	// Для тестирования без подключенных устройств шины
					Reinit_CAN();
					osDelay(200);
					lec = CAN_GetLastErrorCode(CAN1);  // err == CAN_ErrorCode_NoErr
					rec = CAN_GetReceiveErrorCounter(CAN1);
					if (rec == 0 and lec == 0) {
						speed = 36000000/CAN_InitStructure.CAN_Prescaler/(1+ CAN_InitStructure.CAN_BS1 + 1 + CAN_InitStructure.CAN_BS2 + 1);
						ratio = CAN_InitStructure.CAN_BS1 * 1000 / (1+ CAN_InitStructure.CAN_BS1 + 1 + CAN_InitStructure.CAN_BS2 + 1);
						USARTSend("\t"); USARTSend(CAN_InitStructure.CAN_Prescaler, 'd'); 
						USARTSend(" \t"); USARTSend(CAN_InitStructure.CAN_BS1 + 1, 'd');
						USARTSend(" \t"); USARTSend(CAN_InitStructure.CAN_BS2 + 1, 'd');
						//USARTSend("\t"); USARTSend(CAN_InitStructure.CAN_SJW + 1, 'd');
						USARTSend(" \t"); USARTSend(speed, 'd');
						USARTSend(" \t"); USARTSend(ratio, 'd');
						USARTSend("     ");
						USARTSend("\n\r");
					}
					else {
						USARTSend("\t"); USARTSend(CAN_InitStructure.CAN_Prescaler, 'd'); 
						USARTSend(" \t"); USARTSend(CAN_InitStructure.CAN_BS1 + 1, 'd');
						USARTSend(" \t"); USARTSend(CAN_InitStructure.CAN_BS2 + 1, 'd');
						USARTSend("     ");
						USARTSend("\r");
					}
					//osDelay(50);
				}
			}
		}		
	}
}

Загрузил в контроллер, подключил к шине авто и запустил.

Через некоторое время получил результат.

2019-03-15_21-49-29.thumb.png.28932cfcf44b78e124c9e6ce5e2f511a.png

Затем сравнил полученные показатели настроек с тем, что я делал и сразу обнаружил ошибку.

Ранее при настройке BS1, BS2 я указывал просто числа 1, 2, 3 ..и т.д. Однако если взглянуть на дефайны

/** @defgroup CAN_time_quantum_in_bit_segment_1 
  * @{
  */

#define CAN_BS1_1tq                 ((uint8_t)0x00)  /*!< 1 time quantum */
#define CAN_BS1_2tq                 ((uint8_t)0x01)  /*!< 2 time quantum */
#define CAN_BS1_3tq                 ((uint8_t)0x02)  /*!< 3 time quantum */
#define CAN_BS1_4tq                 ((uint8_t)0x03)  /*!< 4 time quantum */
#define CAN_BS1_5tq                 ((uint8_t)0x04)  /*!< 5 time quantum */
#define CAN_BS1_6tq                 ((uint8_t)0x05)  /*!< 6 time quantum */
#define CAN_BS1_7tq                 ((uint8_t)0x06)  /*!< 7 time quantum */
#define CAN_BS1_8tq                 ((uint8_t)0x07)  /*!< 8 time quantum */
#define CAN_BS1_9tq                 ((uint8_t)0x08)  /*!< 9 time quantum */
#define CAN_BS1_10tq                ((uint8_t)0x09)  /*!< 10 time quantum */
#define CAN_BS1_11tq                ((uint8_t)0x0A)  /*!< 11 time quantum */
#define CAN_BS1_12tq                ((uint8_t)0x0B)  /*!< 12 time quantum */
#define CAN_BS1_13tq                ((uint8_t)0x0C)  /*!< 13 time quantum */
#define CAN_BS1_14tq                ((uint8_t)0x0D)  /*!< 14 time quantum */
#define CAN_BS1_15tq                ((uint8_t)0x0E)  /*!< 15 time quantum */
#define CAN_BS1_16tq                ((uint8_t)0x0F)  /*!< 16 time quantum */

1 тайм квант (1tq) указывается как 0, а не 1.

Указал верные значения и вуаля!

2019-03-16_00-17-50.png.a5dd532d36597915eaafad455e8550a0.png

CANHacker подцепился с ходу.

Edited by Smith2007

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Настройка усилителя. 1. После монтажа всей схемы, для экономии своего же времени в процессе оживления и настройки усилителя, настоятельно рекомендую прозвонить все соединения на предмет соответствия принципиальной схеме. 2. Включаем питание без ламп.  Измеряем напряжения на анодных  штырьках панелей ламп. Если что-то не так, ищем и устраняем ошибки. Резисторами R11, R14  выставляем напряжение смещения выходных ламп (5 штырек) - 17В. Резисторами R5 обоих каналов  выставляем напряжение смещения  ламп драйвера (7 штырек) - 90В. Выставляем сопротивление резисторов катодного смещения R4 190 Ом. 3. Вставляем  лампы выходного каскада и включаем питание. Сразу же после включения контролируем ток катода. И при его росте резисторами R11, R14 поддерживаем в районе 50 мА. Прогрев лампы и выход на рабочий режим происходит минут через 10. После прогрева выставляем ток катода 40 мА и даем поработать лампам несколько часов. Если лампа новая и долго не использовалась, то ток катода может плавать в течение нескольких суток. Все это время его придется контролировать и корректировать. Когда ток катода плавать перестанет, выставляем 50 мА. 4. Настройка драйвера. К ней можно приступать, не дожидаясь окончательной приработки ламп выходного каскада. Драйвер каждого канала настраивается отдельно. Вставляем лампы дайверов, включаем усилитель.  Перед первым включением усилителя настоятельно рекомендую включить амперметр переменного тока в разрыв сетевого провода. Его показания покажут есть ли возбуждение усилителя по ВЧ. Если потребление значительно больше расчетного, то возбуждение есть и с ним нужно бороться... Например, расчетное потребление моей схемы составляет примерно 70 Вт. При первом включении потребляемый ток составил 0,3 А. То есть все ОК. Если потребление близко к расчетному, то с выхода звуковой карты ПК подаем сигнал 1 кГц на вход усилителя,а с выхода усилителя через делитель 10:1 подаем сигнал  на вход звуковой карты .  Для оценки параметров усилителя и его настройки можно использовать Спектраплюс, Спектралаб или комплекс Шмелева.  Выходное напряжение усилителя измеряю вольметром и контролирую осциллографом. Отключаем ОООС. Регулятором громкости устанавливаем  напряжение на выходе усилителя (вторичная обмотка) 3-5В. Вращая резистор катодного смещения R4, добиваюсь увеличения напряжения на выходе усилителя до максимума. Это будет явно выраженная точка. При изменении сопротивления R4 в ту или другую сторону от этого значения, выходной сигнал уменьшается. Вращая резистор  смещения сетки R5, добиваюсь минимума искажений. Эту операцию возможно придется повторить несколько раз. 5. Настройка идентичности каналов по усилению. В стерео усилителе необходимо чтобы при подаче на оба канала одинаковых сигналов, на выходе также должны быть равные по величине сигналы (напряжения). По ГОСТУ 24388-88 для аппаратуры 1-й группы сложности допускается различие каналов по усилению не более 1 дБ.   В моём случае регулировка  не понадобилась. Но в принципе возможны три варианта: 1. Загрубление при помощи ОООС канала, выходное напряжение которого больше. 2. Включение в цепь регулятора громкости канала, выходное напряжение которого больше, дополнительного сопротивления. 3. Регулировка баланса встроенными инструментами звуковой платы или ЦАПа. 6. Установка глубины обратной связи. Глубина ОС расчитывается по формуле: 20 lg (UвыхБезОС/UвыхОС) Глубину ОООС в 8дБ устанавливаю путем подстройки сопротивления Roc. И периодическим пересчетом по вышеприведенной формуле. Можно забить это формулу в Эксель, тогда дело пойдет быстрее. После настройки можно (и нужно) посмотреть шумовые характеристики усилителя при отсутствии сигнала, с закороченным входом (РГ в крайнем левом положении). На этой спектрограмме можно увидеть уровень фона 50 и 100 Гц (что является явным показателем качества сборки), а так же спектр шумов усилителя во всем звуковом диапазоне. Резких выбросов  быть не должно. Если они есть, то имеем факт  возбуждения. Который нужно устранять. Спектр шумов собранного усилителя: На данной спектрограмме виден вполне закономерный пик на частоте 50 Гц. Это наводки от сети. Однако его уровень порядка минус 98 дБ (судя по Шмелеву - 168 мкВ). Это очень даже неплохой результат. В высокочувствительных колонках его не слышно даже вплотную к динамику.  Вместе с сигналом на частоте 50 Гц, фон также формируется уровнем сигнала на частоте 100 Гц. В данном случае он составляет минус 106 дБ. Резюмируя, можно сказать что возбуждение на различных частотах отсутствует, на слух фона нет вообще.  Это является подтверждением правильности подхода к показанным выше принципам монтажа усилителя.
    • 4uvak, Я извиняюсь что много вам вопросов написал в личку, но изначально Я вам предлагал поговорить голосом в скайпе или вайбере, повести платяную консультацию по помощи в сборке станции, без этого тут флуда как вы вырезались !!! addy2k, скинь фотки как вышло у тебя с травкой плат, и можешь поделиться ссылкой где покупал у нас экран ?
    • С учетом всего напрашивается какой-то такой практический вариант:    
    • To - > 4uvak  Благодарю Вас !  Собирая Ваш проект ... чувствуется ,  что Вы немало усилий приложили, чтобы последователям ) было легко !)) За энкодер - понял ....  Как сделаете корректировку ... сообщите  !!! Завтра буду делать силовую плату ....   To - > sancheni  Думаю не только у меня сложилась масса вопросов к Вам ....  Но не хочется их задавать ... Прочтите пожалуйста всю ветку форума ...... ВДУМЧИВО !!! И ... если останется пара вопросов ... задайте их ...   А ту массу вопросов, которые Вы задаете здесь -  задавайте так ....  ОК GOOGLE ...  )))   PS  Плату травил сам ( лут )   Экран 100 грн.  
    • цена вопроса ? LA2500 в наличии нет
    • Вот достался мне ЦАП Breeze Audio 9028Pro  И вот что он может: 9028 breeze real  или вот так 9028 1 khz Подключение по XMOS Xcore USB, на коаксиале не лучше по искажениям но звук без прерываний , а по оптике идут спонтанные прерывания выводимого звука. В начинке цапа ( мне достался без ОУ) muses8920+BB 2227 И только на такой связке получается что либо стоящее.  Если устанавливать AD797 AD845 звука нет вообще , громкость минимальная плюс искажения большие Хотя вот нашел, что получается у тестеров на 9028Про 9028 pro Вопрос - полученное -это реальный предел возможностей цапа на 9028 или я что то делаю не так? 9028 breeze real  9028 1 khz 9028 pro
    • Оплата картой/наличными? LA2500 имеется?
×
×
  • Create New...