Tahion 0 21 декабря, 2006 Опубликовано 21 декабря, 2006 · Жалоба У меня стоит задание, научить работать приемопередатчик DP1203 вмесе с МК 8051 (не спрашивайте, почему именно этот МК :( ). При изучании документации, возникли несколько проблем, подскажите, пожалуйста, как их можно решить, да и можно ли вообще. DP1203 управляется 8051 микроконтроллером, через последовательный порт МК. Т.е. DCLK и SCK выходы риемопередатчика присоединены через мою схему раздетеления сигналов ко воходу TxD микроконтроллера, а DATA/DATAIN и SI/SO ко входу RxD микроконтроллера. DP1203 у меня будет работать с включенным кодированием Баркера. Проблемы две: 1) Елси я передаю на данные на входы DATA/DATAIN DP1203, то при этом DCLK выдает тактирующие импульсы для тактирования МК. При этом сам МК тоже ВЫДАЕТ тактирующие импульсы на свой вход TxD. Вопрос: как их тогда подружить? Надо, чтоб при передаче МК->DP1203 тактирующие импульсы выдавал МК, а DP1203 принимал их, а при передаче DP1203->МК, МК ПРИНИМАЛ тактирующие импульсы. 2) Тот же порт МК, но уже работа по управлению приемопередатчиком. Т.е. работаем с SI/SO и SCK на DP1203. Согласно временной диаграмме, для программирования DP1203 надо передать 16 бит, причем подряд, без временной задержки. При этом МК 8051 может передать не более 8 бит в синхронном режиме. После окончания передачи идет обработка подюпрограммы, которая занимаеи какое-то время. А значит, мы можем передать 8+8 бит, но с определенной задержкой, между ними. Как можно избавится от этой здаржки? Можно ли навесить какое-то устройство, которое бы сделало из двух 8+8 одно 16 битное "слово"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
exSSerge 0 22 декабря, 2006 Опубликовано 22 декабря, 2006 · Жалоба 1) DCLK всегда является выходом и по-другому DP1203 не умеет. Так что воспользоваться UARTом 51-го в режиме 0 не представляется возможным. Для передачи с Баркером могу предложить подключить DCLK на INT0 или INT1 контроллера и "ловить" переход из 1 в 0, по нему выдавать очередной бит данных для передачи на вход DATA (или DATAIN). Сделать это надо до того как DCLK снова станет 1, но это будет только через 433 мкс, время есть. 2) Задержки по барабану, его SPI работает только по фронтам на SCK. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться