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

Полигон-2

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

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

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

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

IrDA для COM-порта

<<Назад  Вперед>> Страницы: 1 2 3
Печать
 
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