Перейти к содержанию

    

Alex_Golubev

Участник
  • Публикаций

    301
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о Alex_Golubev

  • Звание
    Местный

Посетители профиля

1 788 просмотров профиля
  1. Спаял схему чтобы посмотреть как будет работать на практике. Схема такая же как представлена выше. ОУ взял AD8027 полевой транзистор fr9024. На осциллографе увидел возбуждение на затворе и выходе. Шунтирование резистора R2 не помогает.
  2. И потом ставить на выходе инвертор? Не понял смысла. Сделал так вроде помогло.
  3. Привет. Как убрать возбуждение ОУ ? На схеме изображен стабилизатор напряжения на 9В. В качестве управляющего элемента выбран полевой транзистор P проводимости. Управляет транзистором ОУ. 1.rar
  4. Добрый день. Кто нибудь, когда нибудь, пытались сделать широкополосный приемник сигнала? Ну так скажем от 300 МГц до 915 МГц. На микросхеме cc1101? Как понимаю для этого нужно сначала каким-то образом найти несущею, а после настроить входной фильтр. На рынки есть широкополосные балуны пример B0310J50100AHF но нужна еще широкополосная антенна.
  5. Вопрос по cc1101.

    Добрый день. Подскажите можно инвертировать вход GDO0 в микросхеме cc1101 в асинхронном режиме? Я использую GDO0 data input. Получается в режиме асинхронной передачи, когда на GDO0 логическая 1 он не передает данные а когда логический нулю передает. Это очень неудобно. Можно инвертировать и сделать наоборот?
  6. Привет. Не могу понять так должно быть или нет? B0310J50100A0HF pin 2 звонится на pin4.
  7. Привет. Есть в nrf52832 такая область памяти флешь в которую можно записывать данные и не бояться что они потеряются после перепрошивки через bootloader?
  8. Добрый день!Нужно найти ключ шлагбаума в массиве данных. В массив записываются данные периода и скважности сигнала. Сигнал состоит из логического нуля и единицы. Логический нуль кодируется периодом в 960 мкс и длительностью 640 мкс. Логическая единица кодируется периодом 960 мкс и длительность 320 мкс. Форма сигнала представлена на рисунки 1.Также сигнала имеет пилотный период равный примерно 15 000 мкс рисунок 2. Преамбула сигнала составляет 320 мкс. Длина ключа 12 бит с преамбулой 13 бит. Что сделал инициализировал периферию мк для поиска периода и длительности. Настроил так периферию что в процессе поиска периода и длительности участвует только аппаратная часть мк, не каких программных обработок нет. Только забираю данные периода и длительности в прерывании (конечно пропуск возможен но маловероятно). Счет периода от спадающего до спадающего фронта, по растущему фронту длительность. Приложил два файла (сделанные в разное время) с данными периода и длительности. Как видим из фалов, в массиве присутствуют шумы и повторение кодирования логических нулей и единиц отличаются. Написал код: uint8_t search_key(void) // поиск ключа { static uint8_t error_cade = 0; // код ошибки counter_T = 0; for(i = 0; i < 128 - 1; i++){ if((captur_0[i+1] - captur_0[i]) > captur_0[i]){ switch(counter_T){ case 0: T1 = i+1; counter_T ++; break; // координата пилотного периода 1 case 1: T2 = i+1; counter_T ++; break; // координата пилотного периода 2 case 2: T3 = i+1; // координата пилотного периода 3 if(((T3 - T2) == (T2 - T1)) && ((T3 - T2) >= 12)){ // меньше 12 бит не видал ключей T1 ++; T2 ++; T3 ++; counter_T ++; for(j = 0; j < (T3 - T2) - 1; j++){ if(!(((captur_0[j+T3] - captur_1[j+T3]) - (captur_0[j+T2] - captur_1[j+T2])) > -64 && ((captur_0[j+T3] - captur_1[j+T3]) - (captur_0[j+T2] - captur_1[j+T2])) < 64)){ counter_T = 0; error_cade = 0; break; } else{ if((((captur_0[j+T3] - captur_1[j+T3]) - (captur_0[j+T2] - captur_1[j+T2])) > -64 && ((captur_0[j+T3] - captur_1[j+T3]) - (captur_0[j+T2] - captur_1[j+T2])) < 64)){ if (CheckValue(320, captur_1[j+T2]) && CheckValue(640, (captur_0[j+T2] - captur_1[j+T2]))) // valid 1 { set_bit(BARRIER_LIST[0].key,j); } else if (CheckValue(640, captur_1[j+T2]) && CheckValue(320, (captur_0[j+T2] - captur_1[j+T2]))) // valid 0 { clear_bit(BARRIER_LIST[0].key,j); } error_cade = 1; } } } if(error_cade == 0 && i > 72){ return(error_cade); } __NOP(); } else{ counter_T = 0; } break; } } } return(error_cade); } Код работает, проверял повторяемость получаемого ключа. Но мне код не нравится. Думаю что есть что-то более простое и надежно и с быстрым поиском ключа.
  9. Switch и прием команд

    Добрый день. Подскажите как проще всего распознать входную команду составленную из нескольких байт и выполнить необходимое действие? Пример. У нас на входе есть последовательность байт вида: пришла команда 0x01 0x02 0x01 -> вызываем обработчик команды 0x01 0x02 0x01 пришла команда 0x01 0x02 0x02 -> вызываем обработчик команды 0x01 0x02 0x02 пришла команда 0x01 0x02 0x03 -> вызываем обработчик команды 0x01 0x02 0x03 пришла команда 0x01 0x03 0x01 -> вызываем обработчик команды 0x01 0x03 0x01 пришла команда 0x03 0x03 0x01 -> вызываем обработчик команды 0x03 0x03 0x01 и так далее. На if else не охота будет много ветвлений и плохо читабельный код. С помощью хэш тоже не охота из - за коллизии.
  10. nrf52832 Buttonless security DFU

    Привет. Не могу ни как запустить ble_app_buttonless_dfu.С DFU разобрался научился прошивать и запускать программу. Научился делать настройки для bootloader с помощью команды nrfutil settings generate .... И сшивать две прошивки вмести с помощью mergehex --merge hexfile1.hex hexfile2.hex --output output.hex.Но вот buttonless не как. Прошиваю заведомо рабочий bootloader и softdevice. После запускаю отладку в IAR а программа не стартует (показал на рисунки). В чем дело?
  11. Привет. Не смог найти в документации https://www.segger.com/products/debug-probes/j-link/tools/rtt-viewer/ как это сделать. Нужно поменять вывод данных с ascii на hex. Как это сделать?
  12. Привет. В примере от Nordic BLE_UART подключен seria port (обычный UART). Для вывода они задействовали printf();. И где-то в коде разместили putchar или еще какую функцию. Но где они ее разместили найти не могу. Можете подсказать как найти функцию вывода из printf в UART? Мне нужно отключить этот UART и подключить SWO. А я сделать этого не могу.
  13. PCB антенна small size 433 МГц для cc1101

    Привет. Можете поделится pcb small size антенной на 433 МГц для cc1101?
  14. Привет. Как лучше включить, встроенный операционный усилитель с коэффициентом усиления 10 в STM32F303VET6 для измерения дифференциального напряжения с последующей оцифровкой АЦП? Нужно поднять точность, измерения сопротивления, включенного в измерительный мост. Для этого нужен коэффициент усиления хотя бы 10. Нет возможности использовать специализированный инструментальный усилитель, нужно обойтись встроенным. Как понял в stm32f303 ОУ обычный не инструментальный. Как следствие нужно городить схему включения диф. усилителя с вытекающими от суда проблемами. Или собирать из трех инструментальный усилитель. Блога в stm32f303 их 4 штуки. В общем не знаю как быть.
  15. NRF52832 PWM capture

    Привет. Не могу понять как лучше сделать захват PWM сигнала на nrf52832, чтобы можно было детектировать период и скважность. У nrf52832 внутри нет специализированного таймера для этого, как у stm32, но зато есть PPI с помощью которого можно объединить вход с таймером. Вот пример инициализируем, допустим pin 5 на вход. После инициализируем GPIOTE на создание двух событий роста фронта и спада. Через PPI привязываем к росту фронта Start Timer а к спаду TASKS_CAPTURE[0], а как остановить таймер? Какое еще событие создать, чтобы таймер остановился и вызвал вектор прерывания для обработки данных? Или нужно как-то по другому инициализировать таймер.