Здраейте, заел съм се с следната задача за себе си го правя:
създавам си моя разработка на USB програматор за микроконтролери на фирма
ATMEL.
Заел съм се да си направя 3 отделни варианта на програматори,както
следва:
1.)AVR910 с USB-COM (този ми трябва с едничката цел,че работи с доста
софтуерни програматори и най-вече с AVR OSP II , която програма има една
много полезна функция AUTO DETECT.Тази функция помага, когато чипа е
неизвестен ,но има ISP конектор за свързване.)
2.)AVR MK II ----този ще го ползвам основно за работа с контролерите
3.)STK500--------този мисля да го имам в случай , че програмирам грешно
някой контролер ,за да мога с него да го репрепрограмирам в паралелен
режим и да го възстановя.)
За тези програматори ползвам схеми и фирмуер от интернет ,които съм
събрал през годините.
Замислил съм някои подобрения като например: в изходните вериги ще сложа
транслатор на ниво 74LVC1T45 , за да имам възможност да програмирам
чипове при различно напрежение.
Захранването от USB порта на компютъра щесе преобразува един път с boost
конвертор към 5,5 до 6 волта и по-важното в случая е ,че диода на този
конвертор ще блокира протичането на обратен ток от програмираният борд
към компютъра,в случай на излагане на по-високо напрежение от страна на
програмирания борд.
Имам втори конвертор на напрежение ,но този път линеен регулируем от друг
микроконтролер на платката на програматора ,който контролер ще се грижи
за аналоговите процеси на програматора.Избора на захранване на TARGET съм
го замислил по следният начин: контролера на аналоговите процеси ще чете
състоянието на един BCD switch (малко ключе с врътка за права отвертка
,имащо 10 позиции на въртене и 4 пина ) и в зависимост,от това каква е
позицията ще преобразува кода в напрежение от DAC и PWM ,което ще
контролира регулируемия линеен стабилизатор ,задаващ VTARGET.
Дотук дадох доста конкретика, за да добиете горе-долу представа з какво
иде реч.
Стигнах до същината на проблема,а именно как да защитя изходният порт на
буферите,които се явяват и транслатор на ниво от следните възможни
сценарии за дефект:
1.)изходите на програматора са си изходи ,а входа си е вход ,дотук добре
,обаче при свързване към някаква платка с микроконтролер за
програмиране,който има в него предишна програма и трябва да се презапише
например и неговите пинове за комуникация се ползват в някаква схема и са
конфигурирани като изходи ,ще се получи конфликт между него и
програматора.Например единия подава 1 ,а другия 0 става късо.Аз трябва да
огранича тока при такава ситуация.Това го реших с резистор последователно
на изхода на програматора от 150 ома,но тук има една подробност, че този
резистор трябва да е възможно по-малък,защото ще ограничи скоростта на
програмиране.Той резистора заедно с капацитетите на пиновете прави RC
честотно-завидима верига.
2.)най-съществения проблем пред мен е създаването на ефективна защита от
пренапрежение поне до 24 волта ,приложено към порта на програматора от
външен източник (например дефект или пробив в устройството ,което се
програмира ,има такива ситуации).За тази работа има няколко решения и аз
немога да преценя кое е най-подходящо за мен,затова моля за помощ.
Един от вариантите е да ползвам въстановяем предпазител (ressetable fuse
ptc на polyswitch) и трансил и след него резистор 150 ома към пина на
ниво транслатора,но тук има недостатъци трансила трябва да е мощен ,за да
удържи до изключването на предпазителя за около 10ms-1000ms според тока
през него.Мощните трансили имат голям паразитен капацитет,който ми пречи
на скоростта на шината и тук има решение с последователно свързване на
диод с малък капацитет към трансила за редуктиране на общият капацитет,но
този обикновеният диод незнам дали ще издържи повече от трансила до
изключването.
Ценер диодите е немислимо,поради големия капацитет.
Друг вариант е резистор от 150 ома към пина транслатора и диоди от маса
към пина и от пина към захранването , което е може би най-приемливият
вариант.Ако се ползват диоди за около 300mA 1N4148 smd и резистор 150 ома
при 24волта отвън ,напрежението върху пина ще бъде около 5,5 волта и през
резистора ще протече ток около 123mA и напрежението върху него ще е 18,5
волта ,което като мощност на резистора прави 2,27вата , а аз ползвам
SMD1206 0,5W ,той трябва да се претовари и да изгори или да си вдигне
стойността,което все е добре .В крайна сметка ще защити изходният порт .
Някой ако се сети за по-добър вариант или изкажете мнение по тези
варианти ,които аз съм описал кой е по-добър и надежден,като главната цел
е защита на изходният буфер от изгаряне а не трансилите или резисторите
,те нека изгарят без проблеми ,те са евтини и лесно намираеми за
подръжката.Очаквам вашите мнения.Благодаря.