2 страниц V   1 2 >  
 
> Втек контроллер на популярном attiny, простенький
 Mayhem
сообщение 26.03.11 - 16:33
Сообщение #1


Хондавод
*

Группа: .Хондаводы.
Сообщений: 625
Имя: Андрей
Город: Сороковка
Машина: EG8 VTEC JDM

Репутация: 21



сижу изучаю МК. думал, чтоб сделать простенькое, чтоб потренероваться, вспомнил регулярные посты в темах про замены головок на втековые .

вот что плучилось:

Содержание:
Код
#include <avr/io.h>
#include <avr/interrupt.h>

const unsigned char
    b0 = 0b00000000,
    b1 = 0b00000001,
    b2 = 0b00000010,
    b3 = 0b00000100,
    b4 = 0b00001000,
    b5 = 0b00010000,
    b6 = 0b00100000,
    b7 = 0b01000000,
    b8 = 0b10000000;

volatile unsigned int timertics = 0;
unsigned char flags = 0;

ISR(TIMER1_CAPT_vect)                    //прерывание по захвату сигнала зажигания
{

static unsigned char count = 0;
static unsigned int buffer = 0;    

    TCNT1 = b0;                            
    buffer += ICR1;                    // таймер делает тик за 8 тактов, суммируем 8 раз -
    if(++count == 8)                    // - получаем среднее арифметическое))
    {
        timertics = buffer;
        buffer = 0;
        count = 0;
    };
    flags |= b1;
};

ISR(TIMER1_OVF_vect)                    //прерывание по переполнению если зажиганий небыло 60000 тиков
{
    TCNT1 = b0;
    flags = b0;
};


int main(void)
{

unsigned int rpm;
const unsigned int rpl = 1000;        //rpm на один светодиод

    TCCR1B = b2+b7;                    //разрешить захват входного сигнала, предделитель = 8.
    TIMSK = b4+b8;                        //разрешить прерывание по захвату и по переполнению.

    DDRD = b6;                         //1 - выход.
    PORTD = b0;
    PIND = b0;

    DDRB = b1+b2+b3;                         //1 - выход.
    PORTB = b0;
    PINB = b0;

    sei();                                    //включить глобальные прерывания.

    for(;;){

        if(flags){                            //если двигатель запущен.

            if (timertics)                    // кол-во тиков !=0, чтоб не зависнуть с делнием на 0
                rpm = 30000000/timertics;    // 1MHz*30 - 2 импульса за 1 оборот, импульсы через 30 секунд при одном обороте в минуту.
        
            if (rpm > 4200)                    //обороты включения
                flags |= b2;

            if (rpm < 4000)                 //обороты выключения
                flags &= ~b2;

        };
        if (PIND & b5)                         //проверка давления масла
            PORTD = (flags & b2)<<4;        // подгонка бита флага к биту порта.
        else
            PORTD = b0;
        

        //// тахометр ////

        PORTB &= ~b3;                //сброса регистра
        PORTB |= b3;
        while (rpm > rpl){
            PORTB |= b1;            //сдвинуть бит регистра
            PORTB &= ~b1;
            rpm -= rpl;
        };
        PORTB |= b2;                //защёлкнуть регистр
        PORTB &= ~b2;
            
    };
};


добавил тахометр, большенство безвтековых хонд идут без тахо, да и нужно чем-то полезным занять МК между импульсами.))
в схеме можно ампутировать ISP разъём, оптрон(если брать сигнал из мозга), кварц (если прошить вьюзы на внутренний генератор) и стабилизатор(если положить плату внутрь мозга и питаться от него).
если джампер в верхнем положении, давление масла не учитывается.
второй регистр 74CH стоит для примера, так их можно поставить хоть на 9000 светодиодов))
реле нормально разомкнутое.

Прикрепленное изображение

Прикрепленное изображение

прошивка на включение втека 4200 рпм и выключение 4000 рпм, 1000 рпм на светодиод (на 8 диодов)
Прикрепленный файл  vteccontrol.zip ( 1,08 килобайт ) Кол-во скачиваний: 79

деталировка, печатка инвертированна под "утюг"
Прикрепленное изображение

Прикрепленный файл  SCH.zip ( 86,1 килобайт ) Кол-во скачиваний: 49

в архиве есть печатка с расположением резисторов под платой(для компактности), только не забудте припаять их до пайки микрухи.
Прикрепленное изображение


Сообщение отредактировал Mayhem - 29.03.11 - 01:16



           
 Renemen
сообщение 26.03.11 - 22:07
Сообщение #2


Хондавод
*

Группа: .Хондаводы.
Сообщений: 658
Имя: Илья
Город: Екатеринбург
Машина: Accord CH7 2.0iES МТ '99

Репутация: 19



О, клева, спасибо! .).gif
А, почему мегу использовал?



           
 Mayhem
сообщение 27.03.11 - 11:42
Сообщение #3


Хондавод
*

Группа: .Хондаводы.
Сообщений: 625
Имя: Андрей
Город: Сороковка
Машина: EG8 VTEC JDM

Репутация: 21



певый проэкт создал, ткнул что попало, потом лень менять было)) это не окончательная версия.



           
 Mayhem
сообщение 27.03.11 - 20:30
Сообщение #4


Хондавод
*

Группа: .Хондаводы.
Сообщений: 625
Имя: Андрей
Город: Сороковка
Машина: EG8 VTEC JDM

Репутация: 21



поменял контроллер на поменьше.
исправил: зажигание 2 раза за оборот, а не 4))

Сообщение отредактировал Mayhem - 28.03.11 - 00:44



           
 Mayhem
сообщение 28.03.11 - 03:49
Сообщение #5


Хондавод
*

Группа: .Хондаводы.
Сообщений: 625
Имя: Андрей
Город: Сороковка
Машина: EG8 VTEC JDM

Репутация: 21



учился составлять печатки, вроде не плохо получилось.



           
 Renemen
сообщение 28.03.11 - 07:44
Сообщение #6


Хондавод
*

Группа: .Хондаводы.
Сообщений: 658
Имя: Илья
Город: Екатеринбург
Машина: Accord CH7 2.0iES МТ '99

Репутация: 19



Цитата(Mayhem @ 28.03.11 - 06:49 ) *
учился составлять печатки, вроде не плохо получилось.
Во ) старая добрая 2313, самое то)




           
 Shurik+
сообщение 28.03.11 - 09:42
Сообщение #7


Хондавод
*

Группа: .Хондаводы.
Сообщений: 1.465
Имя: Александр
Город: СССР
Машина: RA4 turbo / BB1

Репутация: 27



Андрюх, ты хоть напиши что это alpha-devel, то бишь учимся МК вместе с автором .).gif

Не совсем въехал, среда Arduino?



           
 Mayhem
сообщение 28.03.11 - 14:00
Сообщение #8


Хондавод
*

Группа: .Хондаводы.
Сообщений: 625
Имя: Андрей
Город: Сороковка
Машина: EG8 VTEC JDM

Репутация: 21



Цитата(Shurik+ @ 28.03.11 - 09:42 ) *
Андрюх, ты хоть напиши что это alpha-devel, то бишь учимся МК вместе с автором .).gif

Не совсем въехал, среда Arduino?

alpha-devel подразумевается, не будем пугать читателей))


нет никаких оболочек, прошивку можно лить в пустой МК, я компилил WinAVR GCC



           
 Mayhem
сообщение 29.03.11 - 00:32
Сообщение #9


Хондавод
*

Группа: .Хондаводы.
Сообщений: 625
Имя: Андрей
Город: Сороковка
Машина: EG8 VTEC JDM

Репутация: 21



добавил пару токоограничивающих резисторов на всякий случай.
сделал разводку под круглые светодиоды.

/// добавлено ///
чёт только сейчас дошло, что медь то нужно было под платой делать, так удобней паять, тоесть зря я инвертировал печатку, инвертируйте обратно.))

Сообщение отредактировал Mayhem - 29.03.11 - 05:43



           
 Slash
сообщение 18.09.11 - 08:31
Сообщение #10


Хондавод
*

Группа: .Хондаводы.
Сообщений: 66
Имя: Гена
Город: Минск
Машина: Аккорд 1.8iVTEC 2000г CG8 F18B2

Репутация: 2



Народ-напомните .).gif - чьо за девайс и как работает? что то очь знакомое!



           
 Mayhem
сообщение 18.09.11 - 20:17
Сообщение #11


Хондавод
*

Группа: .Хондаводы.
Сообщений: 625
Имя: Андрей
Город: Сороковка
Машина: EG8 VTEC JDM

Репутация: 21



на определённых обоотах смотрит на давление масла, и если оно есть - подёт сигнал на втек клапан.



           
 Slash
сообщение 18.09.11 - 21:36
Сообщение #12


Хондавод
*

Группа: .Хондаводы.
Сообщений: 66
Имя: Гена
Город: Минск
Машина: Аккорд 1.8iVTEC 2000г CG8 F18B2

Репутация: 2



Здорово. Я ж подумал на индикатор как когда ездил на ралли, а на
крутых тачках уже подмигивали на переключение,
и счас вот думал такой бы замутить, а то на гольфе у меня тогда еще ЕСУ не было rolleyes.gif

Сообщение отредактировал Slash - 18.09.11 - 21:37



           
 Renemen
сообщение 09.12.11 - 07:05
Сообщение #13


Хондавод
*

Группа: .Хондаводы.
Сообщений: 658
Имя: Илья
Город: Екатеринбург
Машина: Accord CH7 2.0iES МТ '99

Репутация: 19



А, можно добавить в программу watchdog? Сделать его скажем на 250 или 500 мс. В условиях помех всяческих я думаю - это будет полезная фича.
Все клево, в протеусе работает, как надо, думаю можно кварц не использовать, супер точность не так уж важна наяерное +/- 100 оборотов роли не сыграет. По мануалу на тиньку уход частоты встроенного генератора от температуры -1,35%/ + 3,5 %, при условии конечно что питание будет стабильным. Просто порылся в закромах и чего-то не нашел б/у какого нить кварца нормального.



           
 Renemen
сообщение 09.12.11 - 07:10
Сообщение #14


Хондавод
*

Группа: .Хондаводы.
Сообщений: 658
Имя: Илья
Город: Екатеринбург
Машина: Accord CH7 2.0iES МТ '99

Репутация: 19



Цитата(Mayhem @ 18.09.11 - 23:17 ) *
на определённых обоотах смотрит на давление масла, и если оно есть - подёт сигнал на втек клапан.


Эта фишка с датчиком немногоне так реализована может быть, типа сначало включается клапан, а потом надо смотреть на датчик, в кранем случае можно перемычку поставить на выход клапана. В этом случае, если клапан оборван (выход не замкнут на землю) схема стоже не убдет срабатывать. А, еще в мозгах управление клапаном реализованно p-n-p транзистором, реле в данном случае лишнее.



           
 ColdWind
сообщение 09.12.11 - 07:35
Сообщение #15


Ветеран форума III-й степени
**

Группа: .Хондаводы.
Сообщений: 2.550
Имя: Дмитрий
Город: Москва - Тушино
Машина: HONDA CIVIC VIII 4D....RIP

Репутация: 102



Цитата(Renemen @ 09.12.11 - 08:05 ) *
А, можно добавить в программу watchdog? Сделать его скажем на 250 или 500 мс. В условиях помех всяческих я думаю - это будет полезная фича.
Все клево, в протеусе работает, как надо, думаю можно кварц не использовать, супер точность не так уж важна наяерное +/- 100 оборотов роли не сыграет. По мануалу на тиньку уход частоты встроенного генератора от температуры -1,35%/ + 3,5 %, при условии конечно что питание будет стабильным. Просто порылся в закромах и чего-то не нашел б/у какого нить кварца нормального.


тут с проблемой столкнулись: встроенный генератор не всегда стабильно стартует при низких температурах.






®
По умолчанию я счастлив. Пожалуйста не надо лезть в мои настройки.
           
 Renemen
сообщение 09.12.11 - 14:08
Сообщение #16


Хондавод
*

Группа: .Хондаводы.
Сообщений: 658
Имя: Илья
Город: Екатеринбург
Машина: Accord CH7 2.0iES МТ '99

Репутация: 19



Цитата(ColdWind @ 09.12.11 - 10:35 ) *
тут с проблемой столкнулись: встроенный генератор не всегда стабильно стартует при низких температурах.
Вот те на, а заявлено -40 )
Это на каких контроллерах, какое напряжение питания?




           
 ColdWind
сообщение 09.12.11 - 17:29
Сообщение #17


Ветеран форума III-й степени
**

Группа: .Хондаводы.
Сообщений: 2.550
Имя: Дмитрий
Город: Москва - Тушино
Машина: HONDA CIVIC VIII 4D....RIP

Репутация: 102



SOC 3310 от texas instruments. Напряжение питания 3.3в, при приближении к -40 работает хорошо, но после выключения не запускается с внутренним генератором. Пришлось на кварц перейти. Так что может на атмеле все получится.






®
По умолчанию я счастлив. Пожалуйста не надо лезть в мои настройки.
           
 Mayhem
сообщение 10.12.11 - 01:50
Сообщение #18


Хондавод
*

Группа: .Хондаводы.
Сообщений: 625
Имя: Андрей
Город: Сороковка
Машина: EG8 VTEC JDM

Репутация: 21



Renemen,
посмотри начало темы, я там не только кварц предлагал ампутировать, но и стабилизатор))
всё можно сделать, это был мой пробный проэкт, доделай его, если будут вопросы - обращайся.

Сообщение отредактировал Mayhem - 10.12.11 - 02:20



           
 Renemen
сообщение 10.12.11 - 11:46
Сообщение #19


Хондавод
*

Группа: .Хондаводы.
Сообщений: 658
Имя: Илья
Город: Екатеринбург
Машина: Accord CH7 2.0iES МТ '99

Репутация: 19



Цитата(ColdWind @ 09.12.11 - 20:29 ) *
SOC 3310 от texas instruments. Напряжение питания 3.3в, при приближении к -40 работает хорошо, но после выключения не запускается с внутренним генератором. Пришлось на кварц перейти. Так что может на атмеле все получится.

Надеюсь что получится, тем более напряжение будет 5 В (от внутреннего стабилизатора в мозгах)

Цитата(Mayhem @ 10.12.11 - 04:50 ) *
Renemen,
посмотри начало темы, я там не только кварц предлагал ампутировать, но и стабилизатор))
всё можно сделать, это был мой пробный проэкт, доделай его, если будут вопросы - обращайся.

Если бы я хоть что-то понимал в коде, который ты написал) смотрел-смотрел, вообще ничего не понял, как что работает) получилось только инвертировать работу выхода) что-то дописать, вряд ли получится.. sad.gif
Попробую конечно bascom, но все равно это дольше будет разбираться((
Еще интересно было бы попробовать использовать attiny13 c 8 ногами .).gif




           
 Mayhem
сообщение 10.12.11 - 13:13
Сообщение #20


Хондавод
*

Группа: .Хондаводы.
Сообщений: 625
Имя: Андрей
Город: Сороковка
Машина: EG8 VTEC JDM

Репутация: 21



я горжусь этим кодом)) я таких локаничных вещей не писал со времён моей первой игрушки ещё в далёком 2001году.
чтоб его понять нужно знать как работает проц, хотя там вроде всё в коментах(я их делал чтоб самому понять как это всё работает)), спрашивай по порядку, лучше через мыло.



           
2 страниц V   1 2 >
 
Теги
Нет тегов для показа


 



    
Текстовая версия · Удалить установленные форумом cookies · Отметить все сообщения прочитанными ·  Сейчас: 26.10.26 - 20:29