Перейти к содержанию

Attiny2313


apolon1919

Рекомендуемые сообщения

Вобщем с USART все получилось в протеусе, но вот какой вопрос, tx rx соединить с com портом???? Вить в com порте то +12 -12 Вольт а на контроллере 0 и +5 Вольт.

Я пока что в протеусе делаю, но думаю вскоре соединять с компом! Как это сделать?

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Если com-порт "железный", то нужно использовать преобразователь уровней (например на имс MAX232 и ее разновидности). Если какой-нибудь самодельный usb-адаптер, то скорее всего там уже все как-надо. Даже если у вас "железо" выдает уровни 5В (такие есть, особенно на ноутах), то все равно нужен приобразователь (там вроде уровни инверсные).

Добавлено:

Если руки не крюки и ждать посылки с max232 долго и неохота, то можно собрать и из подножных деталей http://kazus.ru/shemes/showpage/0/759/1.html

Там первая схема (на ОУ) для передачи с МК на комп, вторая для приема с компа в МК.

Изменено пользователем Microchip

Нет никакой заслуги тому, кто даёт золото, думая, что даёт камень (Будда)

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Это потенциалы com-интерфейса ведь. Вообще стандарт определяет значение "0" как уровень от +3В до +15В, а "1" - от -3В до -15В. В COM-портах персональных компьютеров обычно встречается напряжение +13В и -13В. В ноутах может быть и 5 вольтные. Так что думаю от +-5 до +-12 Должно в большинстве случаев проканать.

Вы уже придумали откуда будете брать отрицательное напряжение? (На схеме это просто +Uпит и -Uпит ну ведь их получить еще надо) Если не боитесь лезть в системник и нет пломб, то можно взять с него +5В, земля и -5В (идет на материнку), но при определенном стечении обстоятельств 5В может порту не хватить. Можно две батарейки крона чтоб по бысторму использовать (9В должно для подавляющего большинства железа хватить). Кстати в схему электролитик бы по питанию поставить.

А у max-232 свой инвертирующий преобразователь с кондером.

Главное КЗ не устройте и питание не перепутайте.

Изменено пользователем Microchip

Нет никакой заслуги тому, кто даёт золото, думая, что даёт камень (Будда)

Ссылка на комментарий
Поделиться на другие сайты

Не припомнил что в БП и -12В есть, коли так, то 12В конечно надежнее будет.

Нет никакой заслуги тому, кто даёт золото, думая, что даёт камень (Будда)

Ссылка на комментарий
Поделиться на другие сайты

http://spblan.narod.ru/bp/cont/cont.htm

А вот такой вопрос хочу задать, я не совсем понимаю что такое отрицательное напряжения. или отрицательный потенциал, как он достигается?

Ссылка на комментарий
Поделиться на другие сайты

tx rx соединить с com портом???? Вить в com порте то +12 -12 Вольт а на контроллере 0 и +5 Вольт.

МАХ232.

Не обязательно. Достаточно проинвертировать npn транзистороми, коллекторы которых подтянуты через ~10Ком: в сторону СОМ-порта -к +12В, в сторону МК -к +5В. Сигналы в базы через резисторы, естесст-но.

Ссылка на комментарий
Поделиться на другие сайты

Напряжения измеряют относительно общего провода (на схемах в виде знака _|_ обозначается) если не оговорено иное. Всегда относительно чего-то.

Наверное сдесь нагляднее будет привести в пример батарейки: Возьмем две "кроны" соеденим их последовательно ("+ "одной к "-" второй), место их соединения примем за общий провод, тогда естественно два остальных вывода будут (-9в и +9В), если примем за общий минусовой вывод одной батарейки, то в месте соединения будет +9В, а на плюсовом выводе второй +18В.

Если воткнете минус вольтметра в клемму -12В БП, а плюс в +12В, то увидите показания 24В, если воткнете минус вольтметра в клемму +5В а плюс вольтметра в клемму +12В то показания будут 7В. Даже можете питать например куллер подключив в +5В и +12В (при питании 7В он будет на пониженных оборотах менбше шуметь.

Тут мне сложно предположить что именно вам не понятно. Одно могу посоветовать однозначно. Нужно повторить из школьного курса физики понятие потенциал и разность потенциалов.

Нет никакой заслуги тому, кто даёт золото, думая, что даёт камень (Будда)

Ссылка на комментарий
Поделиться на другие сайты

На безрыбье и рак -рыба! :yes: Годами пашут не выключаясь несколько самодельных устройств, как в связке с компьютером, так и с другим заводским оборудованием- замечаний нет. Чего не скажу про МАХ232-достаточно нежные.

Ссылка на комментарий
Поделиться на другие сайты

apolon1919, смотрите пост №6 http://forum.cxem.ne...howtopic=123198

Да, спасибо, я уже понял, вот в этой теме разбирался http://forum.cxem.net/index.php?showtopic=132293

Но меня там забанили по непонятным причинам, теперь я hellow_word

Тут мне сложно предположить что именно вам не понятно. Одно могу посоветовать однозначно. Нужно повторить из школьного курса физики понятие потенциал и разность потенциалов.

Спасибо, разобрался

Ссылка на комментарий
Поделиться на другие сайты

Вложение смогу вечером глануть, когда домой вернусь, а пока по подробнее: какой-канал не работает, в МК? Аппаратно все верно сделали, проверте? Адаптер уже спаяли? точно все верно? Направте выход с порта на вход и проверте терминалом на ответ (эт я о компьютере).

Нет никакой заслуги тому, кто даёт золото, думая, что даёт камень (Будда)

Ссылка на комментарий
Поделиться на другие сайты

Аппаратно не соберал, делаю только в протеусе

вот схема

post-176842-0-27476800-1387267997_thumb.png

Вот код

.include "tn2313def.inc"
.list
.def temp = R16
.equ time = 15624
.def loop1 = r17 ; Определение первого регистра цикла
.def loop2 = r18 ; Определение второго регистра цикла
.def loop3 = r19 ; Определение второго регистра цикла

.dseg
.org 0x60
text: .byte 6
button_stop: .byte 1
.cseg
.org 0
rjmp init
reti
reti
reti
reti
reti
reti
rjmp USART_Receive
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
init:
; Устанавливаем начало стека
ldi temp, RAMEND
out SPL, temp

ldi temp, 0xFF
out DDRB, temp

ldi temp, 0x00
out DDRD, temp
ldi temp, 0xFF
out PORTB, temp

ldi temp, 0xFF
out PORTD, temp


; Отключаем аналоговый компаратор
ldi temp, 0x80
out ACSR, temp

cli ; Отключаем прерывания
ldi r17, 0
ldi r16, 25
rcall USART_init
ldi xl, low(text)
ldi xh, high(text)

ldi r16, 'H'
st x+, r16
ldi r16, 'E'
st x+, r16
ldi r16, 'L'
st x+, r16
ldi r16, 'L'
st x+, r16
ldi r16, 'O'
st x+, r16
ldi r16, 'W'
st x+, r16
sei ; Включаем прерывания

; Основной цикл программы
main:
sbic PIND, 4
rjmp main
ldi r16, 1
sts button_stop, r16
; Загружаем в регистр X адрес текста
ldi xl, low(text)
ldi xh, high(text)
rcall send_hellow
rcall wait1
rjmp main

USART_init:
; Установка скорости передачи
out UBRRH, r17
out UBRRL, r16
; Установка приемнка и передатчика
ldi r16, (1<<RXEN) | (1<<TXEN)
out UCSRB, r16
; Установка формата кадра: 8 бит данных, 2 стоповых бита
ldi r16, (1<<USBS)|(3<<UCSZ0)
out UCSRC, r16
ret

USART_transmit:
; Ожидаем пока отчистится буффер передачи
sbis UCSRA, UDRE
rjmp USART_transmit
; Помещаем данные в буффер. и передаем
out UDR, r16
ret


send_hellow:
; Коственное копирования данных из указателя X в r16
ld r16, x+

; Вызываем функцию отправки символа
rcall USART_transmit

; Если в R16 находится байт 'W' то выходим из функции
cpi r16, 'W'
brne send_hellow
ret
;----------------------------------------------------
USART_Receive:
; Ожидаем пока данные будут получены
sbis UCSRA, RXC
rjmp USART_Receive
; Читаем данные из буффера и возвращаем их в регистр R16
in r16, UDR
rcall USART_transmit
reti


;--------------------------------- Подпрограмма задержки
wait1: push loop1 ; Сохраняем содержимое регистра loop1
push loop2 ; Сохраняем содержимое регистра loop2
push loop3 ; Сохраняем содержимое регистра loop3
ldi loop1, 15 ; Помещаем в loop1 константу задержки
wt1: dec loop1 ; Уменьшаем значение регистра loop
breq wt4
ldi loop2, 100 ; Помещаем в loop2 константу задержки
wt2: dec loop2 ; Уменьшаем значение регистра loop2
breq wt1
ldi loop3, 255 ; Помещаем в loop3 константу задержки
wt3: dec loop3 ; Уменьшаем значение регистра loop3
brne wt3 ; Если не ноль, продолжаем цикл
rjmp wt2
wt4: pop loop3 ; Восстанавливаем значение регистра loop3
pop loop2 ; Восстанавливаем значение регистра loop2
pop loop1 ; Восстанавливаем значение регистра loop1
ret	 ; Выход из подпрограммы


По нажатию кнопки передача идет нормально

А вот если я в терминале кнопку жму, то ничего не приходит

[avr usart] rx frame error

Вот такую ошибку в консоле выдает

Ссылка на комментарий
Поделиться на другие сайты

Глянул мельком, бежать надо. Чет не увидел разрешения прерывания по приему, вроде в регистре UCSRB, глянте в даташите, должен быть бит RXCIE

Чтобы проверить срабатывает ли вектор прерывания можно внутри зажигать светодиод "контрольку".

Нет никакой заслуги тому, кто даёт золото, думая, что даёт камень (Будда)

Ссылка на комментарий
Поделиться на другие сайты

дык, я просто брэкпоинт поставил и увидел что прерывания нет!

USART_init:
; Установка скорости передачи
out UBRRH, r17
out UBRRL, r16
; Установка приемнка и передатчика
ldi r16, (1<<RXEN) | (1<<TXEN) | (1<<RXCIE)
out UCSRB, r16
; Установка формата кадра: 8 бит данных, 2 стоповых бита
ldi r16, (3<<UCSZ0) ;(1<<USBS)|
out UCSRC, r16
ret

Вот добавил разрешения прерывания на RX.

И вот сделал схему

post-176842-0-02718800-1387277294_thumb.png

И добавил включения светодиода

USART_Receive:
; Ожидаем пока данные будут получены
sbis UCSRA, RXC
rjmp USART_Receive
; Читаем данные из буффера и возвращаем их в регистр R16
in r16, UDR
rcall USART_transmit
; Зажигаем светодиод
cbi PORTB, 0

reti

но толку нет вообще, по осциллографу данные выходят из терминала

Ссылка на комментарий
Поделиться на другие сайты

Все разобрался, вот из даташита цитата

XCK: USART Transfer Clock used only by Synchronous Transfer mode.

CKOUT: System Clock Output

• TXD – Port D, Bit 1

TXD: UART Data Transmitter.

• RXD – Port D, Bit 0

RXD: UART Data Receiver.

Ссылка на комментарий
Поделиться на другие сайты

Вот такую схемку я хочу сделать и проверить USART

post-176842-0-90013600-1387280420_thumb.png

Думаю ошибок нет?

Такие вопросы, а если у меня есть usb<->RS485 устройство, ПИ-2 называется, как мне его соединить? Там вить есть rx+ rx- tx+ tx-, Как соединить? Или обязательно com порт нужен?

Вот проект

USART.rar

Ссылка на комментарий
Поделиться на другие сайты

есть rx+ rx- tx+ tx-

Это для RS422 -дуплекс. Для RS485 используют два провода А,В (Дата +,-). Ни то, ни другое напрямую к МК не подключить, используйте MAX485.

Ссылка на комментарий
Поделиться на другие сайты

А че эта схема должна уметь?

11.png

У вас че com порта нету? Или хотели отвертется от согласования уровней?

Нет никакой заслуги тому, кто даёт золото, думая, что даёт камень (Будда)

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...