Проблема: по RS232 передаётся 7 бит вместо 8 бит

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
rlc
Открыл глаза
Сообщения: 67
Зарегистрирован: Сб мар 10, 2007 12:50:43

Проблема: по RS232 передаётся 7 бит вместо 8 бит

Сообщение rlc »

Помогите!
Пробую передать данные в комп.
МК: ATtiny2313
XTAL=3,6864MHz
режим:асинхронный
Всё работает, но старший бит в комп не передаётся (или обнуляется). :cry:
Вместо 0х88 приходит 0х08 и т.д.
на компе данные ловлю программой COMSPY.

код:
Reset:
ldi temp,LOW(RAMEND)
out SPL,temp
;
sbi ddrd,0
sbi ddrd,1
sbi portd,0
sbi portd,1
;19200 bod & 3.6864MHz => UBRR=11
ldi temp,11
out ubrrl,temp

ldi temp,0
out ubrrh,temp

ldi temp,0x08
out ucsrb,temp

ldi temp,(3<<ucsz0)
out ucsrc,temp

ldi cikl,6
ldi adrr,0
cikl_pzu:
ldi ZH,High(Array*2)
ldi ZL,Low(Array*2)
ldi temp,0
add ZH,temp
add ZL,adrr
lpm
out udr,R0
udr_no_nul:
sbis ucsra,udre
rjmp udr_no_nul
dec cikl
inc adrr
cpi cikl,0
brne cikl_pzu

cikl_cikl:
rjmp cikl_cikl


здесь просто читаю массив данных и бросаю в RS232
похоже, что-то не так в регистрах настройки.
Подскажите. где ошибка?
Аватара пользователя
Alexey_B
Нашел транзистор. Понюхал.
Сообщения: 186
Зарегистрирован: Чт янв 12, 2006 00:17:30
Откуда: Новосибирск, ИФП СО РАН
Контактная информация:

Сообщение Alexey_B »

ну вполне возможно что ты просто настроил передачу на данные длиной 7 бит и все.

; Set baud rate
out UBRRH, r17
out UBRRL, r16
; Enable receiver and transmitter
ldi r16, (1<<RXEN)|(1<<TXEN)
out UCSRB,r16
; Set frame format: 8data, 2stop bit
ldi r16, (1<<USBS)|(3<<UCSZ0)
out UCSRC,r16
ret

вот кусок кода буквально из datasheet на ATyny2313

ну и в том же даташите посмотри настройку на формат передачи, который тебе нужен.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»