PCCar.ru - Ваш автомобильный компьютер

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > Разработка устройств

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2010, 23:40   #1
BaGz
Старший Пользователь
 
Регистрация: 03.11.2006
Город: Казань
Регион: 16, 116
Машина: Toyota Corolla NZE121 2003
Сообщений: 259
BaGz is on a distinguished road
По умолчанию Помогите разобраться или аналог ATTINY15

Добрый вечер
Помогите разобраться, дело в том что я сваял блок питания с управлением по микроконтроллеру ATTINY15, так вот все бы нечего, если бы не устаревшая микросхема которую некак немогу найти в инете в наличии!
Так к чему это я Порывшись в инете нашел аналог точнее следующее поколение этого контроллера ATTINY25, вопрос только в том насколько он аналогичен с ATTINY15 нарыл вот такой мануал

Я конечно неочень бум-бум по инглишу но понял что вроде как сушествует какой то режим совместимости с ATTINY15

Последний раз редактировалось BaGz; 03.08.2010 в 20:45.
BaGz вне форума   Ответить с цитированием
Старый 03.08.2010, 02:36   #2
MCZarin
Старший Пользователь
 
Регистрация: 24.08.2008
Возраст: 38
Город: Москва
Регион: 77, 97, 99, 177
Машина: Suzuki SX4, Magyar, 2008
Сообщений: 86
MCZarin is on a distinguished road
По умолчанию

Для начала надо понять, что у тебя есть.
Есть ли связь с автором?
Может ли он потратить вечер на раскуривание этого апликейшн-ноута (чтобы пофиксить старую прошивку)?
Есть ли у тебя исходник на C/Asm, или уже бинарник?

Если вкратце по апликейшн-ноуту, там не совсем всё просто, простым выставлением фуз CKSEL в 0011 не отделаться. Зависит от того, какие возможности контроллера использовались в прошивке. Чем больше использовалось - тем больше переделывать .
MCZarin вне форума   Ответить с цитированием
Старый 03.08.2010, 09:21   #3
BaGz
Старший Пользователь
 
Регистрация: 03.11.2006
Город: Казань
Регион: 16, 116
Машина: Toyota Corolla NZE121 2003
Сообщений: 259
BaGz is on a distinguished road
По умолчанию

Цитата:
Сообщение от MCZarin Посмотреть сообщение
Для начала надо понять, что у тебя есть.
Есть ли связь с автором?
Может ли он потратить вечер на раскуривание этого апликейшн-ноута (чтобы пофиксить старую прошивку)?
Есть ли у тебя исходник на C/Asm, или уже бинарник?

Если вкратце по апликейшн-ноуту, там не совсем всё просто, простым выставлением фуз CKSEL в 0011 не отделаться. Зависит от того, какие возможности контроллера использовались в прошивке. Чем больше использовалось - тем больше переделывать .
Ух как все сложно я попробую пригласить в эту ветку автора БП, надеюсь что поможет с прошивкой
PS Автор прошивки yurich38 Вот его тема про БП http://www.pccar.ru/showthread.php?t=9254
PPS Сама прошивка http://forum.pccar.ru/attachment.php...3&d=1247704033
BaGz вне форума   Ответить с цитированием
Старый 04.08.2010, 15:27   #4
BaGz
Старший Пользователь
 
Регистрация: 03.11.2006
Город: Казань
Регион: 16, 116
Машина: Toyota Corolla NZE121 2003
Сообщений: 259
BaGz is on a distinguished road
По умолчанию

Вот исходник, уважаемые программеры помогите перекомпилировать код под микросхему ATTiny25
//----------------------------------------------------------------------------------------------
// Программа управления блоком питания для EeeCarPc. версия 2
// Тестировано на Tiny15
//
// © Bunin.Dev, 2009
//
// Лицензия GPL
// Данная программа является свободным программным обеспечением.
// Вы вправе распространять ее и/или модифицировать в соответствии с условиями версии 2
// либо по вашему выбору с условиями более поздней версии Стандартной Общественной Лицензии GNU,
// опубликованной Free Software Foundation.
// http://www.gnu.org/copyleft/gpl.html
//
//----------------------------------------------------------------------------------------------


//
// Индикация лампы "Режим"
// Отключена - Комп выключен
// Мигает 1 раз в сек - переходный режим, начат процесс включения/отключения
// Включена - Комп включен
// Мигает "Длинный-Короткий" - режим сбоя, компьютер отключтился самостоятельно.
//

.include "TN15DEF.INC" ; include chip definition
;------------------------------
.def mig =r26 // всякая всячина
.def tmp =r28
.def temp1=r30
.def temp2=r31

.equ CalibrateValue = 0x3F

// Состояние системы
.equ ON_POCESS=1 // процесс вкл
.equ ON=2 // вкл
.equ OFF_POCESS=3
.equ OFF=4 // соответственно выкл
.equ SYSTEM_FAILURE=10 // и сбой.


// преднастройки.. примерно в секундах
.equ PowerDownDelay = 35; // время удержания питания 30сек
.equ initBeforeOFFDelay = 150; // время до отключения 150сек
.equ initBeforeOFFDelay_Multipler = 6; // множитель 6 .=> 150сек*6 = 900сек = 15мин

.equ initBeforeStartDelay = 10; // время до включения 10сек.
.equ initButtonDelay = 2; // задержка кнопки 2сек
.equ initAfterStartDelay = 50; // задержка после включения 50сек время нужное на старт винде.
.equ initPC_OFFCritical_Time = 20; // сколько ждать отключения..
.equ initPC_ONCritical_Time = 20;


// переменные
.def PowerLife=r16; // сщетчик отключения питания
.def PC_State=r17; // состояние системы

.def PC_OFF_ON_Time=r18; // сщетчик времени

.def BeforeStartDelay_Multipler=r19; // Множитель задержки перед стартом
.def BeforeStartDelay=r20; // задержка перед стартом

.def ButtonDelay=r21; // задержка нажатия кнопки
.def AfterStartDelay=r22; // задержка после нажатия кнопки
.def Waiting=r23; // бит ожидания

.def Timer_step=r24; // делитель прерывания таймера.
.def PC_Life_Time=r25; // сщетчик времени изменения PC_Life_State

.def PC_on_signal=r27; // сигнал РС жив



.MACRO WAIT ; Макрос ожидания "нуля" в переменной, для задержек
;subi @1,low(@0)
;sbci @2,high(@0)

tst @0
breq L88363
dec @0
rjmp return
L88363:
.ENDMACRO ; End macro definition


;------------------------------
rjmp RESET ; Reset Handle
rjmp INT0VECT ; External Interrupt0
rjmp NOVECT ; Pin change Interrupt
rjmp NOVECT ; Timer/Counter1 Compare Match A ATTiny15
rjmp NOVECT ; Overflow1 Interrupt ATTiny15
rjmp OVF0VECT ; Overflow0 Interrupt
rjmp NOVECT ; EEPROM ready Interrupt ATTiny12 ATTiny15 (Analog Comparator Interrupt Vector Address ATTiny11)
rjmp NOVECT ; Analog Comparator Interrupt ATTiny12 ATTiny15
rjmp NOVECT ; ADC conversion complete ATTiny15
;------------------------------
RESET:

ldi temp1, CalibrateValue
out EEAR, temp1
sbi EECR, 0
in temp1, EEDR
out OSCCAL, temp1


; init timer
ldi temp1, (1<<CS02)|(1<<CS00) ; enable timer, CLK/1024
out TCCR0, temp1
ldi temp1, (1<<TOIE0) ; enable Timer0 Overflow int
out TIMSK, temp1
; init int0
; ldi temp1, (1<<INT0) ; enable int0
; out GIMSK, temp1
; ldi temp1, (1<<ISC00) ; int0 at change
; out MCUCR, temp1
; init ports
ldi temp1, (1<<PINB0)|(1<<PINB1)|(1<<PINB3) ; 0 - output pin
out DDRB, temp1
; clear values

ldi PowerLife, 0
ldi PC_State, OFF
ldi PC_OFF_ON_Time, 0
ldi BeforeStartDelay_Multipler, initBeforeOFFDelay_Multipler
ldi BeforeStartDelay, initBeforeStartDelay
ldi ButtonDelay, initButtonDelay
ldi AfterStartDelay, initAfterStartDelay
ldi Waiting, 0
ldi PC_Life_Time, 0
ldi PC_on_signal, 1
ldi Timer_step, 0

cbi PORTB, PINB0
cbi PORTB, PINB1
; enable interrupts
sei
;------------------------------
MAIN:
rjmp MAIN
;------------------------------
OVF0VECT:
in temp1, SREG ; Store the Status register in reg temp1

//обрабатываем только каждое 6-е перерывание, т.е. раз в 1 сек.
WAIT Timer_step
ldi Timer_step, 6


in tmp, PINB // читаем состояние порта

sbrc tmp, 2 // если bit 2 = 0 т.е. от компа сигнала НЕТ
rjmp L9538
;{
ldi PC_on_signal, 0;
;}
rjmp L9539
L9538:
;{
ldi PC_on_signal, 1;
;}
L9539:

sbrc tmp, 4 // если bit 4 = 0 т.е. питания нет !ACC
rjmp L9645
;{
cpi PC_State, SYSTEM_FAILURE // если сбой
brne L7794
;{
ldi PC_State, OFF; // сбросить сбой
;}
L7794:

cpi PC_State, ON // если комп включен
brne L4759
;{ // выключаем
ldi PC_OFF_ON_Time, 0; // сброс параметров отключения
ldi BeforeStartDelay, initBeforeOFFDelay;
ldi BeforeStartDelay_Multipler, initBeforeOFFDelay_Multipler;
ldi ButtonDelay, initButtonDelay;
ldi AfterStartDelay, initAfterStartDelay;
ldi Waiting, 0;
ldi PC_State, OFF_POCESS; // переход в режим отключения
rjmp return;
;}
L4759:
; }
L9645:

cpi PowerLife, 0 // если время прошло, отрубает питание
brne L4760
;{
cbi PORTB, PINB1
;}
rjmp L4760e
L4760:;else
;{ // если нет
sbi PORTB, PINB1 // питание включено
cpi PC_State, OFF
brne L4760e
;{
dec PowerLife; // считаем время, если комп отключен.
;}
;}
L4760e:

// состояние сбоя -----------------------------------------------------------------------------

cpi PC_State, SYSTEM_FAILURE
brne L4163
;{
ldi PowerLife, 0; // отключение питания

// мигалка в режиме аварии
cpi mig, 3
breq L1874 // если mig != 0
;{
inc mig
sbi PORTB, PINB3 // погастиь светодиод
rjmp l1873
;}
L1874:
;else
;{
ldi mig, 0
cbi PORTB, PINB3 // зажечь светодиод
;}
L1873:

rjmp return;
;}
L4163:

;in temp1, PINB // читаем состояние порта

;sbrs mig, 2 // если bit 3 = 1 т.е. питания нет
// индикация режима вкл/выкл
cpi PC_State, ON
brne L4322
;{
cbi PORTB, PINB3
rjmp L1333 // зажечь светодиод
;}
L4322:
cpi PC_State, OFF
brne L4312
;{
sbi PORTB, PINB3 // погастиь светодиод
rjmp L1333
;}
L4312:
// мигалка
tst mig
breq L1234 // если tmp != 0
;{
ldi mig, 0
sbi PORTB, PINB3 // погастиь светодиод
rjmp l1333
;}
L1234:
;else
;{
ldi mig, 1
cbi PORTB, PINB3 // зажечь светодиод
;}
L1333:

//-----------------------------------------------------------------------------
in tmp, PINB // читаем состояние порта

sbrs tmp, 4 // если bit 4 = 1 т.е. питание есть ACC
rjmp L3545
;{
ldi PowerLife, PowerDownDelay; // не отключать питание
cpi PC_State, OFF // если комп отключен
brne L3545
;{
ldi PC_OFF_ON_Time, 0; // сброс параметров включеня
ldi BeforeStartDelay, initBeforeStartDelay;
ldi ButtonDelay, initButtonDelay;
ldi AfterStartDelay, initAfterStartDelay;
ldi Waiting, 0;
ldi PC_State, ON_POCESS; // переход в режим включения
rjmp return;
;}
L3545:
;}

//-----------------------------------------------------------------------------
cpi PC_State, ON_POCESS // режим включения
brne L4682
;{

cpi Waiting, 0 // если кнопка еще не нажималлась
brne L4892
;{
sbrc tmp, 4 // если bit 4 = 0 т.е. питания нет !ACC то (при отключении питания)
rjmp L4892
;{
ldi PC_State, OFF; // отменяем запуск
rjmp return;
;}
;}
L4892:

WAIT BeforeStartDelay // задержка перед

cpi Waiting, 0
brne L7921
;{
sbi PORTB, PINB0 // нажатие кнопки
ldi Waiting, 1; // запрет отмены запуска и повторного нажатия кнопки
;}
L7921:
WAIT ButtonDelay

cbi PORTB, PINB0 // восстановление

WAIT AfterStartDelay // задержка после

inc PC_OFF_ON_Time; // считаем время

cpi PC_on_signal, 1
brne L1830
;{
ldi PC_State, ON; // комп включен. процесс запуска завершен
;}
rjmp L1830e
L1830://else // комп не включился
;{
cpi PC_OFF_ON_Time, initPC_ONCritical_Time // слишком долго
brne L1830e
;{
; if(PC_OFF_ON_Time > initPC_ONCritical_Time)
ldi PC_State, SYSTEM_FAILURE; // сбой!
;}
L1830e:
rjmp return;
;}
L4682:


//-----------------------------------------------------------------------------
cpi PC_State, OFF_POCESS // режим выключения
brne L0682
;{



cpi Waiting, 0 // если кнопка еще не нажималлась
brne L0892
;{
cpi PC_on_signal, 0 // если нет сигнала
brne L19839
;{
ldi PC_State, OFF // отключение!
ldi PowerLife, 0; // отключение питания
;}

L19839:
sbrs tmp, 4 // если bit 4 = 1 т.е. питания есть ACC то (при восстановлении питания)
rjmp L0892
;{
ldi PC_State, ON; // отменяем запуск
rjmp return;
;}
;}
L0892:

WAIT BeforeStartDelay // задержка перед

tst BeforeStartDelay_Multipler // множитель задержки
breq L0963
;{
dec BeforeStartDelay_Multipler
ldi BeforeStartDelay, initBeforeOFFDelay; // повторяем задержку
rjmp return
;}
L0963:

cpi Waiting, 0
brne L0921
;{
sbi PORTB, PINB0 // нажатие кнопки
ldi Waiting, 1; // запрет отмены запуска и повторного нажатия кнопки
;}
L0921:
WAIT ButtonDelay

cbi PORTB, PINB0 // восстановление

WAIT AfterStartDelay // задержка после

inc PC_OFF_ON_Time; // считаем время

cpi PC_on_signal, 0 // выключился либо
breq L9897
cpi PC_OFF_ON_Time, initPC_OFFCritical_Time // слишком долго
brne return
;{
L9897:
; if(PC_OFF_ON_Time > initPC_ONCritical_Time)
ldi PC_State, OFF; // сбой!
;}

rjmp return;
;}
L0682:

//-----------------------------------------------------------------------------
cpi PC_State, ON // состояние включен
brne L4931
;{
ldi PowerLife, PowerDownDelay; // поддерживаем питание
cpi PC_on_signal, 0 // если нет сигнала
brne L9830
;{
ldi PC_State, SYSTEM_FAILURE // Сбой!
ldi PowerLife, 0; // отключение питания
;}
L9830:
;}
L4931:

return:

;//rjmp MAIN

EX_OVF0VECT:
out SREG, temp1 ; Restore Status register
reti

;------------------------------
INT0VECT:
in temp2, SREG ; Store the Status register in reg temp2

EX_INT0VECT:
out SREG, temp2 ; Restore Status register
reti
;------------------------------
NOVECT:
reti
BaGz вне форума   Ответить с цитированием
Старый 04.08.2010, 17:40   #5
(vS)
Гуру
 
Аватар для (vS)
 
Регистрация: 13.10.2006
Возраст: 46
Город: Санкт-Петербург
Регион: 54
Машина: '98 PRIUS NHW10
Сообщений: 1,991
(vS) will become famous soon enough(vS) will become famous soon enough
По умолчанию

почитай
http://www.gaw.ru/pdf/Atmel/app/avr/AVR501.pdf
__________________
маст{ер} c[лов]а и стил<ус>а

мои детки: сивик и геша + а у него названья нет + примус +
грандесла
(vS) вне форума   Ответить с цитированием
Старый 04.08.2010, 20:48   #6
BaGz
Старший Пользователь
 
Регистрация: 03.11.2006
Город: Казань
Регион: 16, 116
Машина: Toyota Corolla NZE121 2003
Сообщений: 259
BaGz is on a distinguished road
По умолчанию

Цитата:
Сообщение от (vS) Посмотреть сообщение
Точно такой же мануал я в начале топика указывал единственное что я из него понял что существует режим совместимости, думал что достаточно будет выставить фуз CKSEL в 0011, оказывается что еще и прошивку переделывать придется, а я не программер! help me plis
PS А еще меня мучает вопрос если взять за основу БП от yurich38 совпадут ли ножки микросхемы 15 тину и 25 я имею ввиду по функционалу
BaGz вне форума   Ответить с цитированием
Старый 05.08.2010, 05:43   #7
MCZarin
Старший Пользователь
 
Регистрация: 24.08.2008
Возраст: 38
Город: Москва
Регион: 77, 97, 99, 177
Машина: Suzuki SX4, Magyar, 2008
Сообщений: 86
MCZarin is on a distinguished road
По умолчанию

Совпадут:
Цитата:
3 Compatibility Mode

Бла-бла-бла, много букав:
• Pin layout is compatible with ATtiny15
Попробую на досуге подрихтовать прошивку, но проца у меня нет, поэтому кому-то придется выступать в качестве кролика .
MCZarin вне форума   Ответить с цитированием
Старый 05.08.2010, 15:35   #8
BaGz
Старший Пользователь
 
Регистрация: 03.11.2006
Город: Казань
Регион: 16, 116
Машина: Toyota Corolla NZE121 2003
Сообщений: 259
BaGz is on a distinguished road
По умолчанию

Цитата:
Сообщение от MCZarin Посмотреть сообщение
Совпадут:


Попробую на досуге подрихтовать прошивку, но проца у меня нет, поэтому кому-то придется выступать в качестве кролика .
Жду поступление проца, как появится готов стать "кроликом"
BaGz вне форума   Ответить с цитированием
Старый 05.08.2010, 15:56   #9
(vS)
Гуру
 
Аватар для (vS)
 
Регистрация: 13.10.2006
Возраст: 46
Город: Санкт-Петербург
Регион: 54
Машина: '98 PRIUS NHW10
Сообщений: 1,991
(vS) will become famous soon enough(vS) will become famous soon enough
По умолчанию

Цитата:
Сообщение от BaGz Посмотреть сообщение
совпадут ли ножки микросхемы 15 тину и 25 я имею ввиду по функционалу
совпадают почти у всех 8и ногих, сам сейчас тини85 под тини13 перелопачиваю ) потому, что тини 85 у меня 3 а тини13 5
__________________
маст{ер} c[лов]а и стил<ус>а

мои детки: сивик и геша + а у него названья нет + примус +
грандесла
(vS) вне форума   Ответить с цитированием
Старый 05.08.2010, 22:37   #10
BaGz
Старший Пользователь
 
Регистрация: 03.11.2006
Город: Казань
Регион: 16, 116
Машина: Toyota Corolla NZE121 2003
Сообщений: 259
BaGz is on a distinguished road
По умолчанию

Цитата:
Сообщение от (vS) Посмотреть сообщение
совпадают почти у всех 8и ногих, сам сейчас тини85 под тини13 перелопачиваю ) потому, что тини 85 у меня 3 а тини13 5
билн вот как на зло, вот буквально месяца два их навалом на любом углу было (я про тину15) а щя фиг найдет, заказал 25 тин 8 числа появятся в наличии + доставка
BaGz вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 12:11.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot