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

Рекомендуемые сообщения

Доброго времени суток дорогие форумчане. :thank_you2:

Мне требуется критика (я знаю вы это умеете). Сейчас у меня в разработке универсальный USB-генератор. который имеет следующие параметры:

- максимальная генерируемая частота 1 МГц

- максимальная амплитуда сигнала 5 В

- возможность сохранять сессию на карту SD и потом загружать ее при следующем старте (я имею ввиду, можно сохранить данные на флеху, отцепить USB, и генератор будет последний сохраненный сигнал воспроизводить)

Генератор я делаю с расчетом, на заказное производство :buba: (ну собственно кому будет лень все самому собирать :heat: ), но схему и полное описание выложу на сайте как все доделаю. Так что если вас не затруднит, скажите как вы видите этот генератор, желательно с объяснениями (допустим было бы неплохо добавить вот это... потому что...).

Спасибо за внимание :thank_you2:

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

На чем собирать планируете? Исходя из этого и будут пожелания))

И пусть судьба не справедлива, Жизнь игра - играй красиво!

И что б не кикнули тебя, Не злить Админа, юзверя!

Люблю "спасибки" :)

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Мне кажется, что использование SD-карт, размер которых исчисляется гигабайтами, избыточным в данном случае (сигнал займёт максимум пару мегабайт и то это очень захотеть надо). Возможно, лучше использовать что-нибудь другое.

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Запись во вмонтированную МС памяти EEPROM или FLASH.

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

Ссылка на комментарий
Поделиться на другие сайты

Причина использования карты SD вот какая, мною сейчас пишется программа для ПК (я думаю все понимают как работает USB генераторы) так вот, я думаю реализовать возможность запись данных на SD (сразу нескольких сигналов) потом эта карта вставляется в устройство. Запускаем, выбираем сигнал на флешке и вперед.

Но эта идея сыровата, :help:

По реализации... В основном я работаю с Atmegaми но для этого проекта заглядываюсь на другие варианты. Но структурная схема примерно следующая,

Есть МК, который принимает данные с USB и записывает во внутреннюю память, потом он заходит в цикл и начинает эти данные выдавать на порт (планирую 10 бит покачто) порт подцеплен к микросхеме ЦАП, ЦАП имеется с выходными операционниками, так что последними можно схему не нагружать.

Ссылка на комментарий
Поделиться на другие сайты

Могу лишь сказать что нужно мне, и что куплю я- генератор, должен уметь плавно менять частоту, иметь нижний предел не более 5Гц, выдавать одиночные импульсы с различными параметрами, ну а если в нем еще и нормальный АЦП будет, вообще хорошо.

Ссылка на комментарий
Поделиться на другие сайты

Спасибо за критерий, учту. А на счет АЦП... это интересно :crazy:

Кстати говоря, родилась идея сделать режим подстройки выходного напряжения. Включаем на ПК автонастройка, генератор поочередно выдает заранее известные напряжения (постоянные) на выход, считывает данные со своего выхода и анализирует. Если напряжение не то что надо то делает поправочный коэффициент и все становиться как надо! :big_boss:

Ссылка на комментарий
Поделиться на другие сайты

главное - чтобы проект был выполнен, "допилен", выложен.

Да я работаю над этим :heat: Знаете, просто хочется иметь список требований, что люди хотели бы увидеть, чтобы можно было их реализовывать. Ради этого создана тема. Сейчас я работаю над интерфейсом программы, думаю к концу месяца я её основу допишу... Кстати кодовое название генератора NiL 1010 :crazy:

Ссылка на комментарий
Поделиться на другие сайты

Еще хотел попросить всех пользователей USB приборов, написать что вам в них нравиться а что нет.

http://radiokot.ru/lab/otk/kotodromyxlo/06/ вот пример промышленного генератора... такой вопрос как вы думаете есть ли смысл делать 2 канала?

Ссылка на комментарий
Поделиться на другие сайты

Главные требования - широкий диапазон, стабильность выходного напряжения не зависимо от частоты, "чистота" формы выходного сигнала. Не обязательна генерация сигнала вообще произвольной формы - достаточно синусоиду, прямоугольник и пилу. Канала хватит одного. Автономия работы без компьютера - на компьютере настроил по своему вкусу (форма сигнала, вых.напряжение и т.п.), отключил и пошёл усилитель проверять или ещё какое устройство (для меня, например - настройка датчиков металлодетекторов).

Ссылка на комментарий
Поделиться на другие сайты

Широкий диапазон... Если использовать обычный МК (например Atmega64) то больше 1МГц получить "красиво" не получиться... Лично у меня складывается ощущение, что 1 МГц маловато :unknw: поэтому я скорее возьму за основу STM32 тогда возможно дотянуть до частоты промышленного собрата (25 МГц).

Стабильность частоты и уровня гарантирую :new_russian:

Продолжаю слушать ваши предложения, не скупитесь! :help:

Ссылка на комментарий
Поделиться на другие сайты

Для большинства любителей хватит и 50 кГц (звукотехника, те же металлодетекторы и т.п.).

Если ориентироваться на "эфирщиков" - сделаешь 30 Мгц, - скажут, мало, т.к. надо и 144 Мгц захватить, сделаешь до 150 Мгц - скажут, мало, надо до 500 Мгц и т.д. предела нет.

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

Ссылка на комментарий
Поделиться на другие сайты

О :friends:Спасибо за совет! Тогда я остановлюсь на более простых МК, дабы удешевить конструкцию и уложиться в 1000 рублей. Продолжаю создавать интерф

ейс программы

Ссылка на комментарий
Поделиться на другие сайты

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

Идея в принципе неплохая,но в чем будет преимущество такого генератора по сравнению с классическими схемами DDS?

Возможность генерации сигнала любой формы? Это избыточно,как уже написали выше.

С 90х годов телевизионщики используют специальные компакт-диски,на которых записаны тестовые цветные ТВ сигналы (а полоса там не меньше 7МГц). Вставляешь в любой проигрыватель - и получается чистейший ТВ сигнал без всяких специализированных генераторов весом в 20кг :)

Это техническое решение 90х, а вы в 2013м предлагаете прибор, который по частоте уже уступает комплекту диск+проигрыватель.

С атмегой вы не подниметесь по частоте даже до 1МГц - низкая частота дискретизации. Все схемы DDS выдают кривой синус уже на 100кГц,а чтобы синус был гладким,вам нужно будет делать сложную и громоздкую систему фильтрации после ЦАПа.

Можно малой кровью задрать частоту дискретизации. Взять микросхему RAM с параллельным вводом/выводом на 32к например,и с помощью МК сливать туда нужный сигнал, а потом перебирать адреса аппаратным счетчиком с высокой тактовой частотой и читать ЦАПом выход. Это намного быстрее чем всё делать одним МК. Так без особых материальных затрат можно получить частоту перебора адресов (частоту дискретизации) и 50МГц, а постаравшись даже 100МГц.

Вместо вашего цифрового монстра с посредственными параметрами на атмеге я бы предпочел генератор на XR2206. С этой микросхемы можно получить треугольник, синус (с малым (по сравнению с DDS) THD), и меандр в диапазоне частот до 1МГц + есть возможность организовать качание частоты. Остаётся добавить вольтметр выходного уровня и частотомер, и будет генератор - мечта :)

Изменено пользователем Andrew Martin
Ссылка на комментарий
Поделиться на другие сайты

Спасибо за критику, во первых хотелось бы уточнить. Каким образом, проигрыватель (у которых стоят фильтры на выходе) выдает полосу до 7 МГц? Сам генератор, выступает как универсальный прибор генерации любых сигналов. Я конечно понимаю люди возьмут и соберут схему на XR2206 или еще подобных если функционала им хватает. Но понимаете нет простора для творчества! :king: Да насчет дискретизации вы правы... провел пару экспериментов, так что сейчас конструирую выходной каскад. В общем то надеюсь поднять потолок частоты до 10 МГц, выше я думаю нет смысла :heat:

Ссылка на комментарий
Поделиться на другие сайты

Кстати на чем пишете на ПК?

И пусть судьба не справедлива, Жизнь игра - играй красиво!

И что б не кикнули тебя, Не злить Админа, юзверя!

Люблю "спасибки" :)

Ссылка на комментарий
Поделиться на другие сайты

Спасибо за критику, во первых хотелось бы уточнить. Каким образом, проигрыватель (у которых стоят фильтры на выходе) выдает полосу до 7 МГц?

Почитайте это:

http://www.tahion.spb.ru/article21

Используется аналоговый выход видеопроигрывателя.

От себя скажу,что в телевизионных аналоговых осциллографах отклонение АЧХ от прямой допускается не более 3% в диапазоне частот до 7,5МГц. Такого же порядка полоса пропускания видеотрактов проигрывателей.

Как вы собираетесь "поднять потолок" до 10МГц на атмеге??? Это фантастика. Она явно такого не потянет.

Ссылка на комментарий
Поделиться на другие сайты

А простор для творчества есть даже в варианте на XR2206. Можно сделать не просто вольтметр с частотомером на МК, а добавить качание частоты, Это будет полезно при исследовании АЧХ различных устройств. Можно даже использовать эту микросхему как ГУН и замутить PLL. И галетником в наши дни щёлкать немодно, а лучше переключать диапазонные конденсаторы мультиплексором, управляемым от МК.

Видите,такая простая вещь,а столько возможностей! :)

Но даже здесь будет над чем ломать голову. Например,как сделать выпрямитель для контроля выхода с линейной передаточной характеристикой и плоской АЧХ вплоть до 1МГц,да еще и на доступной элементной базе? Это одна из тех задач аналоговой схемотехники,на которой обламываются самые крутые микроконтроллерщики :)

А если каким-то путём,пусть с применением спец. микросхем по баснословным ценам,вам всё же удастся выжать 10МГц, то будьте готовы ко всем прелестям ВЧ.

Приведу некоторые из них.

Во-первых, у генератора должен быть 50-омный выход, способный обеспечить заданное напряжение на нагрузке 50Ом. Это необходимое условие согласования.

Даже у генератора с радиокота указывалось в недостатках неравномерная АЧХ.

Поэтому,(и во-вторых :) ),у генератора должна быть система стабилизации выходного уровня, а это детектор (с линейной ПХ и равномерной АЧХ) + усилитель ошибки + управляющий элемент (который не вносит существенных искажений). И вся эта САР должна быть устойчива.

Ссылка на комментарий
Поделиться на другие сайты

Потолок я поднять не на Атмеге собирался... а на STM32, частота работы которой 32-120 МГц. За ссылку спасибо изучу :big_boss:

Если даже так, то прямой синтез у вас силами только одного МК не получится.

Сколько тактов будет занимать основной цикл генерации? Что-то мне подсказывает,что минимум 2 такта, а это частота дискретизации порядка 60МГц при тактовой 120МГц.

60МГц дискретизация,а потолок 10МГц, итого 6 выборок за период.

А теперь, внимание вопрос: кому нужен такой синус/меандр/пила или что там ещё? :)

Ссылка на комментарий
Поделиться на другие сайты

Вот http://elm-chan.org/works/asg/report_e.html Чан уже такое делал посмотрите.

Купи два беляша и собери из них кошку

Labor est etiam ipse voluptas Труд уже сам по себе есть наслаждение (*Формула любви)

Ave novie-nostra ales Если один человек построил - другой завсегда разобрать может....(*Формула Любви).

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • А как же вы квазар спаяли? Или ЛУТом не владеете? Можно даже маркером все прорисовать. А за осцил боятся не стоит, ему на вход будет приходить допустимое напряжение (указано в хар-ках осциллографа).
    • Релюхи не причём. При неисправности релюх симптомы были бы другие. И ИБП даже не клацает когда переходит в  "аварию".   Да. Аккум новый. Более того - 2 новых пробовал. И без АКБ тоже. Не влияет. Да мелкие особо не вздуваются ж. Хотя С21 под подозрением..   Спасибо. Буду иметь ввиду.
    • #include <Wire.h> #include <Oregon_TM.h> #include <BME280I2C.h> //////////////////////////////////////////////////////////////////////////////////////////////////////////// //Скетч для устройства, передающего данные датчика BME280 в формате Oregon Scientific THGN132N //Принципиальная схема прилагается. //Для работы необходима библиотека https://github.com/finitespace/BME280/ //Устройство работает от 3-ех пальчиковых батареек, для экономии электричества заливать скетч нужно через ISP //////////////////////////////////////////////////////////////////////////////////////////////////////////// //Также возможна передача данных в формате - THP (температура, влажность, давление, напряжение батареи) //Пример с приёмником поддерживает расшифоовку THP //////////////////////////////////////////////////////////////////////////////////////////////////////////// # define THGN_SEND 1 // Передавать ли данные в формате THGN132 # define THP_SEND 0 // Передавать ли данные в формате THP # define DEVICE_LOG 1 //Писать ли лог В Serial # define DONE_PIN 15 // вывод сигнала об окончании работы на таймер # define BME_WAIT 10 // Сколько мс ожидать датчик BME # define BATTERY_THR 3.5 // Порог напряжения для выставляения флага разряда батарейки (THGN) ///////////////////////////////////////////////////////////////////////////////////////////////// //Ниблы датчика THP //Во всех полях младшие ниблы идут вперёд!!! // 1-2 - тип (55) // 3 - канал (0-7) // 4-6 - (температура от -100С) * 10. Т.е. +25.1С = 1251 = 4E3h // 7-9 - Влажность *10 Т.е. 25.1% = 251 = 0FBh // 10-12 - (давление от 500ммртст) * 10. Т.е. 765мм = 2650 = A5Ah // 13-15 - данные с АЦП (A0) // 16-17 - CheckSUM // 18-19 - CRC8 (poly 0x07 start 0x00) ///////////////////////////////////////////////////////////////////////////////////////////////// Oregon_TM transmitter(4); BME280I2C bme; bool bme_present = false; float bme_temp(NAN), bme_hum(NAN), bme_pres(NAN); ///////////////////////////////////////////////////////////////////////////////////////////////// void setup() { digitalWrite(DONE_PIN, LOW); pinMode(DONE_PIN, OUTPUT); #ifdef DEVICE_LOG Serial.begin(115200); Serial.println("Waiting for BMEsensor..."); #endif //Обмен данными с BME////////////////////////////////// Wire.begin(); while(!bme.begin()) { if (millis() > BME_WAIT) break; } if (!bme.begin()) { #ifdef DEVICE_LOG Serial.println("No BME sensor found"); #endif bme_present = false; } else { switch(bme.chipModel()) { case BME280::ChipModel_BME280: bme_present = true; bme.read(bme_pres, bme_temp, bme_hum); #ifdef DEVICE_LOG Serial.println("Found BME280 sensor! Success."); Serial.print("Temperature = "); Serial.print(bme_temp, 1); Serial.println("C"); Serial.print("Humidity = "); Serial.print(bme_hum, 1); Serial.println("%"); Serial.print("Pressure = "); Serial.print(bme_pres * 0.75, 1); Serial.println("mmHg"); #endif break; default: #ifdef DEVICE_LOG Serial.println("Found UNKNOWN sensor! Error!"); #endif bme_present = false; } } //Напряжения батареи/////////////////////////////////////////// word battvotage = (word)(((float)(1.1 * 16368) / Vbg()) * 100); #ifdef DEVICE_LOG Serial.print("Battery voltage = "); Serial.println(battvotage,HEX); #endif //Подготовка и отправка данных THGN////////////////////////////////////// transmitter.protocol == 2; if (THGN_SEND) { transmitter.setType(THGN132); transmitter.setChannel(3); transmitter.setBatteryFlag(battvotage < BATTERY_THR); if (bme_present) { if (bme_hum > 98) bme_hum = 98; if (bme_hum < 2) bme_hum = 2; if (bme_temp > 70) bme_temp = 70; if (bme_temp < -50) bme_temp = -50; transmitter.setTemperature(bme_temp); transmitter.setHumidity(bme_hum); transmitter.setComfort(bme_temp, bme_hum); } else { transmitter.setTemperature(-49.9); transmitter.setHumidity(2); transmitter.setComfort(-49.9, 2); } transmitter.SendPacket(); } // Если отправляются оба формата пакетов, межу ними надо выдержать паузу if (THP_SEND && THGN_SEND) delay(100); //Подготовка и отправка данных THP////////////////////////////////////// if (THP_SEND) { transmitter.setType(THP); transmitter.setChannelTHP(1); transmitter.setBatteryTHP( battvotage); if (bme_present) { transmitter.setTemperatureTHP(bme_temp); transmitter.setHumidityTHP(bme_hum); transmitter.setPressureTHP(bme_pres * 0.75); // перевод Pa в mmHg } else { transmitter.setErrorTHP(); } transmitter.SendPacket(); } #ifdef DEVICE_LOG Serial.println(); Serial.print(millis()); Serial.println("ms"); Serial.println(); #endif //Команда на отключение питания digitalWrite(DONE_PIN, HIGH); } ///////////////////////////////////////////////////////////////////////////////////////////////// void loop(){} ///////////////////////////////////////////////////////////////////////////////////////////////// int Vbg() { ADMUX = (1<<REFS0)|(0<<REFS1)|(1<<MUX3)|(1<<MUX2)|(1<<MUX1)|(0<<MUX0); long buffersamp=0; for (int n=0x0; n<=0xff; n++ ) { ADCSRA = 0xc7; while (bit_is_set(ADCSRA,ADSC)); buffersamp += ADC; } buffersamp >>=4; //16368 full scale 14bit ADCSRA &= ~(1 << ADEN); // отключаем АЦП return buffersamp; } Вот код программы. Пробовал по разному и от 5в запитывал и всю систему от 3,3 в. Причем голая ардуинка с таймером работает в нормальном режиме некоторое время, но потом все равно слетает и начинает питать мк постоянно( Причем это происходит всегда через разный промежуток времени.
    • На фото может быть название , характеристики и т.д. И по этому фото я смогу выбрать такой же в инете.. самому мне не собрать..
    • А что даст фотка? Тот же щуп, только чуть крупнее и с проводами питания.
    • Для меня наверное лучше купить готовый.. цель повысить чувствительность до 1 mV.. Наверное на Авто стоит покупать , мне бы фотку какую нить..такого активного щупа..))
  • Похожий контент

×
×
  • Создать...