Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Тема закрыта

USART

Вс июн 17, 2012 14:58:03

Здравствуйте, подскажите в чём может быть проблема
прошиваю 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

Re: USART

Вс июн 17, 2012 19:28:12

В комментариях сказано, что хотите 2 стоповых бита, но в коде затребован только один. Может быть несответствие формата приемника и передатчика.

Re: USART

Вс июн 17, 2012 19:37:35

Опять забыл комментарии подправить =(
принимаю байты в программе Terminal там стоит 1 стоп бит.
Может быть несответствие формата приемника и передатчика.

уже проверил всё на пару раз :( да и если бы несоответствие было бы то я так полагаю там бы приходили цифры какие-нибудь а у меня в основном вообще нечего не приходит =( разе только нули после того как на кнопку соединение нажимаю
Плату переходит с max проверил работает (перемкнув RXD TXD)
почему-то кажется что мк не работает но прошивается нормально.

Re: USART

Вс июн 17, 2012 20:14:14

Посмотрите здесь: [url]http://radiokot.ru/forum/viewtopic.php?f=20&t=5929&start=20[/url
и здесь: http://easyelectronics.ru/avr-uchebnyj-kurs-peredacha-dannyx-cherez-uart.html

Re: USART

Вс июн 17, 2012 20:43:46

А внешний кварц обязательно нужен ? а то я со встроенного сижу

и здесь: http://easyelectronics.ru/avr-uchebnyj- ... -uart.html

спасибо за ссылку но это уже читал.Программу в proteuse запускал работает

Re: USART

Вс июн 17, 2012 21:29:36

Лучше. Ещё лучше , если он "заточен" по USART.
Прямых ошибок в коде нет. Дайте схемку посмотреть

Re: USART

Пн июн 18, 2012 05:00:43

подтягивающий резистор +5в к резету уже есть =)
схем.JPG
схема
(53.38 KiB) Скачиваний: 450
max.JPG
преобразователь уровней
(62.94 KiB) Скачиваний: 428

Re: USART

Пн июн 18, 2012 07:12:53

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