Добрый день! Помогите разобраться. У ацп ads1255 максимальная скорость оцифровки 30 000 измерений в секунду. Флаг готовности ацп появляется с периодом 34 мкс. При работе на рекомендуемой производителем тактовой частоте 7,68 Мгц, время на запрос, t6, и чтение составляет порядка 23 мкс. Задача собрать максимальное количество измерений за 1 мс. Ранее я уже работал с этим ацп, блок расчетов взял старый, но там и скорости были 1-5 измерений в секунду. Сейчас ПО организовано так, запускаю таймер на 1 мс, и читаю в цикле сколько успею. Получается 1 измерение. А нужно 5-10. Вопросы) 1. На какой тактовой частоте должен работать контроллер, чтобы успеть забрать все данные на такой скорости? 2. Данные забирает компьютер. Как правильно организовать алгоритм чтения чтобы забрать максимальное количество измерений. Т.е. пересылать только значения 3-х байт данных, а обрабатывать уже в ПК? А как же переключение пределов.
У меня сейчас Atmega16 разбирает данные. Пишу на Си. Так в лучшем случае 1-2 измерения получается забрать на такой скорости. Циклы for, While, и т.д. съедают от 5 до 10 мск. Если заремаркировть полные циклы вычислений, то удается проконтролировать байт готовности 23-26 раз. Как только добавляю вычисления (приведение к виду напряжения, обработку предела) все сразу сходит до 1 го измерения за 1 мс.
|