Вот схема в упрощенном виде, даю для понимания в принципе.
Ее основное отличие от схем представленных в инете (kazus.ru/nuke/spaw/images/1/30.gif), в том, что компараторы заведены не на int0/1, а просто на пины порта. Я симулировал в протеусе схему в варианте с заведением компараторов на int но в симуляции компараторы залипали в одном положении и ограничение тока переставало работать. Ток почему то не успевал спадать.
Я стал опрашивать компараторы в прерывании таймера, и в соответствии со значением на выходе компаратора либо включал соответствующую обмотку либо нет, дожидаясь когда спадет ток.
//Обработчик прерывания таймера
{
_Data = Data[step];
if (bit_is_clear(PIND,0))
{
_Data &= 0b1010;
}
if (bit_is_clear(PIND,1))
{
_Data &= 0b0101;
}
PORTC = _Data;
TCNT0 = TCNT0_1MS;
}
В общем контроллер работает, но прежде чем делать уже законченный вариант для станка хотелось бы услышать возможную критику. Дабы не рвать волосы если вдруг что.
Спасибо.
Принимать решение о закрытии транзистора микроконтроллером не есть хорошо,
имеет смысл поставить простой триггер на копеечной логике и спать спокойно.
Принимать решение о закрытии транзистора микроконтроллером не есть хорошо,
То есть схема в которой задействованы int прерывания, тоже по сути порочна? А триггером рулить с мк чтобы частота переключений транзистора была в разумных пределах?
Но при этом потребуется еще и микросхема 2И.
Когда все живет в штатном режиме то контроллером управлять можно, и все будет нормально, но представим что возникла импульсная помеха,
и контроллер ушел в перезагрузку на 0.5 сек - в результате дым, с внешним триггером мы просто потеряем шаги. НО ДРАЙВЕР ВЫЖИВЕТ.
Перезагрузка не страшна, вот если зависнет то да.
{"assets_hash":"a8b26fa7f6e768b07a72c8c9aadb9422","page_data":{"users":{"44b6363c3df955007778a0f0":{"_id":"44b6363c3df955007778a0f0","hid":15433,"name":"mura","nick":"mura","avatar_id":null,"css":""},"511a11063df955007773a2e1":{"_id":"511a11063df955007773a2e1","hid":137469,"name":"Bmax77","nick":"Bmax77","avatar_id":null,"css":""}},"settings":{"can_see_ip":false,"can_report_abuse":false,"can_see_hellbanned":false,"forum_can_view":true,"forum_can_reply":false,"forum_edit_max_time":30,"forum_can_close_topic":false,"forum_show_ignored":false,"forum_mod_can_delete_topics":false,"forum_mod_can_hard_delete_topics":false,"forum_mod_can_see_hard_deleted_topics":false,"forum_mod_can_edit_posts":false,"forum_mod_can_pin_topic":false,"forum_mod_can_edit_titles":false,"forum_mod_can_close_topic":false,"can_vote":false,"forum_mod_can_add_infractions":false,"forum_topic_title_min_length":10,"forum_reply_old_post_threshold":30,"votes_add_max_time":168,"forum_show_post_interval":7,"can_see_deleted_users":false},"section":{"_id":"61c9a54c3df9550077bb51bc","hid":110,"title":"Драйверы и контроллеры для CNC","parent":"61c9a54c3df9550077bb51b9","description":"Обсуждение приводов и контроллеров для управления станками CNC.","is_category":false,"is_votable":true,"is_writable":true,"cache":{"topic_count":662,"post_count":12810,"last_post":"65cdce803627b35af4956dfa","last_topic":"65cdce803627b35af4956df9","last_topic_hid":572337,"last_topic_title":"Драйвер ТВ -6600","last_ts":"2024-02-15T08:42:40.608Z","last_user":"47e0d3f43df955007777ca60"}},"topic":{"_id":"5124a7df3df955007723bcdd","hid":310836,"title":"Требуется критика по алгоритму работы контроллера.","views_count":1788,"last_post_counter":5,"cache":{"post_count":5,"first_post":"5124a7df3df955007723be9a","first_ts":"2013-02-20T10:39:27.000Z","first_user":"511a11063df955007773a2e1","last_post":"5125e36c3df955007723bea2","last_post_hid":5,"last_ts":"2013-02-21T09:05:48.000Z","last_user":"511a11063df955007773a2e1"},"st":1,"section":"61c9a54c3df9550077bb51bc"},"subscription":null,"pagination":{"total":5,"per_page":25,"chunk_offset":0},"posts_list_before_post":["paginator","datediff"]},"locale":"en-US","user_id":"000000000000000000000000","user_hid":0,"user_name":"","user_nick":"","user_avatar":null,"is_member":false,"settings":{"can_access_acp":false,"can_use_dialogs":false,"hide_heavy_content":false},"unread_dialogs":false,"footer":{"rules":{"to":"common.rules"},"contacts":{"to":"rco-nodeca.contacts"}},"navbar":{"tracker":{"to":"users.tracker","autoselect":false,"priority":10},"forum":{"to":"forum.index"},"blogs":{"to":"blogs.index"},"clubs":{"to":"clubs.index"},"market":{"to":"market.index.buy"}},"recaptcha":{"public_key":"6LcyTs0dAAAAADW_1wxPfl0IHuXxBG7vMSSX26Z4"},"layout":"common.layout"}