AVR и ISA-устройства

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
WatchCat
Это не хвост, это антенна
Сообщения: 1455
Зарегистрирован: Ср сен 03, 2008 21:42:17
Откуда: Ленинградская область,пос.Красный Остров

AVR и ISA-устройства

Сообщение WatchCat »

Интересовался ли кто-нибудь возможностью использования "морально-устаревших" устройств для шины ISA с микроконтроллерами AVR ? Я имею в виду все то, что не требует высокого быстродействия.
Например вот лежит плата-радиоприемник SF16-FMR, в городских условиях способен вполне неплохо принимать новости, собственно это от него и нужно. Судя по исходнику линуксовой управляющей программы - отзывается он на обращение к порту 0x384. Рассматривание платы показало, что
на нее заведены разряды данных D0-D5 и это фактически линии последовательного управления микросхемами синтезатора частоты и регулятора громкости.
Даже процитирую:
#define SF16FMR_FREQ_DATA_ON (1 << 0)
#define SF16FMR_FREQ_CLOCK_ON (1 << 1)
#define SF16FMR_FREQ_PERIOD_ON (1 << 2)
#define SF16FMR_VOLU_STROBE_ON (1 << 3)
#define SF16FMR_VOLU_CLOCK_ON (1 << 4)
#define SF16FMR_VOLU_DATA_ON (1 << 5)

С этим все понятно. То есть получается, что если имитировать выбор адреса этого порта, то дальше можно обращаться к плате.
Но вот с адресом проблемы. На плату заведены сигналы A1-A9, IOR,IOW и AEN. Дешифратор увы на каком-то программируемом таракане GAL16V8B, проследить его выходы мне не удалось. Остается только попробовать подсунуть ему правильную комбинацию битов на вход чтобы он считал что происходит обращение к порту 0х384. В двоичном виде это
0b1110000100. Можно ли просто замкнуть нужные адресные входы платы на питание и землю соответственно(ну может через небольшие резисторы)? Что делать с IOW и IOR - понятно, запись и чтение соответственно. А вот AEN с чем едят?
Вообще есть подозрение, что эта плата способна отзываться не только на порт 384, как минимум потому что A0 на нее не подключен. И что в линуксовом драйвере используются не все возможности электрической схемы - она явно сложнее и по всей видимости позволяет считывание признака настройки на станцию и наличия стереосигнала. Возможно управление программным режимом MUTE. Но в этом увы глядя на плату разобраться не удалось. Однако так как у меня микроконтроллер, а не комп, никто не мешает подпаяться прямо к нужным выводам микросхемы радиоприемника TEA5712T. Вывод 30 - это индикатор стерео, его можно использовать вообще просто как индикатор факта настройки на станцию, 32 - функция mute. Может быть подробное изучение даташита(и подключение осциллографа) позволит найти и вывод, на котором уровень напряжения меняется пропорционально силе сигнала, тогда его на АЦП контроллера прицепить.
Заодно назову и другие микросхемы на плате:
синтезатор частоты TC9216P
регулятор громкости PT2254A
на выходе кстати усилитель TEA2025В, мощности побольше чем у иных советских портативных транзисторных приемников, можно колонки небольшие подключить.
Есть также идея попробовать позаписывать в синтезатор значения частоты за границами диапазона 88-108мгц, не исключено что получится плату на "советский" УКВ настроить.

Если тут есть те, кто работал с шиной ISA на уровне электрических сигналов- подскажите пожалуйста тонкости выбора адреса устройства!
Сам я хотя и писал немало на ассемблере IBM PC XT, но электрической частью не занимался, платы разрабатывали другие люди, я только программировал.
Понятно что можно порезать дорожки и вообще отключить дешифратор адреса, но в общеобразовательных целях все же хочется научиться формировать адресные сигналы шины ISA. Тем более что в данном случае и в случае подобных устройств временнЫе параметры должны быть не сильно критичны (в смысле неодновременность установки разрядов адреса и тому подобное)
Реклама
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Сообщение SII »

Для начала можно, например, здесь посмотреть: http://www.spline.ru/information/review ... _bus#Input Описаны сигналы ИСА и всё такое. Ну или в книжке М.Гука "Аппаратные интерфейсы ПК" (Питер, 2002).
Реклама
Аватара пользователя
WatchCat
Это не хвост, это антенна
Сообщения: 1455
Зарегистрирован: Ср сен 03, 2008 21:42:17
Откуда: Ленинградская область,пос.Красный Остров

Re: AVR и ISA-устройства

Сообщение WatchCat »

Лежит промышленная плата многоканального АЦП, стоившая лет десять назад несколько сотен баксов. Не думаю, что АЦП на ней стал работать хуже тольк от того, что шина ISA вышла из моды. :)
Вот, нашел описание как некий немец подключал isa-плату (ethernet) к контроллеру. Там можно подсмотреть какие сигналы он использовал.
Сигналы данных понятны и очевидны, разряды адреса частично замкнуты на землю/питание(старшие), частично подключены к МК (младшие) - тоже понятно. Также к МК подключены IOW/IOR, это тоже понятно. А вот почему сигнал защелкивания адреса ALE оставлен не подключенным - не знаю. В какой же момент плата будет принимать данные от контроллера и в какой выставлять на шину данных свои?
К сожалению немец не предлагает исходников как он с этим макетом работал. Да и немецкого я вообще-то не знаю:(
Может быть кто-то более компетентный прокомментирует подключение isa-платы к контроллеру?
Вложения
AVRSmallWebServer.pdf
В этом файле есть пример соединения контактов isa-платы с микроконтроллером.
(346.32 КБ) 400 скачиваний
Аватара пользователя
Goldsmith
Опытный кот
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону
Контактная информация:

Re: AVR и ISA-устройства

Сообщение Goldsmith »

WatchCat писал(а):разряды адреса частично замкнуты на землю/питание(старшие), частично подключены к МК (младшие) - тоже понятно.
0x300 - классический базовый адрес сетевого адаптера типа NE2000.
WatchCat писал(а):А вот почему сигнал защелкивания адреса ALE оставлен не подключенным - не знаю.
Он нужен для фиксации старших разрядов адресной шины (17..23) при адресации пространства до 16 Мб. В нашем случае это совершенно излишне.
WatchCat писал(а):В какой же момент плата будет принимать данные от контроллера
Контроллер должен активировать IOW, затем выставить данные, снять IOW (в этот момент плата принимает данные) и освободить шину данных.
WatchCat писал(а):и в какой выставлять на шину данных свои?
В момент активации IOR. Контроллер считывает данные, затем снимает IOR. Плата освобождает шину данных.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: AVR и ISA-устройства

Сообщение Satyr »

ISAшные девайсы - без каких либо проблем легко можно пользовать.

Классический пример - еще недавно для Ethernetа многие пользовали с микроконтрллерами древние RTL8029 с ISA интерфейсом.
Реклама
Аватара пользователя
WatchCat
Это не хвост, это антенна
Сообщения: 1455
Зарегистрирован: Ср сен 03, 2008 21:42:17
Откуда: Ленинградская область,пос.Красный Остров

Re: AVR и ISA-устройства

Сообщение WatchCat »

Goldsmith писал(а):Контроллер должен активировать IOW, затем выставить данные, снять IOW (в этот момент плата принимает данные) и освободить шину данных.
WatchCat писал(а):и в какой выставлять на шину данных свои?
В момент активации IOR. Контроллер считывает данные, затем снимает IOR. Плата освобождает шину данных.
Премного благодарю за полный и точный ответ. Теперь я обладаю достаточной информацией чтобы начинать самостоятельные эксперименты.
Позволю себе еще один вопрос - не обидится ли isa-устройство, расчитанное на работу при частоте шины 8мгц, на слишком "медленные" действия микроконтроллера? Посмотрел временные диаграммы исы - обеспечить такое на имеющейся у меня Atmega16 не получится, тем более что я все же не настолько профессионал в программировании МК чтобы "выжимать миллисекунды" на ассемблере.
Реклама
Аватара пользователя
Goldsmith
Опытный кот
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону
Контактная информация:

Re: AVR и ISA-устройства

Сообщение Goldsmith »

IMHO проблем из-за неторопливости МК возникнуть не должно.

Проблема может крыться в другом: вы хорошо изучили протокол взаимодействия данной платы с компьютером? Если весь ввод-вывод у нее программный, то все достаточно просто. А вот если она использует канал прямого доступа к памяти, тогда все усложняется. Не настолько, конечно, чтобы совсем уж нереально было сделать. Но вполне возможно, что проще будет подключить АЦП напрямую с МК, а плату не задействовать вовсе.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»