Интересовался ли кто-нибудь возможностью использования "морально-устаревших" устройств для шины 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. Тем более что в данном случае и в случае подобных устройств временнЫе параметры должны быть не сильно критичны (в смысле неодновременность установки разрядов адреса и тому подобное)
AVR и ISA-устройства
- Реклама
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Для начала можно, например, здесь посмотреть: http://www.spline.ru/information/review ... _bus#Input Описаны сигналы ИСА и всё такое. Ну или в книжке М.Гука "Аппаратные интерфейсы ПК" (Питер, 2002).
- WatchCat
- Это не хвост, это антенна
- Сообщения: 1455
- Зарегистрирован: Ср сен 03, 2008 21:42:17
- Откуда: Ленинградская область,пос.Красный Остров
Re: AVR и ISA-устройства
Лежит промышленная плата многоканального АЦП, стоившая лет десять назад несколько сотен баксов. Не думаю, что АЦП на ней стал работать хуже тольк от того, что шина ISA вышла из моды. 
Вот, нашел описание как некий немец подключал isa-плату (ethernet) к контроллеру. Там можно подсмотреть какие сигналы он использовал.
Сигналы данных понятны и очевидны, разряды адреса частично замкнуты на землю/питание(старшие), частично подключены к МК (младшие) - тоже понятно. Также к МК подключены IOW/IOR, это тоже понятно. А вот почему сигнал защелкивания адреса ALE оставлен не подключенным - не знаю. В какой же момент плата будет принимать данные от контроллера и в какой выставлять на шину данных свои?
К сожалению немец не предлагает исходников как он с этим макетом работал. Да и немецкого я вообще-то не знаю:(
Может быть кто-то более компетентный прокомментирует подключение isa-платы к контроллеру?
Вот, нашел описание как некий немец подключал isa-плату (ethernet) к контроллеру. Там можно подсмотреть какие сигналы он использовал.
Сигналы данных понятны и очевидны, разряды адреса частично замкнуты на землю/питание(старшие), частично подключены к МК (младшие) - тоже понятно. Также к МК подключены IOW/IOR, это тоже понятно. А вот почему сигнал защелкивания адреса ALE оставлен не подключенным - не знаю. В какой же момент плата будет принимать данные от контроллера и в какой выставлять на шину данных свои?
К сожалению немец не предлагает исходников как он с этим макетом работал. Да и немецкого я вообще-то не знаю:(
Может быть кто-то более компетентный прокомментирует подключение isa-платы к контроллеру?
- Вложения
-
- AVRSmallWebServer.pdf
- В этом файле есть пример соединения контактов isa-платы с микроконтроллером.
- (346.32 КБ) 400 скачиваний
- Goldsmith
- Опытный кот
- Сообщения: 736
- Зарегистрирован: Пн янв 10, 2011 03:06:36
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: AVR и ISA-устройства
0x300 - классический базовый адрес сетевого адаптера типа NE2000.WatchCat писал(а):разряды адреса частично замкнуты на землю/питание(старшие), частично подключены к МК (младшие) - тоже понятно.
Он нужен для фиксации старших разрядов адресной шины (17..23) при адресации пространства до 16 Мб. В нашем случае это совершенно излишне.WatchCat писал(а):А вот почему сигнал защелкивания адреса ALE оставлен не подключенным - не знаю.
Контроллер должен активировать IOW, затем выставить данные, снять IOW (в этот момент плата принимает данные) и освободить шину данных.WatchCat писал(а):В какой же момент плата будет принимать данные от контроллера
В момент активации IOR. Контроллер считывает данные, затем снимает IOR. Плата освобождает шину данных.WatchCat писал(а):и в какой выставлять на шину данных свои?
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
J. Ganssle
Re: AVR и ISA-устройства
ISAшные девайсы - без каких либо проблем легко можно пользовать.
Классический пример - еще недавно для Ethernetа многие пользовали с микроконтрллерами древние RTL8029 с ISA интерфейсом.
Классический пример - еще недавно для Ethernetа многие пользовали с микроконтрллерами древние RTL8029 с ISA интерфейсом.
- Реклама
- WatchCat
- Это не хвост, это антенна
- Сообщения: 1455
- Зарегистрирован: Ср сен 03, 2008 21:42:17
- Откуда: Ленинградская область,пос.Красный Остров
Re: AVR и ISA-устройства
Премного благодарю за полный и точный ответ. Теперь я обладаю достаточной информацией чтобы начинать самостоятельные эксперименты.Goldsmith писал(а):Контроллер должен активировать IOW, затем выставить данные, снять IOW (в этот момент плата принимает данные) и освободить шину данных.В момент активации IOR. Контроллер считывает данные, затем снимает IOR. Плата освобождает шину данных.WatchCat писал(а):и в какой выставлять на шину данных свои?
Позволю себе еще один вопрос - не обидится ли isa-устройство, расчитанное на работу при частоте шины 8мгц, на слишком "медленные" действия микроконтроллера? Посмотрел временные диаграммы исы - обеспечить такое на имеющейся у меня Atmega16 не получится, тем более что я все же не настолько профессионал в программировании МК чтобы "выжимать миллисекунды" на ассемблере.
- Goldsmith
- Опытный кот
- Сообщения: 736
- Зарегистрирован: Пн янв 10, 2011 03:06:36
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: AVR и ISA-устройства
IMHO проблем из-за неторопливости МК возникнуть не должно.
Проблема может крыться в другом: вы хорошо изучили протокол взаимодействия данной платы с компьютером? Если весь ввод-вывод у нее программный, то все достаточно просто. А вот если она использует канал прямого доступа к памяти, тогда все усложняется. Не настолько, конечно, чтобы совсем уж нереально было сделать. Но вполне возможно, что проще будет подключить АЦП напрямую с МК, а плату не задействовать вовсе.
Проблема может крыться в другом: вы хорошо изучили протокол взаимодействия данной платы с компьютером? Если весь ввод-вывод у нее программный, то все достаточно просто. А вот если она использует канал прямого доступа к памяти, тогда все усложняется. Не настолько, конечно, чтобы совсем уж нереально было сделать. Но вполне возможно, что проще будет подключить АЦП напрямую с МК, а плату не задействовать вовсе.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
J. Ganssle


