Светодиодные фонари и световые приборы. Всё о светотехнике.
Вернуться   Форум FONAREVKA.RU Мастерские светотехников Мастерская: INFERION
Расширенный поиск
Забыли пароль? Регистрация

  • О нашем проекте
  • Светотехника и световые приборы
  • Правила форума
Проект FONAREVKA.RU специализируется на предоставлении всей необходимой информации по светотехнике:

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

Если у вас есть вопросы по выбору фонарей, аккумуляторов и зарядных устройств ознакомьтесь с FAQ от наших экспертов:

F.A.Q. по выбору фонарей различных типов;
F.A.Q. по выбору аккумуляторов;
F.A.Q. по выбору зарядных устройств.
Ответ  Создать новую тему
Просмотров в теме 19836   Ответов в теме 6   Подписчиков на тему 4   Добавили в закладки 1
Опции темы Поиск в этой теме
Старый 07.04.2013, 17:34 Автор темы   1

 
Аватар для INFERION
 
Регистрация: 07.04.2013
Последняя активность: 13.06.2023 02:24
Адрес: Украина, Полтава
Сообщений: 5774
Сказал(а) спасибо: 340
Поблагодарили: 8154 раз(а) в 2385 сообщениях

По умолчанию Восстановитель фьюзов на ATtiny13

Я смотрю как минимум парочка подобных тем уже есть, будет ещё одна .
Та же беда, отлаживал свою поделку (не помню уже какую), где требовалось отключать RESET. Из-за чего пришлось на коленке собирать из подручного хлама максимально простой HV-программатор. Благо протокол программирования хорошо расписан в даташите. Т.к. я не хотел заниматься поиском 12V источника питания - решил влепить преобразователь и питать от USB. Первоисточник, там полная помойка после замены движка, так что дублирую тут:

Схема:
Нажмите на изображение для увеличения
Название: Восстановитель фьюзов.PNG
Просмотров: 7510
Размер:	50.5 Кб
ID:	72307
Как видим ничего особо сложного, кроме преобразователя. Сам восстановитель выполнен ввиде переходника между моим программатором и программируемым устройством:
Нажмите на изображение для увеличения
Название: PA213895.jpg
Просмотров: 5449
Размер:	82.8 Кб
ID:	72308Нажмите на изображение для увеличения
Название: PA213896.jpg
Просмотров: 6223
Размер:	78.7 Кб
ID:	72309
Нажмите на изображение для увеличения
Название: PA213897.jpg
Просмотров: 5404
Размер:	87.1 Кб
ID:	72310Нажмите на изображение для увеличения
Название: PA213898.jpg
Просмотров: 5340
Размер:	82.2 Кб
ID:	72311
Конечно гнездо можно было и аккуратнее выполнить, но я не сразу додумался до такого решения:
Нажмите на изображение для увеличения
Название: 18BBaEnXU9g.jpg
Просмотров: 1695
Размер:	65.8 Кб
ID:	72312
Это фото я добросовестно скомуниздил у одного знакомого.
Вместо LM27313 можно впаять 2731. Должны подойти LM2703 и LM2704.

Вот архив со всякой требухой: reanimator.rar

Для возможности восстановления через ISP необходимо добавить один штырь на штекере, рядом с пином GND, и подключить его к выводу Sii (у 8-ми лапых МК он рядом с RESET - PB3). В таком случае достаточно вместо программатора подключить реаниматор и подать на него питание всё тем же программатором (использовать как переходник), и он тут же зальёт в МК зашитые в него (всё тем же программатором) фьюзы. Восстановив при этом тактирование, RESET и т.п. Т.е. да, фьюзы нужно предварительно зашить в программу реаниматора, но для разработчиков это не проблема, исходник понятный. Там только пару констант двоичных поменять, они отмечены стрелками.
Реаниматор будет три раза в секунду пытаться прошить МК до тех пор, пока не получит положительный результат. Проблемы могут возникать из-за плохого контакта, слишком большой внутрисхемной ёмкости на RESET и VCC МК (десятки микрофарад), из-за неправильного уровня на линиях A0...A2 (читаем даташит, для 8-ми лапок не актуально) во время входа в режим последовательного HV программирования.
Светодиод мигает при попытках программирования (3Гц, иначе фьюзы забыли реаниматору прошить), при успешной верификации он начинает просто гореть...

В целом я им доволен. Выручает меня и ещё как минимум двоих знакомых, не жалуемся. Я его порядочно мучаю. На надёжный контакт нагло сру, ему по-барабану, один раз подключил Li-ion неправильно - дымок пошел, но он работает по сей день...

[Исправлено: INFERION, 07.04.2013 в 18:20]
INFERION вне форума   Ответить с цитированием Вверх
Поблагодарили: 8 раз(а)
Admin (07.04.2013), AVSel (08.04.2013), awl (23.05.2013), blindnick (07.04.2013), m72 (07.04.2013), MOHAPX (07.04.2013), shurko_3 (07.04.2013), togico (07.04.2013)
Старый 07.04.2013, 19:25   2
shurko_3

 
Аватар для shurko_3
 
Регистрация: 06.06.2010
Последняя активность: Сегодня 11:44
Адрес: Беларусь, Минск
Сообщений: 2013
Сказал(а) спасибо: 693
Поблагодарили: 856 раз(а) в 359 сообщениях

По умолчанию Re: Восстановитель фьюзов на ATtiny13

а что за блютуз модуль на фото ?
shurko_3 вне форума   Ответить с цитированием Вверх
Старый 07.04.2013, 20:36 Автор темы   3
INFERION

 
Аватар для INFERION
 
Регистрация: 07.04.2013
Последняя активность: 13.06.2023 02:24
Адрес: Украина, Полтава
Сообщений: 5774
Сказал(а) спасибо: 340
Поблагодарили: 8154 раз(а) в 2385 сообщениях

По умолчанию Re: Восстановитель фьюзов на ATtiny13

Если по секрету - дульный беспроводной хронограф на 13-й тиньке. Один товарищ (не без моего участия) практикуется на нём. Осваивает AVR и, собственно, RFM70. Эта штука встраивается в глушитель и транслирует информацию о скорости снаряда на спец. приёмник с дисплеем, отображающий всю статистику и т.п. Батарейки ёмкостью в 50мА*ч должно хватить тысяч на 100 выстрелов. Для пневматики это, огнестрел оно не переживёт там . Датчики разнесены сантиметров на 6 (длинна платы), разрядность порядка 12-ти бит, МК просыпается когда поступает сигнал с датчиков, ждёт пока придёт второй импульс и передаёт интервал, снова засыпая. Датчики индуктивные, подмагниченные "неодимовыми" кольцами. Вихревые токи в пролетающем мимо снаряде делают своё дело, получаем весьма ощутимый выброс ЭДС. Его достаточно для срабатывания логики МК. Реаниматор попал в кадр из-за того, что он там нужен для восстановления RESET, на котором висят датчики. У меня просто нет более удачной фотографии, т.к. собирал и фотографировал это не я...

[Исправлено: INFERION, 07.04.2013 в 20:44]
INFERION вне форума   Ответить с цитированием Вверх
Поблагодарили: 1 раз
shurko_3 (07.04.2013)
Старый 07.04.2013, 20:50   4
shurko_3

 
Аватар для shurko_3
 
Регистрация: 06.06.2010
Последняя активность: Сегодня 11:44
Адрес: Беларусь, Минск
Сообщений: 2013
Сказал(а) спасибо: 693
Поблагодарили: 856 раз(а) в 359 сообщениях

По умолчанию Re: Восстановитель фьюзов на ATtiny13

давно хотел взять вот такую http://www.fasttech.com/pro... штуку, и прекрутить к фонарю, что бы управление(обмен данными) прямо с телнфона было, но в сфере программирования большой пробел ((

максимум, что смог получить от этой платки, так это беспроводной виртуальный ком порт на компе.
shurko_3 вне форума   Ответить с цитированием Вверх
Старый 07.04.2013, 21:51 Автор темы   5
INFERION

 
Аватар для INFERION
 
Регистрация: 07.04.2013
Последняя активность: 13.06.2023 02:24
Адрес: Украина, Полтава
Сообщений: 5774
Сказал(а) спасибо: 340
Поблагодарили: 8154 раз(а) в 2385 сообщениях

По умолчанию Re: Восстановитель фьюзов на ATtiny13

А куда такой фонарь то нужен? С дистанционным управлением... Народ удивляется как вообще фонарь может столько стоить, и откуда в нём процессор берётся, а тут ещё и чтоб "Wi-Fi раздавал" )). Куда катится мир?..
Bluetooth сам по себе сложен (по крайней мере для меня), для управления железками ото всякие RFM70 за 30грн и удобны. Я после возни с USB напрочь забил на все эти высокоуровневые протоколы и интерфейсы, требующие использования увесистых библиотек. Решил что рано мне пока ещё туда лезть. Интересное мнение автор последнего фото высказал по поводу этого модуля:
Цитата:
хрена себе кабаняра, как два моих
Architecture Arduino
ой. мне страшно)
За Arduino не могу не согласится . Но цена интересная. Есть ещё интересные МК со встроенными RF модулями - STM32W108, к примеру. Дешевые, и на одном кристалле уже можно что-то готовое реализовать. Но что-то мне подсказывает что я и их не осилю, там тоже намудрили с протоколами. Проще опять-таки взять RFM70, у него и скорость в 4 раза выше при соизмеримом потреблении...

[Исправлено: INFERION, 07.04.2013 в 22:04]
INFERION вне форума   Ответить с цитированием Вверх
Старый 23.05.2013, 07:07 Автор темы   6
INFERION

 
Аватар для INFERION
 
Регистрация: 07.04.2013
Последняя активность: 13.06.2023 02:24
Адрес: Украина, Полтава
Сообщений: 5774
Сказал(а) спасибо: 340
Поблагодарили: 8154 раз(а) в 2385 сообщениях

По умолчанию Re: Восстановитель фьюзов на ATtiny13

Более свежий код:
Код:
;восстановитель фьюзов на ATtiny13. Тактовая 8МГц.

	.INCLUDE "tn13def.inc"

;Векторы прерываний

	rjmp	RESET
	rjmp	INT_0
	.ORG	0x0003
	reti
	.ORG	0x000A


;Конфигурация

RESET:	ldi	R16, 0b10000000	;Отключить аналоговый компаратор
	out	ACSR, R16

	Ldi	R16, LOW(RAMEND);инициализация стека
	out	SPL, R16

	ldi	R16, 0b100011	;Разрешить Sleep в режиме idle, INT0 на передний фронт
	out	MCUCR, R16

	sbi	PORTB, 4

	ser	R16		;Все порты на выход
	out	DDRB, R16

	ser	R16		;Сбросить и остановить предделитель таймера
	out	GTCCR, R16

	ldi	R16, 0b101	;Предделитель таймера на 1024
	out	TCCR0B, R16

	ldi	R16, 0b00000010	;Включить over0
	out	TIMSK0, R16

	sei			;Разрешить прерывания


;Программа

;Задержка перед первой командой

	clr	R16		;Запустить предделитель таймера
	out	GTCCR, R16
	sleep
	ser	R16		;Сбросить и остановить предделитель таймера
	out	GTCCR, R16


;Вход в режим программирования

repeat:	cbi	PORTB, 1
	sbi	DDRB, 1		;PB1 - выход

	cbi	PORTB, 4	;Включить питание МК и подать 12V на RESET

	clr	R16		;Запустить предделитель таймера
	out	GTCCR, R16
;	ldi	R16, 16		;Ждём 0,5с
pwonlp:	sleep
;	dec	R16
;	brne	pwonlp
	ser	R16		;Сбросить и остановить предделитель таймера
	out	GTCCR, R16

	cbi	DDRB, 1		;PB1 - вход
	sbi	PORTB, 1	;PB1 - подтягивание


;Команды

	;R27 - SDO
	;R28 - SDI
	;R29 - SII

	ldi	R28, 0b10000000	;Форматирование чипа
	ldi	R29, 0b01001100
	rcall	spi		;Chip Erase, Instr.1
	ldi	R28, 0b00000000
	ldi	R29, 0b01100100
	rcall	spi		;Chip Erase, Instr.2
	ldi	R28, 0b00000000
	ldi	R29, 0b01101100
	rcall	spi		;Chip Erase, Instr.3

	sbic	PINB, 1
	rjmp	error
	ser	R16		;Убрать флаг INT_0
	out	GIFR, R16
	ldi	R16, 0b01000000	;Включить INT_0
	out	GIMSK, R16
	sleep


	ldi	R28, 0b01000000	;Запись младшего фьюза
	ldi	R29, 0b01001100
	rcall	spi		;Write Fuse Low Bits, Instr.1
	ldi	R28, 0b11100010	;Fuse Low Bits <-------------
	ldi	R29, 0b00101100
	rcall	spi		;Write Fuse Low Bits, Instr.2
	ldi	R28, 0b00000000
	ldi	R29, 0b01100100
	rcall	spi		;Write Fuse Low Bits, Instr.3
	ldi	R28, 0b00000000
	ldi	R29, 0b01101100
	rcall	spi		;Write Fuse Low Bits, Instr.4

	sbic	PINB, 1
	rjmp	error
	ser	R16		;Убрать флаг INT_0
	out	GIFR, R16
	ldi	R16, 0b01000000	;Включить INT_0
	out	GIMSK, R16
	sleep


	ldi	R28, 0b00000100	;Чтение младшего фьюза
	ldi	R29, 0b01001100
	rcall	spi		;Read Fuse Low Bits, Instr.1
	ldi	R28, 0b00000000
	ldi	R29, 0b01101000
	rcall	spi		;Read Fuse Low Bits, Instr.2
	ldi	R28, 0b00000000
	ldi	R29, 0b01101100
	rcall	spi		;Read Fuse Low Bits, Instr.3

	cpi	R27, 0b11100010	;Верификация младшего фьюза
	brne	error


	ldi	R28, 0b01000000	;Запись старшего фьюза
	ldi	R29, 0b01001100
	rcall	spi		;Write Fuse High Bits, Instr.1
	ldi	R28, 0b11010101	;Fuse High Bits <-------------
	ldi	R29, 0b00101100
	rcall	spi		;Write Fuse High Bits, Instr.2
	ldi	R28, 0b00000000
	ldi	R29, 0b01110100
	rcall	spi		;Write Fuse High Bits, Instr.3
	ldi	R28, 0b00000000
	ldi	R29, 0b01111100
	rcall	spi		;Write Fuse High Bits, Instr.4

	sbic	PINB, 1
	rjmp	error
	ser	R16		;Убрать флаг INT_0
	out	GIFR, R16
	ldi	R16, 0b01000000	;Включить INT_0
	out	GIMSK, R16
	sleep


	ldi	R28, 0b00000100	;Чтение старшего фьюза
	ldi	R29, 0b01001100
	rcall	spi		;Read Fuse High Bits, Instr.1
	ldi	R28, 0b00000000
	ldi	R29, 0b01111010
	rcall	spi		;Read Fuse High Bits, Instr.2
	ldi	R28, 0b00000000
	ldi	R29, 0b01111100
	rcall	spi		;Read Fuse High Bits, Instr.3

	cpi	R27, 0b11010101	;Верификация старшего фьюза
	brne	error

	sbi	PORTB, 4	;Выключить питание (конец работы)
loop:	sleep
	rjmp	loop


;Внешнее прерывание

INT_0:	clr	R16		;Выключить INT_0
	out	GIMSK, R16
	ser	R16		;Убрать флаг INT_0
	out	GIFR, R16
	reti


;Перезагрузка при ошибке

error:	clr	R16		;Запустить предделитель таймера
	out	GTCCR, R16
	ldi	R16, 7
loope:	sleep
	dec	R16
	brne	loope
	sbi	PORTB, 4
	ldi	R16, 7
loope1:	sleep
	dec	R16
	brne	loope1
	ser	R16		;Сбросить и остановить предделитель таймера
	out	GTCCR, R16
	rjmp	repeat


;Программный SPI

;0
spi:	clr	R27
	sbi	PORTB, 2
	rcall	delay
	sbic	PINB, 1
	ori	R27, 0b10000000
	cbi	PORTB, 2
;1
	sbrc	R28, 7
	sbi	PORTB, 0
	sbrc	R29, 7
	sbi	PORTB, 3
	rcall	delay
	sbi	PORTB, 2
	rcall	delay
	sbic	PINB, 1
	ori	R27, 0b01000000
	cbi	PORTB, 2
	cbi	PORTB, 0
	cbi	PORTB, 3
;2
	sbrc	R28, 6
	sbi	PORTB, 0
	sbrc	R29, 6
	sbi	PORTB, 3
	rcall	delay
	sbi	PORTB, 2
	rcall	delay
	sbic	PINB, 1
	ori	R27, 0b00100000
	cbi	PORTB, 2
	cbi	PORTB, 0
	cbi	PORTB, 3
;3
	sbrc	R28, 5
	sbi	PORTB, 0
	sbrc	R29, 5
	sbi	PORTB, 3
	rcall	delay
	sbi	PORTB, 2
	rcall	delay
	sbic	PINB, 1
	ori	R27, 0b00010000
	cbi	PORTB, 2
	cbi	PORTB, 0
	cbi	PORTB, 3
;4
	sbrc	R28, 4
	sbi	PORTB, 0
	sbrc	R29, 4
	sbi	PORTB, 3
	rcall	delay
	sbi	PORTB, 2
	rcall	delay
	sbic	PINB, 1
	ori	R27, 0b00001000
	cbi	PORTB, 2
	cbi	PORTB, 0
	cbi	PORTB, 3
;5
	sbrc	R28, 3
	sbi	PORTB, 0
	sbrc	R29, 3
	sbi	PORTB, 3
	rcall	delay
	sbi	PORTB, 2
	rcall	delay
	sbic	PINB, 1
	ori	R27, 0b00000100
	cbi	PORTB, 2
	cbi	PORTB, 0
	cbi	PORTB, 3
;6
	sbrc	R28, 2
	sbi	PORTB, 0
	sbrc	R29, 2
	sbi	PORTB, 3
	rcall	delay
	sbi	PORTB, 2
	rcall	delay
	sbic	PINB, 1
	ori	R27, 0b00000010
	cbi	PORTB, 2
	cbi	PORTB, 0
	cbi	PORTB, 3
;7
	sbrc	R28, 1
	sbi	PORTB, 0
	sbrc	R29, 1
	sbi	PORTB, 3
	rcall	delay
	sbi	PORTB, 2
	rcall	delay
	sbic	PINB, 1
	ori	R27, 0b00000001
	cbi	PORTB, 2
	cbi	PORTB, 0
	cbi	PORTB, 3
;8
	sbrc	R28, 0
	sbi	PORTB, 0
	sbrc	R29, 0
	sbi	PORTB, 3
	rcall	delay
	sbi	PORTB, 2
	rcall	delay
	cbi	PORTB, 2
	cbi	PORTB, 0
	cbi	PORTB, 3
;9
	rcall	delay
	sbi	PORTB, 2
	rcall	delay
	cbi	PORTB, 2
;10
	rcall	delay
	sbi	PORTB, 2
	rcall	delay
	cbi	PORTB, 2

delay:	inc	R18
	tst	R18
	brne	delay
	ret
Добавил инструкцию на форматирование чипа, т.к. если стоят LOCK биты - фьюзы шиться отказываются. Данный код юзается для восстановления RESET'а в 25/45/85 тиньки не совсем форумного драйвера. BOD 2,7V, стартап - 64мс, тактовая 8МГц, EESAVE=0 (мне неудобно каждый раз EEPROM прошивать). Килоомные резисторы окончательно выкурены. Они стоят для защиты логики, но здорово мешают, когда требуется высокая нагрузочная способность восстановителя. На восстанавливаемых схемах сигнальные линии чаще всего зашунтированы сопротивлением в 100...200Ом, поэтому пришлось килоомники заменить перемычками...

test_tn13.hex

[Исправлено: INFERION, 23.05.2013 в 07:18]
INFERION вне форума   Ответить с цитированием Вверх
Старый 06.06.2014, 16:55 Автор темы   7
INFERION

 
Аватар для INFERION
 
Регистрация: 07.04.2013
Последняя активность: 13.06.2023 02:24
Адрес: Украина, Полтава
Сообщений: 5774
Сказал(а) спасибо: 340
Поблагодарили: 8154 раз(а) в 2385 сообщениях

По умолчанию Re: Восстановитель фьюзов на ATtiny13

Слепил версию 1.1:
Нажмите на изображение для увеличения
Название: P6055036.jpg
Просмотров: 1631
Размер:	55.3 Кб
ID:	107482Нажмите на изображение для увеличения
Название: P6055037.jpg
Просмотров: 904
Размер:	52.3 Кб
ID:	107483Нажмите на изображение для увеличения
Название: Восстановитель.jpg
Просмотров: 1240
Размер:	64.3 Кб
ID:	107485
Печатная плата: Восстановитель.lay
Силовая часть мощнее, плата симпатичнее, компактнее и что главное - разводка не под зеркальный разъём. Т.е. соответствует этой картинке:

Если появится желание - перепишу программу. Автораспознавалку добавлю. Непонятно только что делать, если сигнатура повреждена.

[Исправлено: INFERION, 06.06.2014 в 17:09]
INFERION вне форума   Ответить с цитированием Вверх
Поблагодарили: 3 раз(а)
Nimnul (06.06.2014), shurko_3 (06.06.2014), Volosaty (18.12.2014)
Ответ  Создать новую тему
Опции темы Поиск в этой теме
Поиск в этой теме:

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





Copyright ©2007 - 2024, FONAREVKA.RU

Powered by vBulletin®
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd. Перевод: zCarot

Правила форума | Отказ от ответственности
Время генерации страницы 0.09422 секунды с 17 запросами