Переписать прошивку под другой контроллер

Neman2000
kot34rus:

Вечер добрый.
Есть схема регулятора под speed 400, на at90s2343, нужно передалть ее под attiny2313, может кто поможет?

P.S. схема не моя и с автором связаться никак.
P.P.S. или может кто поделится исходником на С под tiny2313, для управления коллекторным движком класса 400?
заранее спасибо.

рег под tiny2313(прошивка Матвеева в рекламе ненуждается),
а Си получите загрузив и тд…асм в Flowcode(если схавает)

регулятор.rar

kot34rus
Neman2000:

рег под tiny2313(прошивка Матвеева в рекламе ненуждается), а Си получите загрузив и тд…асм в Flowcode(если схавает)

скачал, грузанул… не схавал…

Syberian

гм, схема в Протеусе делана 😃 прикольно…

kot34rus

тогда может кто-нить ткнет носом в алгоритм работы регулятора(как считывается сигнал с ножек, как его обрабатывать и формировать управляющий сигнал), как организовать ВЕС, отсечку и т.д.

Chekhov

Немного не по теме, но происходит всё примерно так (как сам делал для Mega8).

  1. нужно 2 таймера для правильной работы.
    задача первого - считать длительность импульсов на INT0 - ставим на него прерывание в режиме Any-change.
    в этом прерывании считываем таймер, обнуляем его, смотрим, что на ножке - если там ноль => импульс кончился => вычисляем значение PWM и заносим в регистр.
    второй таймер отдан на PWM.

2 таймера нужны для того, чтобы не делать PWM программно, т. к. если единственный таймер отдать на PWM - у него частоты не хватит для отсчёта длительности импульсов, а если его частоту сделать достаточной, то на выходе PWM будет уже не меандр ( ёмкость его сгладит ) - а уже нечто похожее на синусойду - тут ключи и будут греться.

ЗЫ. По этой прошивке ничего сказать не могу т.к. в ассемблере я НОЛЬ.

Не пинайте сильно, если чё не так сказал. Но критика полезна.

Neman2000
kot34rus:

Вечер добрый.
Есть схема регулятора под speed 400, на at90s2343, нужно передалть ее под attiny2313, может кто поможет?

P.S. схема не моя и с автором связаться никак.
P.P.S. или может кто поделится исходником на С под tiny2313, для управления коллекторным движком класса 400?
заранее спасибо.

Исходники автор всем любезно высылал.
У этого рега шим(120Гц) зависит от питания тиньки(2,7в),
попробовал в кодвижине(поменял инклюду и визард на тини2313) перекомпилировать под тини2313 и
получилось только с исходника тини22,а с 2343 выдает кучу ошибок ,
фузы придется понипрогом заносить(тактовый-1мгц,собаку откл.)
,а вообще тини2313 легко фузами запарывается (можно потерять проц загнав его
в отладку или закрыв сброс и последовательное програмирование,кому надо-калькулятор фузов в архиве,на русском можно скачать книгу Белов все о тини2313 и переведеный
даташит г.Шахты ЮРГУЭС Магистратура Конев Д.Н. iprito@mail.ru
по идее на тини2313 должен работать на на теже порты что и тини22?
Вот кто бы типа Сергея Потупчика или он сам рассказали бы хоть в кратце
алгоритм -как все в проце для рега работает?

Всех с НАСТУПАЮЩИМ!!!

исходники.rar

PigTail

Ну вообще то стандартная замена должна быть на ATTiny25, нафига Вам столько ног, взгляните документик от Атмела по переходу с 2343 на Тиньку25 www.atmel.com/dyn/resources/…/doc2594.pdf
и изучайте лучше Си а не картинки в флаукоде 😉

Chekhov

А лучше читайте сразу doc2586.pdf - он про ATiny25/45/85 - идентичные по набору команд и возможностям МК.

Присоединяюсь к PigTail - учите лучше Си. Каждый уважающий себя матёрый программист со мной согласиться ( надеюсь на это ).
Свой рег, не зная почти ничего о МК, сделал за неделю!!!

Пользовался своими знаниями С и проги вообще + материалы с avr123.nm.ru (ЭТО НЕ РЕКЛАМА - ПРОСТО ВСЕГО ПОНЕМНОГУ В ОДОМ МЕСТЕ.)

Chekhov

Глянул я предоставленный исходник - впринципе в #15 посте я также написал алгоритм, просто у меня больше проверок, более нагружена логика и программный шим, что советую и вам сделать. Для этого исходника это сделать легко.

А насчёт отсечки - все тут маются со всякими резисторами, подбирают их(причём долго.)
Мне кажется, что всё это фигня, если под рукой есть нормальный стабилизированный источник напруги и тестор (если чел делает рег - то всё это есть).
В режиме настройки параметров регулятора (изза его отсутствия этот рег влезает в 2 кб. в этом же режиме обычно настраивают отклонения газа и т.п.) делается такая фишка - рег подключают к источнику, выставляют напряжение отсечки, потом рег сам измеряет это напряжение и заносит его в свои мозги - и теперь отсечка будет при этом напряжении. По моему просто и гениально одновременно.

Syberian

просто и гениально одновременно

еще проще и “гениальнее” будет подключить переменный резистор на вход, добиться нужной отсечки, и впаять вместо него связку постоянных с тем же суммарным сопротивлением

Chekhov

Вот именно перепаивание мне и не нравиться.От нагревания сопротивление изменяется, а дорожки тоже не вечные.
Кноечно мой подход летит, если планируется использовать рег с разными акками - 2, 3 банки, или требовать от него автоопределения акка.
Зато большой плюс - НИКАКОГО СПЕЦИАЛЬНОГО подбора резисторов - просто нужно поставить 2 резистора в дельтель так, чтобы вход ADC не спалить - у меня это 1к и 4к7.

Если хотите рег из представленной прошивки делать, то оттуда нужно ещё выкинуть декодер.

AlexSr

Кноечно мой подход летит, если планируется использовать рег с разными акками - 2, 3 банки, или требовать от него автоопределения акка.

А почему бы Вам не сделать калибровку при известном значении (как у Вас и сделано, только максимальном V), а потом не пересчитать коэффициэнт для напряжения на другие пороги? Что мешает?

Chekhov

Верно подмечено!!! Зависимость будет почти линейная - должно сработать.
Тогда можно сразу ставить и автомат по определению подключенного аккумулятора и никаких утомительных подборок резисторов !!!

Единтвенное НО: чтобы пересчитать коэффициет нужно, чтобы рег знал, какое напряжение соотвецтвует полученному из ADC значению => калибровку нужно проводить 2 раза отдельно для Li-po и NiCd/NiMh (хотя это тоже терпимо).

Я хотел добиться того, что регу было начихать на реальность. Опустилось до измеренного значения - отключайся, а какое оно на самом деле ему всё равно.