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

Отправить Данные На Stm32F4


Гость Дмитрий

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

Здравствуйте, необходимо написать интерфейсную программу. программа должна уметь отправлять на виртуальный com порт данные которые МК будет выставлять на ЦАП и таким образом получится генератор сигналов любой формы, вопрос в том как можно реализовать такую программу, т.е. я сначала думал записать коды в файл .txt но тогда на порт будут отправляться коды записанных символов в лучшем случае, можно ли как то напрямую а не через файл их отправлять? проблема в том что надо около 30 000 отсчетов отправить из которых будет стоиться сигнал.

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

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

  • Ответов 53
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

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

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

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

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

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

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

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

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

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

Можно подробнее? 30 Килоотсчетов напрямую с компьютера? А откуда они возмуться, руками вводятся и по мере ввода должны отправляться? Жажду подробностей. :yes:

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

по ту сторону порта стоит FT232 которая принимает данные и по UART отправляет их на МК, интерфейсная программа на мой взгляд должна сначала по определенному закону сгенерить отсчеты в виде байт, для этого надо разобраться с работой ЦАПа который их будет в конечном итоге преобразовывать в напряжение, итак мы разобрались как работает ЦАП и теперь садимся за С#, дальше я думаю надо по формуле с заданными параметрами сгенерить коды чисел, соответствующие тем, которые мы хотим отправить на FT232 после которой они через МК в конечном итоге попадут на ЦАП, и дальше надо эти коды преобразовать в их символы или как правильно не знаю точно пока, короче дело в том что число оно имеет представление в виде машинного кода и чтобы на МК пришло то что нам надо там по моему в С# есть команда "int16" которая их преобразовывает и потом эти отсчеты записываются в файл и отправляются из него на МК через FT232. Жду коректировок в плане моей задумки, как лучше всего это реализовать, хочется попроще и чтобы работало. Смысл в том что препод дал тех задание и его надо исполнить таким образом чтобы с компа можно было задать любой сигнал, кусок которого попав на МК зациклится им и будет генериться пока не выключим прибор или не пришлем другие данные, прибор обязательно после получения данных должен уметь работать без соединения с компом.

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

Запудрили вы мозг с этой FT232. Так бы и сказали: "надо отправить через СОМ порт данные из файла, но сложность в том, что отправляются ASCII коды символов, записанных в файл"

Ну и создайте файл в HEX редакторе, коих валом в нете, а его передавайте по-байтно.

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

Генерируете массив данных с формой нужного сигнала, затем этом массив передаете в память МК, далее по таймеру записываем поочередно данные из массива в регистр ЦАП. Чем меньше будет время таймера, тем выше будет частота сигнала.

Можете даже на C# написать эмулятор который будет рисовать график из данных в массиве и посмотрите чего вы там нагенерируете :crazy: .

Хотя с "там по моему в С# есть команда "int16" " - это будет сделать тяжело...

Изменено пользователем TDSS

Иван Сусанин - первый полупроводник

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

Вот, набросал софтинку, поможет при тестировании девайса на МК. Может еще для чего...

Терминал-конвертер-редактор HEX.rar

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

с заданными параметрами сгенерить коды чисел, соответствующие тем, которые мы хотим отправить на FT232 после которой они через МК в конечном итоге попадут на ЦАП,

Только что сделал, еще горячее :yes:SoundMaker.rar

ПС Обновил вложение. Добавил аппроксимацию отсчетов для улучшения наглядности.

ППС Еще раз обновил. Обнаружил ошибку, исправил.

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

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

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

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

SoundMaker .... как ее можно адаптировать к построению хотя бы одного периода сигнала любой формы?

Адаптировать ничего не нужно-она для этого и сделана!

Опишу вкратце. Имеется окно, разделенное на 100 отсчетов по оси Х-это время, и 256 по Y-это уровень в 8-ми битном представлении.

Использовать можно не все 100, а произвольно выбранные отрезки от 2-х до 100 отсчетов (выпадающие списки слева вверху).

Дальше задаем дискретизацию. Здесь я не стал ограничиваться стандартными значениями, а оставил право выбора пользователю, с одним замечанием: если при введенном значении дискретизации и выбранном кол-ве осчетов нарушается принцип теоремы Котельникова, значения автоматом меняются на "заводские".

В поле "количество повторов" выбираем, сколько циклов крутить при воспроизведении по нажатию кнопки "Прослушать" и при создании WAV файла. Время звучания рассчитывается и отображается в виде "t=... мс". Здесь надо быть внимательным: на время проигрывания программа "зависает", поэтому больших значений лучше не допускать или, если надо создать WAV достаточно длинный, сначала прослушать с меньшим значением повторов, а потом поставить необходимое количество и сохранить в WAV-файл, выбрав соответствующий пункт после нажатия "Сохранить как...".

Кнопка "Sin" формирует синусоиды (с каждым нажатием число периодов удваивается). Это было сделано для удобства проверки, да так и оставлено.

При выборе сохранения в текстовый файл сохраняются данные, выделенные зеленым, т.е. выбранный диапазон отсчетов, в виде HEX данных по 16 байт в строке, разделенных пробелами. Открыв этот файл программой из поста #11 (при установленной "галке" HEX<--->ASCII" и введенном пробеле в поле "разделитель"), эти байты можно отправить в СОМ-порт.

Сохранить свои творения можно, выбрав расширение "*.fsm".

Изучайте, пробуйте, творите. Успехов!

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

Ехе-шник нет смысла смотреть, разве что дизассемблером. Программа написана на PureBasic 5.11. Исходники я не раздаю, уж извините, да и зачем он вам? Принципы оцифровки аналогового сигнала широко известны.

ПС Пост 14 закрылся для редактирования, поэтому заменить вложение не могу, оставлю последнее изменение здесь (там одно вылечил, другое сломал :)) SoundMaker.rar

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

  • 2 недели спустя...

В своем устройстве я использую ЦАП AD9762ARUZ и в данных которые я буду отправлять с компа я должен учитывать принцип работы ЦАПа, т.е. ЦАП должен понять код который я отправляю ему он принимает данные от 0 до 4095 в десятичном виде, и в даташите приводятся формулы по которым вычисляются значения выходного напряжения. в даташите описано на 11 и 12 страницах, я перевел в гугле и если честно плохо понял, буду благодарен если кто нибудь сможет помочь разобраться в этом... т.к. для меня это немного сверх задача, и сроки сильно жмут. мне непонятно вот что, вот с помощью HEX конвертера я отправлю данные на МК, в UART регистре эти данные запишутся, далее МК берет эти данные и выставляет их на порт ЦАП, вопрос что пойдет на ЦАП, я не могу это понять. понять это хочу, чтобы разобраться правильно ли будет работать устройство... Может это и глупо, но сам не догоняю... надеюсь вопрос поставил верно...

AD9762.pdf

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

ЦАП 12-ти разрядный, значит один отсчет должен передаваться за два байта (вернее полтора, но UARTпередает целыми байтами). Вам предстоит "научить" МК принимать байты парами. Способов можно массу придумать: пауза между посылками, байт(ы)-разделители и т.п.

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

Ссылку на что? Я вам практически решение готовое говорю. Отправляете инфу в МК, МК выставляет её на своих выходах, по тактовому импульсу, полученному от МК, ЦАП выставит уровень относительно опоры Vref.

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

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

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

  • 2 недели спустя...

Здравствуйте, а можно совет? тут такое дело, мне надо все отсчеты загнать в МК чтобы я мог отключить устройство от ПК и оно работало ... у меня 30000 отсчетов, как мне лучше сделать, чтобы реализовать это?? в регистр UART наверно не влезет все, надо в память мк записывать?

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

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

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

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

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

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

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

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

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

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

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

  • Сообщения

    • Выходное сопротивление усилителя не меняется от добавления резистора впослед с нагрузкой.
    • Страшно. Наверно правильней сказать - боязно. И в первую очередь Dyd переживает за осциллограф. И это понятно инструмент все таки. Главное переступить через этот страх и сделать все с умом.
    • Вы спутали выходное сопротивление усилителя и сопротивление нагрузки. ЗЫ. Ща "Остапа понесет".
    • Да скорее всего. Если учесть что в двухполупериодном выпрямителе к закрытому диоду прикладывается удвоенное напряжение, то таких диодов на 900...1000в. было не много. Если вообще были.
    • А чего там разбираться, если вы хоть раз ремонтировали блоки питания АТХ то просто взгляните на топологию и сразу все поймёте. Я же спрашиваю совета не у студентов второго курса, а спрашиваю у опытных людей.   По теме, подключил 15 омный резистор к 12 вольтовой линии и снова сгорело верхнее плечо). Получается насколько понимаю следующая ситуация, при определенной нагрузке условно в 1 ампер по 12 вольтовой линии образуется момент при переключении верхнего ключа, когда оба транзистора становятся открыты кратковременно, верхний ещё не успевает закрыться а нижний открывается. Этот сквозной ток и выносит транзисторы. От чего так происходит непонятно, но по моему повышено общее потребление, потребление на входе при включении чисто дежурки 2.5 ватта, потребление при подключении "пробника включалки "по каждой линии нагрузки 47 Ом -15 ватт, а если ещё подключить дополнительно 15 Ом на 12Вольт  (условно 1 ампер или 12 ватт) то взлетает больше 50 Ти ватт ну и соответственно перегорает. 
    • Да ,  именно эту схему я и собирал . Ревербератор заработал сразу , только плата была самодельная , под моё расположение элементов регулировки.      
    • Там как я могу сказать питание на весь плеер через 7805 сделано которая будет питать, только этот плеер. Так что тока должно вполне хватить на все задачи. Было принято решение отказаться от него потому как он очень замудрёный в программной части. А чтоб никого не смущало надпись тоже затёр. Забыл сразу это сделать.
×
×
  • Создать...