Witam (po raz pierwszy na tym forum)
Wlasnie ostatnio myslalem troche nad sterowanie silnikow krokowych z komputera. Dalem nastepujace zalozenia - nie wymagamy od komputera pracy real-time, czyli to nie komputer odmierza kazdy impuls. W miare mozliwosci prosty interfejs, tak by dowolny komputer pasowal. Wymyslilem nastepujace cos:
Podlaczamy do LPT interfejs, ktory akceptuje normalnie, zgodnie z protokolem Centronics dane. Kazdy otrzymany bajt traktuje jako polecenie przestawienia silnika o jeden krok i poczekania pewnien czas (moze byc odwrotnie). Proponuje 1 bit na kierunek (prawo - lewo) i 7 na czas. Po odczekaniu potwierdza odczyt danych z portu. Brak danych na porcie oznacza zatrzymanie silnika. Caly ruch silnika mozna zapisac jako odpowiedni ciag bajtow. Prawie wszystkie systemy operacyjne (i inne tez) sa w stanie w miare plynnie przeslac blok danych na port, wiec problemy z szybkoscia sa znacznie zredukowane (no i komputer jest w miare malo obciazamy).
Sam interfejs widze jako prosty automat (np. moja ulubiona architektura - rejestr 74374 + eprom jako tablica przejsc wyjsc) taktowany zegarem o czestotliwosci = max silnika krokowego (najkrotszy okres miedzy krokami).
Jest to na razie tylko ogolna koncepcja, nawet nie zastanawialem sie jak duzy automat bedzie potrzebny. Ale mysle ze zaraz zaczne to konstruowac, bo kilka silniczkow lezy. Problemem byloby sterowanie rownoczesne kilkoma silnikami - trzeba by miec kilka portow LPT, albo trzeba jakos to multipleksowac.
Krzysiek Rudnik