rx3apf 0 17 июня, 2010 Опубликовано 17 июня, 2010 · Жалоба по одной дорожке никак не получится, там ведь интервалы разные. трек 2 длительность длиннее, там бит меньше... А... Я работал только с однодорожечными, значит, неправ... может стоит кварц побольше поставить? Каковы длительности интервалов при максимально возможной скорости протяжки ? Ну примерно ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Loreleja 0 17 июня, 2010 Опубликовано 17 июня, 2010 · Жалоба Каковы длительности интервалов при максимально возможной скорости протяжки ? Ну примерно ? если память мне не изменяет, частота на дорожке 1 около 1кГц, на дорожке 2 - 600...700 Гц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 17 июня, 2010 Опубликовано 17 июня, 2010 · Жалоба если память мне не изменяет, частота на дорожке 1 около 1кГц, на дорожке 2 - 600...700 Гц. 1 kHz максимальная ? Т.е. один полупериод 0.5 mS, это почти 3700 тактов процессора @7.3728 MHz. Думаю, если писать компактно (и на ассемблере, вероятно), то все три канала удастся обработать по опросу, сделав этот опрос где-то 8...16 kHz (можно и больше, вполне хватит быстродействия). Но да, это все ж сложнее, чем считать времянки и писать их в буфер... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Loreleja 0 17 июня, 2010 Опубликовано 17 июня, 2010 · Жалоба 1 kHz максимальная ? Т.е. один полупериод 0.5 mS, это почти 3700 тактов процессора @7.3728 MHz. Думаю, если писать компактно (и на ассемблере, вероятно), то все три канала удастся обработать по опросу, сделав этот опрос где-то 8...16 kHz (можно и больше, вполне хватит быстродействия). Но да, это все ж сложнее, чем считать времянки и писать их в буфер... да уж. запихивать всё в буфер и так не получится... но что ж теперь с этим обработчиком делать?... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 17 июня, 2010 Опубликовано 17 июня, 2010 · Жалоба да уж. запихивать всё в буфер и так не получится... но что ж теперь с этим обработчиком делать?... Ну, начнем с того, что при таких скоростях поступления данных можно, без всяких проблем, отправлять через UART (до 921600, используя, скажем, FT232), и буфер не то, что не переполнится, да и вообще не нужен - скорость обмена через UART заведомо больше, чем скорость поступающих сырых данных, даже если два байта на отсчет. Но, поскольку компьютер может и притормозить, по-хорошему надо все же следить за потоком, поэтому программный FIFO и обслуживать прерывания UART. Ну, если компьютер притормозит надолго - часть данных по-любому пропадет. Да и неправильный это путь. А правильный - писать свой декодер (я бы делал семплирование входов по таймерным прерываниям и разбор потока). Да, это сложнее. Но - правильнее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Loreleja 0 18 июня, 2010 Опубликовано 18 июня, 2010 · Жалоба я пока не представляю себе как реализовать, то что вы предлагаете. Мы же калибруем длительность импульсов уже при приеме данных, там для этого вначале нули идут не информационные. ну, в общем поставила кварц на 14 МГц, но блин, данные он то принимает, но для перезаписи перестал заходить в бутлоадер... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 18 июня, 2010 Опубликовано 18 июня, 2010 · Жалоба я пока не представляю себе как реализовать, то что вы предлагаете. Мы же калибруем длительность импульсов уже при приеме данных, там для этого вначале нули идут не информационные. По ним и синхронизируемся. Нули - значит, нули. Более-менее стабилизировались длительности - приняли за ноль, вычислили порог дискриминации (там бифазное кодирование ? У меня бифазное было), используем его при дальнейшем приеме (если протяжка ручная - то по ходу дела регулируем этот порог в зависимости от длительностей поступающих импульсов). Ничего такого сложного (для трех дорожек, да еще с разными скоростями - чуть сложнее, конечно). Кончились нули, пошли данные - замечательно, наполняем буфер. Кончились данные (по таймауту, наполнению буфера и/или анализу содержимого) - проверили контрольные суммы, оформили посылку в удобный и однозначно-трактуемый формат (возможно, дополнив своей контрольной суммой и заголовком), передали в компьютер. Хорошая тема, интересная... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Loreleja 0 18 июня, 2010 Опубликовано 18 июня, 2010 · Жалоба честно говоря, боюсь что-то кардинально менять. Мне этот проект еще переделывать потом как HID клавиатуру, что бы данные не в дебаг, а в текстовый редактор... а там еще и прерывание от usb идёт, ох... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться