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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Разработка устройств (http://pccar.ru/forumdisplay.php?f=18)
-   -   Хитрое реле включения. Нужна помоЩь! (http://pccar.ru/showthread.php?t=1715)

mcf1 13.02.2007 17:56

купил Attiny 11,(12ого не было в диповском корпусе) программа его не определяет, появилось подозрение что и не должна, т.к. у одинадцатого нет MOSI и MISO :dntknw: :angry:
http://www.gaw.ru/im/atmel/avr/attiny11_p.gif

mcf1 14.02.2007 00:52

Вложений: 1
бл......, нашел список поддерживаемых устройств на сайте разработчика программы, там только двенадцатый.. твою мать... почему сразу это не увидел когда качал прогу.ууу..у.
завтра поеду искать tiny12 в дип-корпусе



вот фотка програматора

mcf1 14.02.2007 01:01

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

_SDY_ 14.02.2007 05:11

Да, точно 11-й без SPI интерфейса. Я думал, что у всех есть... ;-(
Меняй на 12-й или какой другой более старший с SPI. Только более старшие могут быть с СОЗУ, там надо будет в программу добавить команды инициализации стека и поправить таблицу прерываний (если будут расхождения).

В программе есть переменная PulseFlag в строке 'ldi PulseFlag, 4' (4 - это два импульса) начальная инициализация по смене состояния на "входной" ноге. Где стоит комментарий 'here's approx 1sec delay' - там он и означает, что задержка примерно 1 сек, то есть код ниже этого коммента запускается примерно через 1 сек. Регулируется переменной Counter, ldi Counter, 4 - это примерно 1 секунда, если написать ldi Counter, 2 - то будет 0,5 сек, далее по аналогии. То есть по смене состояния на ноге INT0 на ноге PB0 возникает два импульса длительностью 1 сек с паузами между ними в 1 сек.
Можно переделать прогу, чтобы можно было настраивать отдельно паузы и длину.

_SDY_ 14.02.2007 06:55

Вложений: 1
Готова новая прога. Заранее ее сделал под ATTiny12 (можно и для ATTiny11, если получится зашить :-)

В ней есть константы:
1. .equ PulseQuantityInitVal=2
2. .equ BeforePulseDelayInitVal=0
3. .equ PulseLongInitVal=2
4. .equ PulseSpaceInitVal=4

1. Кол-во импульсов (в штуках)
2. Задержка до выдачи импульсов (в 1/4 секунд)
3. Длительность импульсов (в 1/4 секунд)
4. Длительность паузы между импульсами (в 1/4 секунд)

Все длительности в 0.25 секунды (примерно). Т.е. если 1 = 0.25 сек, 2 - 0.5 сек, 3 = 0.75 сек, 4 = 1 сек, итд до 255 = 63,75 сек. Это все в теории...

На практике есть маленькая проблема по моим расчетам обработчик прерывания OVF0VECT должен срабатывать примерно через 0.22 сек: 1200000 / 1024 = 1172 / 256 = 4.6 => 1 / 4.6 = .22 sec, в реальности (на Attiny26) и на эмуляторе работает медленнее в 2 раза, т.е. 0.44 сек.
Короче - хз, это вообще мой второй проект на МК :-). Первый здесь: http://www.pccar.ru/showthread.php?t=1721 Месяц назад я вообще ни разу не программировал эту хрень :-). Там все просто, если есть опыт программления на каком-нибудь другом ассемблере, то двух часов на изучение хватит, чтобы в основном разобраться. Но, вот как так получается с таймером - до сих пор не пойму.

Здесь исходник и прошивка:

Beer100 14.02.2007 14:44

Цитата:

Сообщение от mcf1 (Сообщение 18001)
Beer100 ты уж извини, но твой проект пока отложен в сторону (на фотке его видно слева вверхнем углу). просто идея с микроконтроллером нескольео проще и стабильнее, чем логика.

Ты что! Все ОК!
Водь на дворе уже 21 век! :smile1:
Это я так, по старинке на логике.....

mcf1 14.02.2007 19:31

Цитата:

Сообщение от _SDY_ (Сообщение 18012)
Готова новая прога. Заранее ее сделал под ATTiny12 (можно и для ATTiny11, если получится зашить :-)
..............
Здесь исходник и прошивка:

купил сегодня ATtiny 12, программой сразу же определился, без проблем прошился. но не заработал...
может я чегонить не так делаю?....
пробавал заливать этот файл и ипром и во флеш, и одновременно и туда и туда. не работает
вход 6ая нога (активный +4,8В, после делителя), выход пятая нога, остальные в воздухе.

PS первую версию тоже пробывал. ничего не происходит...

_SDY_ 15.02.2007 05:42

Вложений: 1
И не запустится, просто я не сказал еще про одну фигню. В datasheet есть слова: "When the RSTDISBL fuse is unprogrammed, this pin serves as external reset. When the RSTDISBL fuse is programmed, this pin is a general input pin." Короче, если ты с этим чипом ничего не делал, кроме прошивки, то 1-я нога по-умолчанию - вход сброса. Без его подачи при включении счетчик команд в неопределенном состоянии. На эту ногу сигнал начального сброса подается также, как и на все остальные процессоры - резистор + конденсатор.
Шить надо во флеш. EEPROM - это чисто для данных. Flash - память команд. В этой программе EEPROM не используется.

R1 - 100К
C1 - 1мкФ
R2 - 2К
R3 - 1К
Схема:

mcf1 15.02.2007 09:02

Вложений: 2
я так и думал что нужен reset,
делитель сделал по другому немного, R2 и R3 по одному килоому, и стабилитрон на 4,7В, так будет на входе всегда одно и тоже напряжение, и при десяти и при пятнадцати вольтах бортового напряжения.
http://pccar.ru/attachment.php?attac...1&d=1171515131
а это нормально то что после сброса (reset) на первой ноге будет постоянно висеть еденица?
просто на разных процессорах используется разный reset
http://pccar.ru/attachment.php?attac...1&d=1171515131
просто в программе uniprof используется первый вариант сброса, а ты предлогаешь второй

_SDY_ 15.02.2007 09:35

Читаем Attiny11-12.pdf. Страница 5: "Reset input. An external reset is generated by a low level on the RESET pin." Соответственно, низкий уровень - сброс, высокий - работа. На странице 7 есть схема Figure 5, там именно то, что надо. Таблица 29 на странице 57 как считаются значения R и C и комментарий: "R should be in the range 3-100K, and C should be at least 20pF."


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

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