Полная версия этой страницы:
Конвертер HEX -> WAV
Вот интересно, есть ли такой. Поиском нашел только wav2hex, но что-то не получилось...
Если кто знает - поделитесь, пожалуйста. Может, у синклеристов такое есть?
Дело в том, что мои пользователи хотят периодически получать обновления на купленный ими прибор. Но они - люди, весьма далекие от компьютерного железа. Сделать переходник LPT->прибор не смогут, да и LPT исчезает. Но вот аудио есть во всех компах и пока исчезать не собирается. А воткнуть стандартный кабель из линейного выхода компа в гнездо наушников на приборе они сумеют. Поэтому захотелось сделать такой бутлодырь. Скорость меня не колышет, пусть ждут. Да и ждать недолго, в приборе мега16.
В принципе, можно выдавать исходный сигнал из тестового прибора и записать его стандартной программой винды, но хотелось бы исключить лишнее преобразование и возможные ошибки при кодировании.
Так что, пока жду ответа, буду пробовать вариант с записью...
rezident
Jan 8 2008, 13:24
Если вы хотите прошивку обновлять через аудио, то вам нужно смотреть как реализованы модемы (с различными способами модуляции аудиосигнала), а не конверторы hex->wav. А еще лучше бросить эту дурацкую затею и использовать нормальный UART. Если нет в устройстве аппаратного UART, то софтовый UART на небольшую скорость реализуется совсем не сложно даже на МК с небольшой тактовой частотой. Ну и следует учитывать, что готовых устройств для сопряжения USB-COM аля DataCable для мобильника кругом как гуталину на гуталиновой фабрике. А USB в ближайшем будущем не отомрет как LPT.
colombo_2007
Jan 8 2008, 13:45
Цитата(IGK @ Jan 8 2008, 11:38)

Но они - люди, весьма далекие от компьютерного железа. Сделать переходник LPT->прибор не смогут, да и LPT исчезает.
Если так рассуждать, то уже лучше USB. Если хочешь возится с аудио, пиши свою прогу, конвертер тебя не спасет потому, что надо как-то проверять прошивку. Я бы сделал один канал синхронизации, второй дата и микрофон вход данных. Еще один момент в аудио кабелях иногда левый-правый каналы накрест, поэтому прога должна уметь менять синхронизацию и дату местами. Рой в сторону PCM и waveOut
Плохая идея. У вас получается с выхода ЦАП звуковой карты аналоговый сигнал, а потом нужно перегнать снова в цифру. Помехи неизбежны. Заморачиваться помехоустойчивым кодированием для такой работы не надо. Лучше всего (и проще) - аппаратный/программный УАРТ + COM-порт или переходник USB-COM.
Но если очень хочется, то WAV - файл содержит заголовок + данные в чистом виде. Собрать утилитку для перегона HEX в WAV самом уне проблема. Искать RIFF, так как WAV-файл - частный случай RIFF - файла. (RIFF - не расширение). Но я бы все равно не делал.
Я, видимо, неясно выразился. Меня интересует конвертер с удалением постоянной составляющей. Подойдет любой метод, скажем, двухфазное кодирование.
Затея может быть дурацкой с Вашей точки, Резидент, зрения. Думайте, как хотите и что хотите. На мой взгляд, любое техническое решение имеет право на жизнь. Если знаете - просто подскажите то, о чем я просил.
На самом деле я уже использую такой аудио кабель, чтобы можно было соединить в полевых условиях два прибора и передать с одного на другой настройки (т.наз."профиль"). UART я использую и как звуковой синтезатор, и для связи приборов. Ну и его использование (кабеля) прямо напрашивается для загрузчика - ничего паять не надо, все уже есть.
Теперь по поводу USB переходника.
Это требует или от меня, или от пользователя дополнительных затрат, а речь идет о бытовом устройстве нижнего ценового диапазона. Я за свой счет USB переходник поставлять не буду. Да и проблемы с ними весьма вероятны - и драйвер ставить надо, и станет он косо...
Этих переходников у меня много - моя лаборатория в одном здании с компьютерщиками и мобильщиками. Все они разные, и с преобразованием уровня, и без оного. И на разных матерях ведут себя по разному. На некоторых и вообще не живут, пока драйвер подходящий не скачаешь.
colombo_2007: я планировал конвертировать блоками по 128 байт, с CRC. Затем объединить блоки в один файл, повторить два раза. И, если надо, считывать WAV повторно, с заменой сбойного блока. Раньше как-то загружали проги, да еще с магнитофона. И ничего, все работало...
Цитата
Меня интересует конвертер с удалением постоянной составляющей. Подойдет любой метод, скажем, двухфазное кодирование.
Идею все равно не понял. Что с выхода звуковой карты? Типа звук, но внутри данные? Или АМ, ЧМ или ФМ - модулированный сигнал?
Цитата
На мой взгляд, любое техническое решение имеет право на жизнь.
На обсуждение - да, на жизнь - нет
Цитата
UART я использую и как звуковой синтезатор, и для связи приборов.
Или это экзотический прибор - или я после праздников торможу
Цитата
Я за свой счет USB переходник поставлять не буду
Хотят обновлятся - пусть платят
Цитата
я планировал конвертировать блоками по 128 байт, с CRC. Затем объединить блоки в один файл, повторить два раза.
Зависит от количества сбойных байт
Цитата
И ничего, все работало...
Особенно с кассетами МК60
SpectraLAB может импортировать в том числе и двоичные файлы, в которых каждый отсчет это либо 8 бит, либо 16, либо 32. Количество каналов (моно или стерео) и частота следования отсчетов задается отдельно руками. Результат можно посмотреть, проиграть и, естественно, сохранить как WAV.
Вот только проблема почти всех GUI програм - это невозможность автоматизировать процесс. Поэтому проще сделать как посоветовал Bird2. Тоесть разобраться с WAV-заголовком и просто записывать его в начало файла с двоичными данными.
Не совсем понятно как вам синклеристы могут помочь. Полагаю, что сейчас не найти работоспособный Синклер. А эмуляторы Синклера для x86 машин, не работают с процедурой чтения/записи на касетный магнитофон.
Цитата(yuri_d @ Jan 8 2008, 23:16)

SpectraLAB может импортировать в том числе и двоичные файлы, в которых каждый отсчет это либо 8 бит, либо 16, либо 32. Количество каналов (моно или стерео) и частота следования отсчетов задается отдельно руками. Результат можно посмотреть, проиграть и, естественно, сохранить как WAV.
Спасибо. Сейчас найду SpectraLAB, закачаю и проверю. Насчет WAV - пока не готов, надо разбираться...
Насчет жизни - так она и покажет, что выживет, а что нет. Вот у америкосов даже патент на обмен "профилями" выдан... Правда, на год позже, чем я применять начал. Знал бы, что такую х..ню патентуют, сам бы заявку подал.
UART в виде синтезатора - а что тормозить то? Пишите 55Н в UDR, играете частотой через UBRR - вот и генератор меандра. Просто все таймеры задействованы на более серьезные задачи. А пищать динамиком надо...
МК60 - ну и что? Работало ведь. Вы на SPDIF гляньте - та же МК60 в электронном виде. И сбоев я не боюсь - это не автоматика на ядерной станции. Ну сбойнет разок - второй раз загрузчик стартуют, и все. Да что там говорить, проверю на неделе в железе.
rv3dll(lex)
Jan 9 2008, 05:18
даже идея записать в виде звука цифры шестнадцатиричного кода который пользователь, прослушав, наберёт в блокноте выглядит куда более надёжно
colombo_2007
Jan 9 2008, 06:07
Цитата(IGK @ Jan 8 2008, 20:03)

colombo_2007: я планировал конвертировать блоками по 128 байт, с CRC. Затем объединить блоки в один файл, повторить два раза. И, если надо, считывать WAV повторно, с заменой сбойного блока. Раньше как-то загружали проги, да еще с магнитофона. И ничего, все работало...
И я тебе о том, но компъютер должен как-то знать какой блок сбойный. Проиграть два раза можно, но как-то все это не надежно. программа которая эмулирует работу UART на звуковой карте лучше смотрится.
Если не хочешь USB, можно сделать последовательный порт подключаемый в туже дырку что и аудио, там как раз три провода.
Если не секрет, чо за прибор такой?
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.