У меня такая проблема, над которой бьюсь уже несколько дней.
Если кратко - то есть прибор, в котором стоит AT91SAMX256. ВСЕ выводы задействованы.
Есть порт B21, который по идее должен управлять электронным ключом на биполярном транзисторе(BC847). Ключ подсаживает вывод другого девайса на землю.
В процессе работы программы на выводе ничего не происходит, никакого напряжения не появляется, соответственно ключ не срабатывает и девайс не включается.
Инициирую так:
#define Pin_ON B,21,H
.
.
.
pin_off(Pin_ON); pin_dir_out(Pin_ON);
.
.
.
Далее в программе его включаю:
.
.
.
pin_on(Pin_ON);
.
.
.
... и выключаю:
.
.
.
pin_off(Pin_ON);
.
.
.
Никакого шевеления не наблюдалось.
В процессе поиска выхода был выброшен транзистор, Контактные площадки коллектора и базы коротились и все заработало. Т.е. порт работает как вход. Далее в процессе ковыряния был взят порт(порт А29, выв. 75) , выполняющий аналогичные функции управления электронным ключом и засинхронизированы вот так:
#define Pin_ON B,21,H
#define Pin_MOD A,29,H
.
.
.
pin_off(Pin_ON); pin_dir_out(Pin_ON);
pin_off(Pin_MOD); pin_dir_out(Pin_MOD);
.
.
.
pin_on(Pin_ON);
pin_on(Pin_MOD);
.
.
.
pin_off(Pin_ON);
pin_off(Pin_MOD);
.
.
.
Вывод 75 работал как положено, а 66 - нет(((
В чем причина?
Есть аналогичная плата, там так же - т.е. баг в прошивке, а не в контроллере.
Кто может - помогите!!!!