Здравствуйте!!!
Начну по порядку:
1) что имеется:
а) некое устройство к которому подходит 3 провода (масса, + питание, управляющий). питание будет от отдельного блока питания. Таких устройств предполагается где-то 26 штук. Блок питания на них один. На управляющий провод каждого устройства должен подаваться свой импульс (прямоугольный), который меняется по длительности от 0,5 до 3мс с шагом, примерно, 0,04мс.
б) компьютер, у которого есть LPT разъем с 12-ю управляемыми выходами (2,3,4,5,6,7,8,9,1,14,16,17 – управляемые ножки, которые устанавливаются как High level при включении программно). Т.е. я могу задать цикл включения этих 8-ми ножек так как мне это нужно будет. Имеется еще и 5 входных ножек - по ним возможно будет читаться какая-то информация с устройств.
2)Идея:
а) соорудить "плату", возможно с микроконтроллером или с такой микросхемой, которая сбрасывается (очищается) при засвечивании ультрафиолетом (далее буду называть микроконтроллером). Эта плата будет получать сигналы с ПК, а на выходе платы будут импульсные управляющие сигналы для каждого устройства. В памяти необходимо держать одномерный массив постоянных величин– соответствие длительности импульса принятому коэффициенту, количество ячеек массива=64, тип данных целочисленный.).
б)с компьютера задать последовательность битов на LPT-порт: в цикле для всех устройств задается включением соответствующих pin lpt порта некие значения для всех устройств (попарно в пакете передачи). Т.е. имеется для каждого устройства 64 величины - коэффициенты, соответствующие определенным импульсам.
Пример:
б.1) в соответствии с последовательностью ножек включить для первых 2-х устройств - 101000110100 что означает что для 1-го устройства установить импульс, соответствующий цифре 101000 (5 в 10-ной системе) и для 2-го - 110100 (13 в 10-ной системе).
б,2) и так для всех остальных попарно передать на плату такие пакеты, возможно с задержкой (1мс), если задержка требуется. Времени на передачу всего потребуется=(кол-во пакетов)*(время пакета+время задержки)=13*(1+1)=26мс.
в) на "плате" принимать эти значения, запоминать для какого устройства были приняты значения (сделать что-то типа двумерного массива data[7,9]: 7- номер устройства, 9 - коэффициент, соответствующий длине импульса).
г) после формирования и заполнения всего массива для всех 26 устройств в микроконтроллере устанавливать простой программной логикой, если позволит память микроконтроллера, на выходе платы импульсный сигнал для конкретного устройства. Т.е. для 7-го устройства коэффициент=9 , значит установить на выходе платы для этого устройства импульс длиной 0,5мс+0,04мс*9=0,86мс).
С компьютером и программным обеспечением уже все нормально работает, может быть заточено под эту задачу за 30 минут. Остаются проблемы с микроконтроллером и платой.
Так вот задача: подскажите на каком микроконтроллере это можно сделать, какую книжку прочитать (желательно не общеобразовательную, а под конкретную задачу), и кто поможет с наброском схемы платы?