Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Технический флейм »   IrDA для COM-порта
RSS

IrDA для COM-порта

<<Назад  Вперед>> Страницы: 1 2 * 3
Печать
 
Rio444
Гость


Откуда: Ростов-на-Дону
Всего сообщений: 8632
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
14 сен. 2014
Blackbird написал:
[q]
Вам два транзистора сложно припаять на COM если уж на максим грошей немаэ ?
[/q]
Наверное дело не в грошах, а в том, что эти детальки надо найти, а потом ещё спаять.
Я уже месяца два не могу купить панельку dip-14 за 5 рублей, потому что рядом магазинов нет, а тратить два часа и 50-100 руб. на проезд только из-за одной панельки - не в кайф.
По той же причине зачастую выпаиваю копеечные детали, вместо того, чтобы купить новые.
ATauenis
Advanced Member


Откуда: Москва
Всего сообщений: 2904
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 апр. 2015
Blackbird написал:
[q]
Вам два транзистора сложно припаять на COM если уж на максим грошей немаэ ?
[/q]
Так паять надо. А тут только шлейф на гребёнку обжать, и вперёд. Меньше действий.


Blackbird написал:
[q]
И не знаю у меня на мамках от пентиума 1 до коры дуба IRDA была ирдой когда встроенная .
[/q]
Помнится, Win98 её видит как COM порт. Надо повторно порыться в своих платах, заскриншотить.


Blackbird написал:
[q]
И еще раз повторяю там оно физически по входам и выходам UART не напоминает
[/q]
Таки это не UART? При условии отсутствия драйвера, и работе гипертерминалом с IrDA-COM-портом.
Blackbird
Advanced Member


Откуда: Новосибирск
Всего сообщений: 634
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
6 нояб. 2008
[q]
Таки это не UART? При условии отсутствия драйвера, и работе гипертерминалом с IrDA-COM-портом.
[/q]
Физически ни разу не UART - блин неужель сложно погуглить что там передается и как . Я осциллом нагляделся в свое время когда самопальный IRDA делал на комп . И да в винде есть "прокладка" софтовая виртуальный COM порт с которым вы можете работать в частности и гипертерминалом - но от этого настоящим он не станет ..А что там и как на самом деле может быть чем угодно . Вот щас переходники есть на ethernet и на wi-fi - забавно было их юзать . То бишь если настроить то вы можете быть в России а физический конец может торчать в новой зеландии например - и тоже можно гипертерминалом домогаться до него :biggrin:
[q]
Наверное дело не в грошах, а в том, что эти детальки надо найти, а потом ещё спаять.
Я уже месяца два не могу купить панельку dip-14 за 5 рублей, потому что рядом магазинов нет, а тратить два часа и 50-100 руб. на проезд только из-за одной панельки - не в кайф.
[/q]
Ну мне как то проще я радиогубитель лет уже 30 и соответственно собираю это все и покупаю деталей я весьма мало - так что когды мне нужен транзистор я просто протягиваю руку к коробке где оно лежит :biggrin:
pahan
Advanced Member


Откуда: Химки, М.О.
Всего сообщений: 1070
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
13 мар. 2015
[q]
Хм оно весьма и весьма отличаеться от COM порта и дело тут увы не в уровнях напряжения.Я таки разбирался в свое время когда делал самопал внешний . Так что на просто повесить на COM порт не удастся - разве что програмную эмуляцию ногодрыгания сделаете .
[/q]
Так вопрос и есть исключительно программный.
В серийных изделиях мы когда-то делали вообще однонаправленную передачу по ИК с устройства на ПК - единственный светодиод тупо висит на выходе стандартного UART микроконтроллера. Да, скорость обмена фиксирована и очень низкая (9600), но для наших объёмов данных (несколько кБ) и этого было больше чем достаточно. Да, самое сложное - это малые длительности импульсов в IrDA. Один раз экспериментально подбиралось, какие задержки нужно напихать в прошивку МК для безошибочного приёма и дальше никаких проблем с ними не было.
Со стороны ПК конечно, всё это автоматически никак не опознавалось (именно потому что в настоящем IrDA есть сложный протокол двустороннего опознавания устройств) - была примитивнейшая самописная софтина на delphi, открывавшая виртуальный COM-порт обычного хорошего китайского USB-приёмника, принимавшая с него поток байт и складывавшая всё это в csv.
[q]
нужен еще контроллер вроде такого https://www.pe2bz.philpem.me.u...OIM32F.pdf
[/q]
Вся польза от него - избавит вас от ручного подбора задержек для разной скорости передачи (и потребности определять эту скорость). Хотя если скорость предполагается постоянной - там работы на полчаса.

Так что определяйтесь с требованиями - что именно хотите соединять и в каких режимах, и это уже надо определять остальное.
Escalibur
Advanced Member


Откуда: Москва
Всего сообщений: 945
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
12 окт. 2017
pahan, если не секрет, зачем нужна была однонаправленная связь? И как происходил контроль целостности передачи?
pahan
Advanced Member


Откуда: Химки, М.О.
Всего сообщений: 1070
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
13 мар. 2015
Затем, что ответы просто не требовались :) сохранили результаты измерений в памяти прибора, сбросили их на комп для дальнейшей обработки. В обратном направлении что-то передавать потребности просто нет. Ну и 2) скорее всего и кусок схемы и соотв. кусок кода для МК просто копипастились с более старых приборов той же конторы с гораздо более слабыми МК. Потом просто подбирались константы под новый конктроллер и его частоту и всё. В принципе по возможностям МК можно было уже попробовать и полноценный протокол туда впихать, но потребности особой не было.

С контролем целостности сходу не вспомню, надо исходники глянуть. Очень может быть, что и никак, за исключением первичной проверки при отладке прошивки :). А первичная проверка - отправить несколько сотен различных байт и убедиться, что HyperTerminal выдал именно то, что в него послали. Опять же проблем никогда не возникало, да и связь с ПК не была особо важна нашим заказчикам.
Хотя в принципе даже при однонаправленной передаче можно что-то реализовать - хоть контроль чётности включить, хоть CRC считать и передавать - вопрос времени вычислений и памяти для хранения результатов.

UPD.: А вот глянул - его и правда не было. Нам надо было передавать за раз чуть меньше 8 кб. На скорости 9600 это 8,5 секунд ровно (учитывая, что с настройками по умолчанию 8-N-1 на каждый байт реально по RS-232 передаётся 10 бит). Возможно кто-то даже экспериментировал, что даже с нашим примитивным методом подстройки за такое время приёмник и передатчик не рассинхронизируются.
И про UART я немного наврал без схемы/кода - он даже не использовался, просто дёргался обычный выходной пин (впрочем, у атмеля почти все пины переназначаемые между обычным и подключенным к какому-то из встроенных блоков - на тот, который можно было подключить к приёмнику UART висел сигнал о низком заряде батареи. Скорее всего тупо для упрощения разводки).
Вся передача - 38 строк ассемблера AVR:

Delay_IR1:            
  ldi   r26, 0b00001010  
IR_loop1:            
  dec   r26          
  brne  IR_loop1        
  ret

Delay_Pulse:          
  ldi   r26, 0b00000100  
  sbi   _SFR_IO_ADDR(PORT_IR), PIN_IR
Pulse_loop:            
  dec   r26          
  brne  Pulse_loop      
  cbi   _SFR_IO_ADDR(PORT_IR), PIN_IR
  nop              
  ret

Delay_Bit:            
  ldi   r26, 0b00011110  
Bit_loop:            
  dec   r26          
  brne  Bit_loop        
  ret  

Ir:
;Send byte
#define   IR_Data  r24  
#define   Count    r25

  cli
;Start Bit
  rcall Delay_IR1    
  nop          
  nop          
  nop          
  nop          
  rcall Delay_Pulse  
  rcall Delay_IR1    
  nop          
  ldi   Count,8    
;Send Byte
IR_Send:              
  lsr   IR_Data    
  brcc  IR_0      
  rcall Delay_Bit    
  rjmp  IR_1      
IR_0:                 
  rcall Delay_IR1    
  rcall Delay_Pulse  
  rcall Delay_IR1    
IR_1:          
  dec   Count      
  brne  IR_Send    
;Stop Bit
  rcall Delay_Bit    
  sei
  ret

Вся возьня с подбором длительности импульсов - изменением констант в Delay* и количества Nop'ов для совсем уж тонкой подстройки
<<Назад  Вперед>> Страницы: 1 2 * 3
Печать
Полигон-2 »   Технический флейм »   IrDA для COM-порта
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS