Wymyśliłem to tak ale wszystkie koncepcje dozwolone
Chcę aby można było zamienić taki sterownik w prost ze sterownikiem silnika krokowego
Prawo lewo
Jeśli na jednym pinie jest stan wysoki to kręć w prawo jeśli niski to w lewo
(Sprawdzenie wartości z enkodera (co robi silnik) wysłanie odpowiedniej wartości do portu i ustawienie mosfetów)
Enable
Jeśli stan wysoki na pinie to załącz silnik jeśli niski wyłącz silnik
Sprawdzenie wartości z enkodera (co robi silnik) Wysłanie odpowiednich wartości do portu ustawienie mosfetów)
Krok
Jeśli na pinie dostaniesz sygnał zrób krok
(zliczaj impulsy z enkodera do licznika jeśli zliczysz 100 to zrób następny krok (przykładowa wartość 100 impulsów np 1,8 stopni))
Pokombinował bym żeby można było zworkami wybierać podział (realizując dzielnik/mnożnik "kroków"
Praca dynamiczna
Kombinuje to w ten sposób aby buforować sygnały zegarowe czyli odpowiedzialne za krok i dynamicznie dopasowywać przyspieszanie i zwalnianie, buforował bym to w pamięci kontrolera a jeśli było by za mało to dodał bym zewnętrzną pamięć na I2C
Zabezpieczenie prądowe
Myślę że dobrym rozwiązaniem jest danie w źródle mosfeta rezystora o małej wartości i z stamtąd poprzez dzielnik brane napięcia do przetwornika ADC, było by to ciągle monitorowane bo przecież chodzi o zabezpieczenie silnika
Na razie więcej nie przychodzi mi do głowy