Например вот лежит плата-радиоприемник 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. Тем более что в данном случае и в случае подобных устройств временнЫе параметры должны быть не сильно критичны (в смысле неодновременность установки разрядов адреса и тому подобное)


