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

    

Splinter

Участник
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

Информация о Splinter

  • Звание
    Участник
  1. Управление банками памяти для 8051

    Промаялся с Протексом 2 дня. Я в тупике. Взял базовую модель 80С51. Модели для памяти 512 кБ не нашел, взял 8 шт. по 64 кБ (27С512) и навесил дешифратор адреса на 74LS138. Насколько я понял в свойствах 80С51 нужно поставить Simulate Program Fetches = yes для работы с внешним ROM и /EA посадить на землю. Но нифига не работает. На линиях адреса и данных высокоимпедансное состояние. Хотя линия выбора внешнего ROM /PSEN падает в ноль. В окошке текущей выполняемой инструкции одни NOP. Подскажите что делаю не так?
  2. Управление банками памяти для 8051

    Спасибо за наводку. Поставил Протеус, поигрался немного и возникла пара вопросов. Во время симуляции где смотреть ассемблерный листинг, где ставить бряки? Нашел окно регистров CPU, там отображается только текущая инструкция. Как править содержимое регистров? В частности есть необходимость оперативно изменять регистр РС (кстати его нигде не вижу). Может кто-нибудь накидать примерчек с подключением внешних RAM (32кБ) и ROM (512 кБ А16-P3.5, A17-P3.4, А18-P1.7) к 8051 в Протеусе? Можно ли на основе имеющегося в Протеусе МК сделать свой с нужной периферией (судя по описанию все 8051 в Протеусе используют одну dll для симуляции)?
  3. Управление банками памяти для 8051

    Есть устройство на тайваньском МК IP210S - это 8051 + Ethernet на борту. Нужно расширить его функционал, для чего провожу декомпиляцию. Есть загвоздка, усложняющая задачу. Прошивка помещается во внешний Flash емкостью 512 кБ. Эта Flash делится на банки по 64 кБ (всего 8 банков). Управление банками производится с помощью 3-х GPIO (3 верхних линии адреса). Подскажите, можно ли в IDA как-то упростить себе задачу, реализовав автоматическое управление банками. Или может можно как-то поместить их в сегменты и хотя-бы вручную их переключать? Сейчас у меня запущенно 8 копий IDA, в каждой из которых открыто по одному банку кода. Это ужасно неудобно. И еще подскажите есть ли какой-то симулятор/отладчик в котором можно управлять банками кода (хотя-бы вручную)?
  4. Цитата(dinam @ Nov 15 2011, 05:50) Вы бы тип нагрузки ещё указали и потом схемку с номиналами выложили которую будете макетировать. Тогда с нашей помощью, грабель бедет меньше Спасибо за участие. Раздобыл наконец кусочек схемы входных цепей прибора, входами которого нужно управлять. Схемка конечно схематичная, но основные принципы понятны. Полярность источника питания входных цепей показана условно, можно и наоборот - прибору без разницы. Параметры входов: напряжение на входе 220В +-20% постоянное; входной ток 1,5мА при 220В; входное сопротивление 140кОм. Разрабатываемое устройство должно заменить кнопки (ключи) на входе устройства. Будет время визуализирую в виде схемки то, что собираюсь смакетировать.
  5. Цитата(rx3apf @ Nov 14 2011, 19:44) Ну да, взять маленький DC-DC, лучше для безопасности с трехкиловольтной развязкой. Спасибо, приму к сведенью как вариант. Цена DC-DC на 5 вольт порядка 200р, если использовать совместно с решением опторазвязки регистров и с транзисторами на выходе то получается вполне бюджетно.
  6. Цитата(rx3apf @ Nov 14 2011, 19:00) 64 линии - это довольно громоздко. Я бы поставил регистры с последовательной загрузкой (74hc595), а вот их-то вполне можно отвязать от процессора оптопарами. Правда, потребуется три-четыре штуки вместо одной-двух для развязки RS-232 (а скорости-то какие у RS-232 ? Если маленькие, то можно и ширпотребом типа 4N35 обойтись). А регистры пусть высоковольтными npn-транзисторами управляют. В условиях ограниченного бюджета предложенные транзисторы - IMHO, безальтернативный вариант... Именно эти регистры и используются в данном устройстве, по 8 штук. Поясните пожалуйята как вы их предлагаете развязать, по сигналам управления понятно оптопары поставить, а по питанию два источника питания для устройства делать чтоли? На RS-232 достаточно скорости 9600. Заказал пока в местном магазине по штучно оптопару KP4020, оптореле CPC1035N и транзисторы MMBTA42 (номиналы из того что реально есть по каждому из решений) - соберу на макетке каждый вариант и посмотрю как работает, какие проблемы и т.п. Если есть еще соображения/предложения - по прежнему буду рад услышать пока вопрос не закрыт.
  7. Цитата(dinam @ Nov 14 2011, 14:05) Где вы хотите разрывать цепь нагрузки? Если её можно откключать от земли, то в разрыв ставиться n-p-n по схеме с ОЭ. Между базой и выходом МК ставите резистор. Ещё желательно с базы на землю резистор. Транзистор, указанный выше, стоит меньше рубля. И всё! Это если нагрузка активная. Вы видимо имеете ввиду не землю а общий провод. Питание прибора не связано общей точкой с источником высокого напряжения постоянного тока, поэтому управляющий элемент может разрывать как плюсовой так и минусовой провод питания нагрузки. Цитата(DpInRock @ Nov 14 2011, 14:19) Вот за что я не люблю транзисторы, за то, что они транзисторные. Красивый афоризм, нужно взять на вооружение Цитата(DpInRock @ Nov 14 2011, 14:19) Вы просуммируйте стоимости, включая пайку. Разница получится не такой устрашающей. Это не серийный экземпляр, а испытательная установка собираемая в нескольких экземплярах и к сожалению с весьма ограниченным бюджетом. Цитата(DpInRock @ Nov 14 2011, 14:19) Опять таки - опторазвязки на проц не требуется. А это значит, что с питанием у него будет все нормально. Да, я полностью с Вами согласен. Мне тоже данный вариант нравится больше всего. Я конечно попытаюсь втиснуть в бюджет твердотельные реле, т.к. я сам раньше не занимался согласованием цифровых цепей с высоким напряжением и боюсь наткнуться где нибудь на грабли в "простых, недорогих решениях", а с твердотельными реле на данный момент все выглядит как "поставил и забыл", но уж этот вечный Бюджет. Цитата(ILYAUL @ Nov 14 2011, 15:58) +1 А есть вот такие PRAC34S (два в одном) и в том же Платане 90 р за шт. или 75 за мелкий опт Заглянул в даташит - у них предельное напряжение коммутации всего 200 вольт. Да и суровая жизнь меня отучила любить произведения отечественной электронной промышленности.
  8. Цитата(dinam @ Nov 14 2011, 08:56) Какой симистр? Постоянный же ток. Проще всего биполярный(полевой) транзистор и два резистора. Это если не требуется развязки, можно отключать землю и нагрузка чисто активная. Цитата(dinam @ Nov 14 2011, 13:03) Вы бы ответили на мои вопросы. STPSA42(MMBTA42) вряд ли дешевле найдете. А схему надеюсь, сами нарисуете Извините проглядел ваш ответ. Развязка требуется, но вот уже DpInRock предложил развязываться на уровне интерфейса. В качестве нагрузки выступает вход операционника с резистивным делителем на входе. Про "можно отключать землю" честно не понял, поясните вопрос пожалуйста. Цитата(Tanya @ Nov 14 2011, 13:08) ADM3251 - с питанием внутри уже. Принимается, спасибо. Только вот с доступностью данной м/с думаю есть проблемы, у нас в городе их точно нет, однако направление поиска понял, кажется у Максима есть подобные м/с с гальванической развязкой.
  9. Цитата(DpInRock @ Nov 14 2011, 07:57) Симистор исключается. Реле на таких токах будет глючить. Полностью согласен. Цитата(DpInRock @ Nov 14 2011, 07:57) Просто P-канальный мосфет и в затвор ему транзистор биполярный какой-нибудь. Тоже высоковольтный. Опторазвязывать дешевле сам микроконтроллер, если требуется. В смысле, если предполагается внешнее управление этим контроллером. Тоже думал об этом варианте. Кажется оптимальным по стоимости. Только не могу найти легкодоступный маломощный поливичек на высокое напряжение. Может посоветуете? И совсем бы хорошо схемку набросать. А вот про опторазвязку я как раз и мучился - в данном варианте ставить 64 оптопары кажется накладным. Как-то и не подумал, что достаточно развязать по интерфейсу - может есть схемка развязки (интерфейс RS-232)? Цитата(SSerge @ Nov 14 2011, 09:47) Photovoltaic Relay типа PVT412 или PVT422 не подойдут? https://ec.irf.com/v6/en/US/adirect/ir?cmd=...1620+4294870945 Вариант очень хороший, но очень дорогой. У нас в городе PVT412 стоит 120р, даже если заказывать из Москвы все равно дорого. Есть более бюджетный вариант CPC1035N - 60р, но тоже не дешево. Есть вариант номер 2 (по приоритетности после полевичка) - KP4020, на выходе дарлингтон, две оптопары в корпусе - 33 р за корпус, вполне бюджетно.
  10. Прошу помощи в рекомендациях по построению выходного (управляющего) каскада для управления высоковольтной нагрузкой постоянного тока. Задача следующая: с помощью МК управлять высоковольтной нагрузкой постоянного тока с напряжением 200-250 В и током до 10 мА. Функция управления имеет два состояния: включено и выключено, скорость коммутации не более 2-4 Гц. Т.е. интересует схемное решение от ножки МК до клемм подключения нагрузки. Хотелось бы получить решение с небольшой стоимостью и малогабаритное, т.к. в устройстве предполагается 64 таких канала.
  11. Цитата(LightElf @ Dec 10 2010, 12:01) У фрискейлов нет модели с SDRAM и PHY одновременно. Или - или. Для нашей задачи SDRAM и не потребуется. Цитата(scifi @ Dec 10 2010, 14:22) Используем MCF5223x. Они, правда, прожорливые: 300 мА на 100 Мбит/с, 200 мА на 10 Мбит/с, при тактовой 50 МГц. Если этот показатель важен, то нужен малопотребляющий внешний PHY типа KSZ8051. Зато Freescale обещает, что будет их поставлять до 2017 года: Freescale Product Longevity Если поискать, то их можно купить за 6$ в кол-ве 100 шт., но это за бугром. Спасибо за наводку, рассматриваем. Хотя их производительность для нас избыточна, но радует наличие аппаратного криптомодуля - можно будет реализовать криптование данных. Я так понимаю у вас есть опыт работы с этими MCU. Подскажите, у freescale TCP/IP стек бесплатный? сколько памяти занимает стек вместе с HTTP (или без него)?
  12. Цитата(_pv @ Dec 10 2010, 02:34) поиском по форуму не пробовали воспользоваться? http://electronix.ru/forum/index.php?showtopic=44276 Да ну конечно пробовал. Вариант по ссылке мало подходит (хотя в принципе тоже рассматривается) из-за своей громоздкости - 3 м/с + трансформатор развязки. К тому же беглый взгляд по поставщикам дал суммарную стоимость более указанной выше. Хотелось бы услышать вариант "всё на борту", как например PIC18 c Ethernet (но он не нравится моим проектировщикам потому что PIC, и вроде энергопотребление высокое) или DiGi серии Net (избыточно мощно - ARM9 - и дорого).
  13. Прошу помощи в выборе MCU с Ethernet(MAC+PHY) на борту. Производительность и богатство перифирии интересуют в последнюю очередь. Самым важным параметром является цена - до 5-6$. Достаточно 8-бит ядра. Ну и желательно чтобы чип был относительно свежим - чтобы долгое время был доступен к покупке. Очень желательно наличие бесплатной реализации TCP/IP. Вариант с отдельным MCU + м/с PHY выглядит мало пригодным из-за высокой конечной стоимости, хотя если кто-то знает такую связку за указанную выше цену - буду рад выслушать варианты. Для оценки функциональных возможностей и производительности укажу область применения - интеллектуальное реле, набор функций минимален - работа по алгоритму загружаеиому через Ethernet; работа по командам из вне; 8 дискретных канала на выходе. Кстати может кто ещё и часы реального времени посоветует - опять же по максимально низкой стоимости.
  14. Цитата(yuri_d @ Oct 3 2007, 13:03) Функция, которую вы привели в примере написана не на ассемблере, а на С с ассемблерной вставкой. Ассемблерная функция пишется в отдельном файле по правилам для компилятора ассемблера. А у вас просто С функция, в которую вставили некоторое количество ассемблерных команд. Доступ к локальным переменным из ассемблерной вставки у разных компиляторов выглядит по разному. Посмотрите help. Скорее всего пройдет нечто похожее на LD REG, LOCAL_VAR для загрузки регистра и LD LOCAL_VAR, REG для сохранения результата ассемблерной вставки в локальную переменную. Далее достаточно просто выполнить return LOCAL_VAR. Спасибо за разъяснения. Посмотрел внимательнее Help и нашёл The functions return their values in the registers (from LSB to MSB): R30 for char and unsigned char R30, R31 for int and unsigned int R30, R31, R22, R23 for long and unsigned long. Цитата(drovik @ Oct 3 2007, 12:31) Ну вот эти 3 строки кода и вылезли в проблему... Вы неправы, это не проблема, а временная трудность с которой рано или поздно пришлось бы столкнуться. А если постоянно использовать готовые библиотеки то никогда и не научишься правильно и грамотно писать.
  15. Пишу свой первый проект для МК, учусь в процессе, осваиваю Си (CodeVisionAVR). Столкнулся с проблемой, решения которой немогу найти ни в книгах ни в примерах. Вот суть: пишу функцию для SPI (используется модуль USI в ATTyni26) на ассемблере, как передать параметры я разобрался а вот как вернуть результат этой функции никак ума не приложу. Вот код функции: char spi_transfer(char data) { #asm ld r16, y out 0xf, r16 ldi r16, (1<<USIWM0)+(0<<USICS0)+(1<<USITC) ldi r17, (1<<USIWM0)+(0<<USICS0)+(1<<USITC)+(1<<USICLK) out 0xd, r16 out 0xd, r17 out 0xd, r16 out 0xd, r17 out 0xd, r16 out 0xd, r17 out 0xd, r16 out 0xd, r17 out 0xd, r16 out 0xd, r17 out 0xd, r16 out 0xd, r17 out 0xd, r16 out 0xd, r17 out 0xd, r16 out 0xd, r17 in r16, 0xf #endasm return; } Как нужно реализовать return ?