USART

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
pokk
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

USART

Сообщение pokk »

Здравствуйте, подскажите в чём может быть проблема
прошиваю Attiny2313 следующим кодом

Код: Выделить всё

.include "tn2313def.inc"	; Присоединение файла описаний
.def	temp=r18
		ldi		temp, 0x7F	; Выбор адреса вершины стека 
		out		SPL, temp	; Запись его в регистр стека
;--------------------------- настройки портов
		LDI	temp,0
		out	DDRD,temp
		LDI	temp,0xFF
		out	PORTD,temp
;---------------------------; главный цикл 
		rcall uart_init
main: 
		LDI	r16,'5'
		rcall uart_snt
		Rjmp		main

;----------------------------подпрограммы		
uart_init:	
		LDI 	R16,00 
		OUT 	UBRRH,R16
		LDI 	R16, 0x33
		OUT 	UBRRL,R16 ; скорость передачи 9600 при частоте 8Мгц
; включение приёмника передатчика		 		
		LDI 	R16,(1<<RXEN)|(1<<TXEN)	
		OUT 	UCSRB,R16
; установка форматата 8 бит данных 2 стоповых бита 
		LDI 	R16,(0<<USBS)|(3<<UCSZ0)	
		OUT 	UCSRC,R16
		RET
uart_snt:

		SBIS 	UCSRA,UDRE		; Пропуск если нет флага готовности
		RJMP	uart_snt 		; ждем готовности - флага UDRE
	
		OUT	UDR, R16			; шлем байт
	
		RET
просто передавать число 5 но вот на практике чего-то не получается то нечего не принимается, то мгновенно много значений (всякие разные но не число 5 =) в основном нулей много ) :dont_know:
во фьюзах галочку делить на 8 убрал =)

вот то что принимается каким-то не понятным образом(в основном это бывает когда заденешь провод питания ну не всегда)

Код: Выделить всё

0
0
16
3
0
0
0
193
12
0
16
0
4
0
3
0
0
0
1
128
16
3
0
0
0
1
128
16
3
0
16
3
0
0
0
0
16
0
12
0
24
1
64
0
24
119
255
140
7
0
12
227
0
128
0
236
0
128
0
136
0
0
8
0
128
27
0
128
0
240
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
160
0
0
0
254
0
0
Реклама
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: USART

Сообщение Ser60 »

В комментариях сказано, что хотите 2 стоповых бита, но в коде затребован только один. Может быть несответствие формата приемника и передатчика.
Реклама
pokk
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

Re: USART

Сообщение pokk »

Опять забыл комментарии подправить =(
принимаю байты в программе Terminal там стоит 1 стоп бит.
Может быть несответствие формата приемника и передатчика.
уже проверил всё на пару раз :( да и если бы несоответствие было бы то я так полагаю там бы приходили цифры какие-нибудь а у меня в основном вообще нечего не приходит =( разе только нули после того как на кнопку соединение нажимаю
Плату переходит с max проверил работает (перемкнув RXD TXD)
почему-то кажется что мк не работает но прошивается нормально.
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: USART

Сообщение Ser60 »

Реклама
Эиком - электронные компоненты и радиодетали
pokk
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

Re: USART

Сообщение pokk »

А внешний кварц обязательно нужен ? а то я со встроенного сижу
спасибо за ссылку но это уже читал.Программу в proteuse запускал работает
Реклама
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: USART

Сообщение ILYAUL »

Лучше. Ещё лучше , если он "заточен" по USART.
Прямых ошибок в коде нет. Дайте схемку посмотреть
Реклама
pokk
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

Re: USART

Сообщение pokk »

подтягивающий резистор +5в к резету уже есть =)
схем.JPG
схема
(53.38 КБ) 497 скачиваний
max.JPG
преобразователь уровней
(62.94 КБ) 476 скачиваний
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: USART

Сообщение ILYAUL »

Вроде нормально , только светодиод работать не будет и земли между MAX и основной платой нет
Закрыто

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