Добрый всем вечер.
Есть значит одна схемка (ADS адаптер).
Там используется программируемая логика, нужно её заменить. Помогите пожалуйста. Вот список функций:
Если делать глобально, не под конкретную задачу то моё предложение таково - вам нужно взять любой доступный контроллер(AVR или PIC) и превратеть его в PLC-контроллер. Каким образом? Эта задача не нова. Если что. вот ссылка
There is only 10 kind of people: those who understands binary code and those who dont!!!
Как-то не уверен что это прокатит. Все-таки palce имеет задержку распространения сигнала 25нс. На микроконтроллере такое не получишь. Т.е. в общем случае такая замена неадекватна. Такая замена допустима, только при анализе работы всей схемы и наличии дополнительных условий допускающих такую замену.
Ну или хоть объясните как вообще к этой проблеме подойти?
Чтобы что посоветовать, надо знать ваши возможности. Я бы зашил xc9536 (из пушки по воробьям, но ведь главное результат?). Или в стародавние времена один горелый контроллер с PAL22xxxx заменил тремя микросхемами простой логики.
Однако приведенные вами выражения не особо и сложные, думаю, тоже можно уложиться в 3 микросхемы простой логики, если их есть где разместить. 12, 13 и 19 - по одному инвертору от ЛН1. 17, 18 - просто перемычки. только надо подумать над 14-16 как по-компактнее уложить во что-нибудь.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Starp писал(а):Про заменить микроконтроллером можно поподробнее?
Тоесть в главном цикле написать SWITCH со всеми возможными вариантами и все?
Я не знаю, каким боком тут SWITCH, но если задержка в 1 мкс не критична, то это делается в пол-пинка ( весь цикл - 4 команды ) :
Например, для AVR :
ldi r16,0
out DDRA,r16 ; порт А на ввод
ldi r16,0xFF
out DDRB,r16 ; порт B на вывод
ldi ZH,high (CODE_TAB<<1) ; кодовую таблицу размещаем на границе страницы
loop: in ZL,PINA
lpm
out PORTB,r0
rjmp loop
.org 0x200
CODE_TAB:
.db ....... ; здесь выходные коды
Выходную кодовую таблицу, чтоб не мучиться и не ошибаться, можно сгенерировать простейшей
программой.
Starp писал(а):
Ну или хоть объясните как вообще к этой проблеме подойти?
Взять учебник по цифровой схемотехнике и почитать про синтез цифровых схем, ну и изучить булеву логику и преобразования булевых функций.
Для реализации на логике потребуется максимум 3 микросхемы: 6xНЕ (ЛН1), 3x3И-НЕ (ЛА4) - для PIN14, сдвоенный мультиплексор 4х1 (КП2) - для PIN15, PIN16
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
И ещё - проверте правильно ли у вас записаны уравнения..
На схеме приведенной вами некоторые уравнения для инверсных выходов, в вашем случае для прямых.
К примеру PIN14 = SG_TX_OUT ; а уравнение на схеме для /SG_TX_OUT ..
Добрый день!
Форумчане, проверьте, пожалуйста, правильно ли я заменил ПЛИС логикой:
/16=/2*/3*/9+/2*9
в этом выражении незнаю правильно ли сделать так:
16=2*3*9+2*/9
Проверка элементарна. Составьте таблицы истинности для обоих формул. Если совпадают - правильно, если нет... то увы. Тем более, что там всего 3 аргумента и, соответственно, только 8 комбинаций. У мене не совпали.
Более того, с приведенным в начале темы листком не совпадает.
для 16 пина: /p2*/p3*/p9 + /p2*p9 => /(p2+p3+p9) + /(p2+/p9) => /((p2+p3+p9)*(p2+/p9)) => /((p2+p3+p9)*/(/p2*p9)) - 2 элемента 2И-НЕ и 1 элемент 3ИЛИ
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
У меня получается так:
Не знаю есть ли 3ИЛИ в TTL микросхемах, поэтому использовал 3ИЛИ-НЕ и следом еще один элемент НЕ. disclaimer: входные линии нарисованы не по порядку и от балды.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."