Перейти к содержанию
    

upiter4

Участник
  • Постов

    38
  • Зарегистрирован

  • Посещение

Весь контент upiter4


  1. да собственно особых проблем то и нет , но проще не изобретать велосипед. Многие вещи я могу сделать сам , но если они есть уже готовыми , то LE POURQUOI PAS? ( почему бы и нет ? ). Именно для этого я сюда и обратился . Опять же вопрос времени на разработку . . .
  2. Так я ведь чётко написал что как раз и собираемся идти по второму пути . И естественно никто не собирался заменять одну микруху плисиной , а речь как раз и шла о замене целого ряда микросхем . Видимо мы с вами не совсем поняли друг друга , хотя и говорили об одном и том-же. Мало того , хочу сосканировать те команды , которыми проц общается с 82с54 и оставить в ядре только те операции , которые нужны. Ну а что касается допиливания и RC цепочек , то я с вами конечно согласен , но проходил я это лет эдак 15 назад , так что этим меня не удивишь. Большое спасибо всем ответившим , но думаю вопрос так и остался открытым
  3. Дело в том, что устройство состоит из блоков , и эти блоки имеют тенденцию к выходу из строя. Поэтому необходимо сделать перенос один в один. А делать эквивалентный дизайн ( т.е. существенно бОльшую работу), потом находить свои косяки . . . Опять же , чтобы сделать эквивалентный дизайн , необходимо глубоко вникнуть в работу каждого из блоков , в том числе и в работу CPU , а исходников то нет . Вообщем я думаю что как раз вы заходите не с той стороны. Вместо того, чтобы заменить одну микруху делать новый дизайн ? Да и всё что можно запихнуть в матрицу , я запихну ( это наверное и будет эквивалентный дизайн ), а вот как быть с CPU 80с 196 ? Или мне делать и его функционалку ? Вообщем вопрос был по поводу i82c54 Спасибо за ссылку , но там функции то платные :crying:
  4. Коллеги, подскажите пожалуйста такой вопрос: Есть некое устройство , достаточно старой разработки. Те элементы, которые там применяются, уже достаточно давно морально устарели , и с каждым днём их закупка вызывает всё больше и больше проблем. Да и само устройство по нынешним временам выглядит весьма архаично. Вот и принято решение сделать данное устройство ( мы применяем такие устройства в своём производстве) на новой элементной базе. Но так как исходников программ нет , то решено всю логическую часть устройства ( дастаточно большую ) перенести на CPLD или FPGA (в зависимости от обьёма). Одна из микросхем, которая там применяется - i82с54. Может кто подскажет где взять ядро этой микросхемы , и сколько ресурсов оно занимает.
  5. Да , старый мануал . скачал новый - нашёл диаграммы- большое спасибо
  6. Да проблема в основном только во времени ( это раз ) при переходе на другой камень всегда есть подводные камни, которые надо просто знать ( т.е. просто банально иметь опыт ) Ещё огорчило что для AVR32 6-ти слойка плата ( или я что-то не так понял ? ) ( это три ) ну и конечно средства отладки ( это четыре ) Это почему 4 такта ( из каких соображений ? )
  7. Есть вопрос- как долго и сложно переходить на AVR32 после AVR8 ?
  8. Да я это уже начинаю осознавать, но всё равно делать прийдётся на этой платформе т.к. переходить на ARM ( а соответственно и осваивать его ) совсем нет времени. Наверное тогда прийдётся прикручивать SRAM :wassat:
  9. проблема в том , что нужна 4-х битная SDRAMка ( коих не столь много ) , ну или 8-ми битка ( которые есть живьём ) в половинном включении . Но и это не самое главное . Самое главное - скорость с которой небходимо работать с этой памятью. Работать будет на 32 MHz и перегнать надо порядка 1 мегабайта на максимально возможной скорости.
  10. Ну вопрос был по поводу собственно подключения памяти к указанному процессору , а не к его выбору. Только пожалуйста- не приплетайте сюда ARM . Проэкт делается на этом кристалле Так и я очём . И нафик он такой "хороший" режим нужен ? По моему полный бред
  11. Подключение SDRAM к XMEGA128A1

    Появилась необходимость подключения SDRAM к XMEGA128A1 Открываю Application Note 1312 и на страничке 6 вижу схему подключения , которая как раз для моего случая . НО !!! Где взять порт L у XMEGA128A1 ? Нигде больше во всех описаниях XMEG так и не нашёл порта L ( тем более, как я понимаю , XMEGAхххA1 являются старшими членами семейства ). Использовать в качестве порта L какой-нибудь порт тоже видимо не есть хорошо- тогда программно надо выставлять старшие адреса , но даже не это самое главное - Тогда не будет регенерации старших адресов !!! Вообще-то очень удивило данное руководство - ни тебе временных диаграмм , ни соотношений сигналов для каждого из случаев , всё как то написано на уровне "догадайся сам". Да тут ещё на буржуйских сайтах читал что не все режимы EBI работают :unsure: :crying: Вообщем , кто может - проясните пожалуйста ситуацию. Кто работал, какие есть ньансы ( касается SDRAM и SRAM )
  12. Уважаемые Форумчане ! Порывшись здесь в форуме , я не смог найти ответа на вопрос, ответ на который мне необходим. Как вы работаете с графикой на графических экранах , какие программные средства используете ? Стоит задача работать с графикой 800х480 ( в цвете 18 бит ). Очень рассчитываю на вашу помощь
  13. Уважаемый big ! Тут правильно вам подсказывают что вам надо по линии +12 передать модулированный сигнал . Ну а при передаче его надо передать по протоколу CAN как я и писал (про всякие RS-485 и иже с ними можете забыть сразу, иначе будете ооооочень долго биться об стену )
  14. Компаратор ATtiny24

    Нет, и здесь Ок
  15. Если по автомобильной сети и с гарантированной передачей данных , тогда это CAN
  16. Компаратор ATtiny24

    LDI TEMP1,(On<<ADC2D)//ВЫКЛЮЧЕНИЕ ЦИФРОВОГО ПОРТА ДЛЯ ВЫВОДА КОМПАРАТОРА OUT DIDR0,TEMP1 "проверить PA1 и PA2 чтобы были входами и выключен pullup" Да в норме здесь всё LDI TEMP1,(INput_Pin<<CompMinus_In) + . . . OUT DDRA,TEMP1 LDI TEMP1,(PULLUP_Off<<CompMinus_In) + . . . OUT PORTA,TEMP1 "убедиться что TEMP1 никто не меняет в процессе настройки компаратора (прерывания-то разрешены..)" Ну это уровень первого класса - прерывания проверены многократно, тем более как только в прерывании появляется новый регистр - сразу сохраняю (при помощи макросов). Да и TEMP1 входит в макрос по сохранению статуса - так что это исключено . ANA_COMP: SAVE_STATUS . . . . . . . . . . . . . . . . . . . RETURN_STATUS RETI :(
  17. Компаратор ATtiny24

    Ребята, что-то немогу понять - на ATtiny24 настроил компаратор : sei . . . . . . . . . . . . . . LDI TEMP1,(Off<<ACME)//подключение вывода AIN1 к отрицательному выводу компаратора OUT ADCSRB,TEMP1 LDI TEMP1,(On<<ACBG)+(Off<<ACO)+(Off<<ACIE)+(Off<<ACIS0)+(Off<<ACIS1)+(Off<<ACD) OUT ACSR,TEMP1 SBR TEMP1,Exp2(ACIE)//разрешение прерывания на компараторе OUT ACSR,TEMP1 На вывод AIN1 (минус компаратора ) подаётся входной сигнал . При достижении на этом выводе 1,1 вольта ( значение опоры для данной тиньки ) должно происходить прерывание . НО ЕГО НЕТ !!!!! Подключил JTAG ICE MKII . Начал отладку в живой железке . Но флаг прерывания не устанавливается ни при каких условиях !!! ( хотя значение на входном пине уже далеко за 1,1 вольта ). Может я уже заработался , или чего-то не так сделал ?( хотя сильно сомневаюсь ) Может кто-то сталкивался с такой проблемой ?
  18. А супервизор срабатывает мгновенно ? :( Типичное время срабатывания супервизора при заданном вами напряжении 1,8 вольт составляет порядка нескольких микросекунд . Время заряда ёмкости до напряжения питания определяется как t=0,9RC ( для вывода сброса ) , т.е. при номиналах , указанных мной , составляет порядка 90 микросекунд . Я , например , при программировании использую время запуска тактового генератора 64 микросекунды . Т.е. время зарядки ёмкости сопоставимо с запуском тактового генератора и при появлении активного уровня сброса , генератор работает уже стабильно . При применении внешнего супервизора необходимо выставлять минимальное время запуска генератора , иначе , если время запуска генератора выставлено большим , то применение внешнего супервизора с малым временем срабатывания приведёт к ситуации когда тактовый генератор ещё не запустился , а сброс уже находится в активном состоянии . Вот это и называются грабли . . . А что собственно будет с процессором , если микросекунд эдак 30-50 на выводе сброса будет неопределённое состояние ? Да ничего собственно и не будет . . . Затем достигнет порога логической 1 и всё зашуршит на ура . Вообще то мой взгляд на проблему таков : Быстрое нарастание активного состояния на выводе сброса при запускающемся тактовом генераторе ( но ещё не запустившемся окончательно ) очень плохо . Именно поэтому я применяю следующую схему : питание на супервизор подаётся через интегрирующую RC цепочку . Диод MBR0520L включён анодом к сбросу и катодом соответственно к питанию . Параллельно диоду резистор 1 К ( супервизор с внутренним резистором в десятки килоом ) . Интегрирующая цепочка обеспечивает задержку включения для гарантированного запуска генератора + обеспечивает фильтрацию по питанию . Если включён внутренний BOD я всё равно рекомендую ставить ёмкость с резистором . Вообще я совсем не сторонник применения RC в качестве BOD . В качестве подтяжки сброса и дополнительного фильтра да , но не иначе . И вообще я не сторонник большого значения ёмкости - всё должно быть без фанатизма . Приведённые мной значения кажутся мне оптимальными . пулл-апом обойтись неполучится - слишком большое значение сопротивления От ответа не ухожу , привык сдерживать свои слова . Но чтобы небыло :bb-offtopic: заведу специальную тему , но несколько поздже , уж пожалуйста извените . Коротко написать не получится . :rolleyes: Большое спасибо Бр.....рррр. Стоять ! ! ! Мухи отдельно , котлеты отдельно . Мы говорим о сбросе или о DebugWire ? Как говорит мой знакомый Одессит - это разные вещи . Когда DebugWire , то естественно ёмкость - лишняя деталь , но когда DebugWire это прототип , то на нём ёмкость не столь критична . Про необходимость качественного питания и разводки я упоминал отдельно . "Из эфира? Тоже решается более другими средствами." Хотелось бы знать какими ? Попробуйте для начала пощёлкать рядом с AVRом люминесцентной лампой , ватт на 40 - 60 ( хорошо бы при этом стартерок неновенький ) . И тогда мы с вам и продолжим разговор . :a14: А вы теоретик или практик , простите за любопытство ?
  19. сейчас сильно болеею , отвечу поздже 1) 0,1 uF достаточно малая ёмкость , и я ещё не видел ни одного программатора ( включая в том числе и AVRISP и AVRISP MKII и JTAG и JTAG ICE MKII и CHIPPROG+ , ну и конечно же любимый многими PONYPROG , ну и т.д.) который бы не работал с указанной ёмкостью. Итог - я не считаю это аргументом. 2) MBR0520L например , или PRLL5817 ( этот менее распространён , да и несколько хуже по всем характеристикам ) . 3) Ну и в чём проблема ? Всё в рамках закона . Падение на MBR0520L при температуре -25 градусов !!! ( самый, самый худший случай ) 0,28 вольта . При обычных условиях и того лучше - 0,22 вольта и с увеличением температуры ещё падает . Имеем : 1,8 х 0,9 =1,62 вольта ; 1,8 х 0,2 =0,36 вольта . 1,9-0,28 =1,62 !!! 0,36 > 0,28 !!! И это при самых худших условиях !!! Какие у вас ещё аргументы ? Что касается последнего вопроса , то ответ краток - гораздо лучшую помехозащищённость по ВЧ . Попробуете и убедитесь сами .
  20. :07: Пожалуйста повнимательнее читайте !!!. Позволю себя процетировать : "Очень непомешает внешний супервизор с отличным от Brown-out проца значением . Т.е. например Brown-out проца заводишь на 4 вольта , а внешний применяешь со значением 4,5 вольта ( например MCP-450 производства Microchip )". Я это не писал ? Только немного ошибся в названии супервизора , вместо MCP-450 правильно должно быть MCP-100-450 ( машинальная ошибка ). Это во первых . А теперь приведите аргументы против резистор + конденсатор + диод. Аргументы типа нерекомендую не считаю аргументами . . . ;)
  21. Если внимательно перечитаете что мной написано , то увидите что там как раз и предлагался преимущественно супервизор ( и даже назван какой например ( MCP-130 - 450 ), и написано что в случае . . . бедности применять "резистор + конденсатор + диод +. . ." . И никто и не спорил что интегральный супервизор на голову выше "резистор + конденсатор + диод +. . ." Но супервизору и самому нужна блокировочная ёмкость по питанию. А подтягивающий резюк уже встроен в этот супервизор . Моя фраза "Если внешний сброс не применяешь" задумывалась как "Если внешний супервизор не применяешь" , что возможно и вызвало некоторое недопонимание . Т.е под сбросом в данном случае подразумевался супервизор , а не пин проца .
  22. Достаточно хотя бы посмотреть в документации на любой AVR тактирование ALU , и попытаться разобраться как вообще происходит работа за 1 такт . MSC-51 делили такты на 12 от нечего делать ? Сейчас MSC-51 как правило делят на 4 , или поступают аналогично AVR. Если верите больше своим глазам , то можите поставить эксперимент : берёте AVR , запускаете на 16 MHz например . Затем вместо 16 MHz запаивает например 27 MHz ( можно найти кристаллы , которые запустятся на этой частоте ) . Так вот работать они будут медленнее чем на 16 MHz . Почему надеюсь обьяснять ненадо ? Да , ошибся , извиняюсь . Так а кто его мешает поставить ? ( желательно Шоттки )
  23. :( Обьясняю : Если вы рассмотрите структуру порта , то увидите что каждый порт защищён защитными диодами , причём один диод на землю анодом ( защита от отрицательных напряжений ) , другой диод катодом об питание процессора . Так вот при выключении питания верхний диод будет смещён в прямом направлении и разрядит ёмкость на питание . . . Непойму в чём проблема ? Неужели это надо обьяснять ?
  24. Ни то , ни другое . Что касается программ , то по обьёму кода программы конечно же разные , но как правило не менее 30-40К памяти программ ( все программы пишу на асме ) Так что не очень они маленькие , я вас уверяю . И проц шуршит аж воротник заворачивается - прерывание на прерывании . И пожалуйста только не надо приводить старые как мир догмы - писали бы на Си . . . Я и на Си могу , но для меня асм комфортнее . Гением конечно же себя не считаю , и ошибки бывают , кто не грешен ? WDT не защищает от помех, WDT может защитить от программных ошибок - зацикливания, тупиковых состояний КА и т.п. ;) B) Это что же получается - производители вводят в проц апаратные вещи для защиты от кривых программистов ? Неожиданная мысль , очень неожиданная . На самом деле это не совсем так . Вы не задумывались почему некоторые процы (рядовые) ( например MSC-51) работают на 50 MHz , а у AVRов пока планка в 20-24 MHz ? Дело в том , что у AVRов выборка команды производится за 1 такт генератора , но за 4 внутренних такта , которые формируются специальной внутренней аппаратной схемой .Так вот - сбой хотя бы по одному из этих подтактов приводит к разным непредсказуемым последствиям (и подвисаниям в том числе ) . Именно поэтому важна хорошая форма тактовых импульсов , так как на основании её формируются внутренние подтакты . Некоторые производители ( NEC например) применяют для защиты от такого рода вещей специальный аппаратный механизм правильной выборки команды из памяти программ. Именно для подобных вещей держат псов , а не для защиты от программистов !!! . Небольшое лирическое отступление-: когда - то давно , когда я ещё был студентом , нас то и дело доставал препод по программированию составлением алгоритмов . Всех это уж очень достало , и я один раз в сердцах спросил - когда же вместо вской ерунды мы начнём изучать языки программирования ?. На что получил ответ , который оценил позднее - язык программирования это инструмент , а программа - это исскусство и часть души . В корявых руках и скрипка Страдивари будет не более чем куском дерева . Умный был ( надеюсь ещё есть ) препод . Лет 10 назад делал одну програмку . Писал , она работала , дописывал , она опять работала , пока в один момент всё не стало работать очень коряво . . . ( справедливости ради надо сказать что у неё была очень сложная структура ) . Разбираться в огромном куске кода небыло никакого желания - крышу срывало. Было принято волевое решение - взять и разрисовать прогу на блоки , сначала крупные , потом помельче , потом ещё мельче . В итоге ( после месяца спания по 4-5 часов за ночь ) - получилась структурная схема программы. Она была очень тщательно осмыслена и проверена на логику работы . Меня тогда удивило - по структурной схеме мне только и оставалось что просто тупо подставлять ассемблерные операторы , что у меня получалось очень и очень быстро ( за неделю одолел 32К ). Кстати , предыдущий кусок весил 36К . Первое включение после компиляции и прошивки и . . . . . каково же было моё удивление , что программа заработала сразу , и без малейших шороховатостей . Я после включения не изменил в программе ни одной буквы , так до сих пор и работает . После этого случая я любую программу пишу именно так - сначала хорошо обдумываю всю структуру программы , тратя на это прилично времени , затем начинаю на бумаге делать наброски , потом всё чётче и чётче вырисовывается программа , нечто наподобе проявки фотографии , или прорисовки художника. Совет - хотите писать хорошие программы - делайте именно так - я вас уверяю - времени в итоге тратится меньше , сохраняется "бумажная копия" работы программы ( в которой может разобраться при необходимости практически любой грамотный человек , даже далёкий от программирования ). А ошибки ищются на ура . И никакой язык программирования не сравнится по наглядности ( Си в том числе ) . . . Поэтому лично для меня какие из операторов подставить в программу - асм или Си особого значения не имеет . От кривых рук программиста не спасёт ни собака , ни другие аппаратные вещи .
×
×
  • Создать...