Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Нужна констультация "бывалых"


Автор: relline 9.7.2009, 16:21
Есть некая система с центральным контролером(заводского производства без документации) и парой вспомагательных.
Центральный контролер згорел=( Мы удачно его функционал перепрограмировали это не проблема, но вот со связкой вспомагательных контролеров попали в тупик. Вспомагательный контролер представляет из себя программируемую микруху ispGAL22V10C-15LJ, 2 микрухи AY0438 подключены каскадно(32-Segment CMOS LCD Driver) ну и собсно LCD дисплей H4059A.
Работало это предлизительно так: Главный контролер слал битовую последовательность на програмируемую микруху, она обрабатовала эту последовательность и выводила цифирки на ЛСД.
Вопрос: Как я могу сымитировать эту последовательность, что бы потом вычислить как нам в новом контролере слать сигналы? Прокатит такая последовательность с COM или LPT порта?

Автор: smalcom 9.7.2009, 21:28
может получится сопоставить данные с логического анализатора и то, что отображено

Автор: relline 10.7.2009, 08:58
в ходи изучения проблемы возник следующий вопрос:
Com  порт передает сигнал посылками: старт бит+5-8бит+проверочный бит+стоп бит, сигнал логической "1" 12В, нам же нужна последовательность без вспомагательных бит и с логической "1" в 5В, с 5В можно решить через микросхему MAX232, а вот со старт-стопными битами загвоздка=( 
У кого какие мысли по поводу передачи по кому неприрывной битовой последовательности без старт-стопных битов.

Автор: UniBomb 10.7.2009, 10:37
Цитата(relline @  10.7.2009,  08:58 Найти цитируемый пост)
нам же нужна последовательность без вспомагательных бит

С чего вы это взяли? Старт и стоп биты это неотъемлемая часть практически любого последовательного протокола, без них организация обмена данными была бы очень затруднена. Объясню почему.

Линия даных может иметь два устойчивых состояния - "0" и "1". Когда линия свободна на ней висит состояние "1". Это нужно для того, что бы организовывать мультимастер-сети, т.е. сеть, инициировать передачу в которой могут несколько устройств. Задача арбитража осуществляется в таком случае легко - если на линии висит "1" какое-то время, то она свободна.

Передача битов данных "1" происходит последовательным изменением лини из состояния "0" в состояние "1" и обратно. Соответсвенно бит "0" передаётся состоянием "0" на линии. Время, в течении которого линия при передачи данных имеет состояние "1" или "0" определяется скоростью передачи даных и мониторится с помощью внутренних генераторов синхроимпульсов.

А как же начать передачу данных? Естественно линию надо занять, т.е. перевести её состояние из "1" в "0". Спадающий фронт и называется "СТАРТ-бит". Хотя по сути это т.н. "полубит". Аналогично происходит окончание передачи - нарастающий фронт освобождает линию. Это соответсвенно "СТОП-бит", который тоже полубит.

Соответсвенно старт и стоп генерируются на аппаратном уровне и адекватно воспринимаются аппаратной частью принимающей стороны и в регистр данных эти полубиты не заносятся. Иными словами от них можно избавится только выбором другого интерфейса.


Так почему вы решили, что они вам не нужны?

Добавлено через 1 минуту и 43 секунды
Хотя в случае с RS232 я немного наврал - мультимастер тут не сделать, но всё остально относится и к 232-ому...

Автор: relline 10.7.2009, 12:19
2UniBomb, 
это все я прекрасно понимаю, токо фактически мне надо сымитировать соединение контроллер контролер, при том что подчиненый контролер с GAL логикой, а она(на скоко я понял) эти биты откидать не может. кабель которым соединены 2 контроллера состоит из: clk, data, ds1,ds2, switch, +12vdc, gnd. первые 2 провода понятно зачем следующие 2 под вопросом, потом идет провод который указывает на нажатие клавиши на подчиненом контролереб ну и потом питание. Моя задача сымитировать clc и data чтобы посмотреть как будет вести себя ЛСД и в результате попробовать опредилить как на ЛСД целенаправлено слать значения которые нам надо.

Изначально там стоял контролер аналог этому http://holit.ua/ru/news/2782.html токо канадского производства но с него осталось куча угля=) мы приспособили советский http://holit.ua/ru/news/2782.html но вот 2 дополнительных 7 сегментных, 6 разрядных индикатора покачто подключить ума не хватает=(
С канадского контролера выходили ихние какието специфические шнуры и разьемы подключения у нас же нуно пробовать либо по COM или USB для особого изврата есть еще Ethernet.

Автор: UniBomb 10.7.2009, 13:18
relline, посмотрел я даташит на микросхему ispGAL22V10C-15LJ, из интерфейсов там только jtag. Поэтому никаких clk, data там нет. 

Вопрос такой - между главным контроллером и ispGAL22V10C-15LJ есть ещё что-нибудь?

Автор: relline 10.7.2009, 16:17
UniBomb, основной контролер сильно погорел и посмотреть дорожки марки микрух на нем нету возможности,  clk, data, ds1,ds2, switch, +12vdc, gnd это дело взято из скудной документации по контролеру, точнее из схеми електромонтажа всей установки, имхо мое ГАЛ исполюзуется как некий ключ(разрешения/запрета) вывода а саму битовою последовательность формировал главный контролер, за выходные соберу стенд и буду пробовать через ЛПТ слать мусор, в понедельник напишу результат(если комп не спалю=))

Сор за не знание в этой теме, до этого восновном токо програмировал промышленые контролеры типа Simatic и в C++ Delphi MASM, но все таки "из интерфейсов там только jtag" это что? можно просто ссылку на статью, я просто с контролерами такого плана неделю токо вожусь=)

Добавлено через 13 минут и 30 секунд
вика штука хорошая http://ru.wikipedia.org/wiki/JTAG

я так понял ты о 1,8,15 и 22 пине на микрухе ГАЛ - на скоко я понял это для ее программирования.
судя с дорожек провод clk подключен ко 2 пину ГАЛ
а провод data к 3 пину ГАЛ, с 27 пина ГАЛ идет дорожка на 37пин  AY0438 и тот же clk подключен к 44 пину
ds1 и ds2 уходят под сам чип ГАЛ и к чему подключины вычислить некак=(

Автор: UniBomb 10.7.2009, 16:49
relline, я имел в виду со стороны "вспомогательного контроллера". Просто если верить даташиту (http://www.latticesemi.com/lit/docs/datasheets/pal_gal/22v10.pdf) ispGAL22V10C-15LJ это просто ПЛК, имеющий только дискретные входы (первый раз я смотрел старый даташит и модуль jtag там был, сейчас нет). Так вот возникла мысль, что линии clk и data предназначены для другой микросхемы, которая преобразует последовательный код в параллельный.


Цитата(relline @  10.7.2009,  16:17 Найти цитируемый пост)
"...jtag" это что?

Первая же ссылка в гугле по запросу "jtag" ведёт на http://ru.wikipedia.org/wiki/JTAG замечательную страницу.

Автор: UniBomb 10.7.2009, 17:15
Цитата(relline @  10.7.2009,  16:17 Найти цитируемый пост)
провод clk подключен ко 2 пину ГАЛа провод data к 3 пину ГАЛ

Походу дела какой-либо интерфейс там реализован программно. Тогда неизвестно ни с какой скорость туда передаются данные, ни какого формата.

Но в любом сучае:

- нужен какой-нибудь конвертер интерфейсов (для генерирования синхроимпульсов, для обеспечения двухсторонней передачи данных по линии data). или колдовать с lpt портом

- стартовый и стоповый бит присутсвуют в любом случае, иначе прибор не сможет опознать начало приёма данных и не сможет различать одну посылку от другой

Автор: relline 13.7.2009, 09:32
c LPT все получилось, там просто передавалось 64бита которые потом соответствовали определеным сегментам индикатора, ГАЛ выступал что то вроде ключа, от сигналов ds1,ds2 зависело разрешение на вывод даных. Тему можно клоуз

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)