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

У меня вместо транзистора схема 3ИЛИ-НЕ (другой под рукой не оказалось =( ) с объединенными тремя входами в один.

хм.. элемент 3ИЛИ-НЕ взависимости от серии может творить чудеса с уровнями.. т.е. чистых 5V он вам не дает. Прикрепил простенькие рабочие схемки.

post-12326-1142592075_thumb.jpg

post-12326-1142592114_thumb.jpg

Поделиться сообщением


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

2 AVR

Если нет под рукой преобразователя уровней RS232, то советую применить схему "токовая петля" (см. в прикрепленном файле), она во-первых, обеспечивает корректное преобразование уровней, во-вторых, обеспечивает гальваническю развязку между AVR и РС, в-третьих, простая. Для того, чтобы заработало в RS232pro выставьте уровни сигналов DTR и RTS как показано на схеме.

Если все-таки остановитесь на схеме предложенной defunct, то советую параллельно переходу база-эмиттер транзистора, подключенного базой к Тх ком-порта, подключить диод катодом к базе, дабы защитить переход база-эмиттер от отрицательного напряжения (которое может на некоторых портах достигать -12В, а на базе транзистора в схеме -6В, что уже многовато будет...)

post-7095-1142629967_thumb.jpg

Поделиться сообщением


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

то советую параллельно переходу база-эмиттер транзистора, подключенного базой к Тх ком-порта, подключить диод катодом к базе, дабы защитить переход база-эмиттер от отрицательного напряжения

imho если ставить диод, то лучше последовательно перед резистром R2 анодом к Tx COM порта..

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

Поделиться сообщением


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

то советую параллельно переходу база-эмиттер транзистора, подключенного базой к Тх ком-порта, подключить диод катодом к базе, дабы защитить переход база-эмиттер от отрицательного напряжения

imho если ставить диод, то лучше последовательно перед резистром R2 анодом к Tx COM порта..

Можно и так, но "на лету" добавить диод проще моим способом, хотя при макетировании это не актуально...

Поделиться сообщением


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

Глупый вопрос не по теме (прошу не судить строго новичка):

Существует ли в интернете электронный каталог, в котором бы все электронные компоненты были отсортированы по их функционального назначению? Например, если в магазине нет какой-то микросхемы, чтобы можно было бы найти её аналог.

Поделиться сообщением


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

Я тоже пытался связаться по 232, правда МК у меня AT90S2313, микросхема МАХ 232. Использовал

Advanced Serial Port Monitor и RS232pro, и еще что-то(не помню). Если я правильно помню, то в ДШ

на конкретный МК есть таблицы ошибок скоростей передачи при стандартных частотах кварца.

Кварц у меня 3.579545Mhz, по ДШ и Applicatiom Builder-у это ошибка в 1.3%, однако у меня данные передавались и принимались без ошибок. Затем я поставил кварц (в ту же схему) на 4Mhz, и уменя

пошли всякие кракозябры... ХОТЯ по ДШ и Апп Билдеру ошибка составляет 0.2%...странно

Я сам новичок, но мне кажется что дело может быть в кварце. Я думаю что огромное значение

имеет производитель. (кварц с которым все работало стоил 15р, а скоторым нет-2р :biggrin: )

Может быть поможет замена кварца? Удачи!

Поделиться сообщением


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

Проц мега16, кварц 4 МГц.

 

Проверьте правильность установки бадрейта, убедитесь что мега работает на нужно частоте.

Поделиться сообщением


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

У меня с преобразователем adm203 заработало только после подключения резистора на 4,7 кОм между Rx и Tx МК....

Поделиться сообщением


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

Глупый вопрос не по теме (прошу не судить строго новичка):

Существует ли в интернете электронный каталог, в котором бы все электронные компоненты были отсортированы по их функционального назначению? Например, если в магазине нет какой-то микросхемы, чтобы можно было бы найти её аналог.

 

я видел обзор таких каталогов на [banned]/01.htm

Поделиться сообщением


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

Я тоже пытался связаться по 232, правда МК у меня AT90S2313, микросхема МАХ 232. Использовал

Advanced Serial Port Monitor и RS232pro, и еще что-то(не помню). Если я правильно помню, то в ДШ

на конкретный МК есть таблицы ошибок скоростей передачи при стандартных частотах кварца.

Кварц у меня 3.579545Mhz, по ДШ и Applicatiom Builder-у это ошибка в 1.3%, однако у меня данные передавались и принимались без ошибок. Затем я поставил кварц (в ту же схему) на 4Mhz, и уменя

пошли всякие кракозябры... ХОТЯ по ДШ и Апп Билдеру ошибка составляет 0.2%...странно

Я сам новичок, но мне кажется что дело может быть в кварце. Я думаю что огромное значение

имеет производитель. (кварц с которым все работало стоил 15р, а скоторым нет-2р :biggrin: )

Может быть поможет замена кварца? Удачи!

Может меня специалисты поправят, но RS протокол работает сносно и при 3% ошибки (где-то когда-то прочитал)! А от кварца требуется стабильность выдаваемой частоты. А для отладки обмена предлагаю следующий метод (сам периодически пользуюсь):

Приемник и передатчик постоянно передает по своей линии байт 0х55 (или 0хАА) и двухлучевым осциллографом сравниваются длительности и количество стартовых и стоповых бит. Все наглядно!

Поделиться сообщением


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

Я тоже пытался связаться по 232, правда МК у меня AT90S2313, микросхема МАХ 232. Использовал

Advanced Serial Port Monitor и RS232pro, и еще что-то(не помню). Если я правильно помню, то в ДШ

на конкретный МК есть таблицы ошибок скоростей передачи при стандартных частотах кварца.

Кварц у меня 3.579545Mhz, по ДШ и Applicatiom Builder-у это ошибка в 1.3%, однако у меня данные передавались и принимались без ошибок. Затем я поставил кварц (в ту же схему) на 4Mhz, и уменя

пошли всякие кракозябры... ХОТЯ по ДШ и Апп Билдеру ошибка составляет 0.2%...странно

Я сам новичок, но мне кажется что дело может быть в кварце. Я думаю что огромное значение

имеет производитель. (кварц с которым все работало стоил 15р, а скоторым нет-2р :biggrin: )

Может быть поможет замена кварца? Удачи!

Может меня специалисты поправят, но RS протокол работает сносно и при 3% ошибки (где-то когда-то прочитал)! А от кварца требуется стабильность выдаваемой частоты. А для отладки обмена предлагаю следующий метод (сам периодически пользуюсь):

Приемник и передатчик постоянно передает по своей линии байт 0х55 (или 0хАА) и двухлучевым осциллографом сравниваются длительности и количество стартовых и стоповых бит. Все наглядно!

 

 

То есть все-таки стабильность частоты?

Поделиться сообщением


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

Добрый день. Кто может помочь?

Пользуюсь терминалом версии 1.9 Б. Пытаюсь организовать кольцо, чтобы сигнал с компьютера дошел до меги16, и обратно в терминал. Столкнулся с рядом трудностей. Первое когда пишешь программу типа

с = UDR

PORTA = 55

ОНа работает, светодиоды горят как надо.

КОгда пишешь что-то типа

С = UDR

UDR = C

ТЕрминал коннектиться и постоянно получает <0>, не остановить, ни чего сделать не реально.

И наконец когда приводишь что ни будь типа этого:

#include <avr/io.h>

#include <avr/delay.h>

#include <avr/interrupt.h> // для доступа к функции сей

#include <avr/signal.h> // для доступа к макросу интерупт

#include <stdio.h>

#include <string.h>

int c;

 

INTERRUPT(SIG_UART0_RECV)

{

c = UDR;

PORTB = c;

}

 

int main (void) //начало программы

{

DDRB = 0xFF; // все выводы порта B - выходы

UBRRH = 0;

UBRRL = 71;

UCSRA = 0x00;

UCSRB |= (1<<RXCIE)|(1<<TXCIE)|(1<<RXEN)|(1<<TXEN);// прерывание на прием, прием

UCSRC |= (1<<URSEL); // асинхронный,

UCSRC |= (1<<UCSZ1)|(1<<UCSZ0);

 

sei();

c = 0;

while (1);

}

Терминал так же конектиться, и получает тот же символ <0>, но в момент отправки символа останавливается. Однако светодиоды, подключенные к порту, свое состояние не меняют.

И потом, АВРстудия, вообще отказывается толково реагировать на флаг "Прием завершен", перескакивает в самое начало программы и начинает заново - это ненормально потому как нарушается вообще принцип прерывания.

И что насчет инверсии, МАХ правда инвертирует сигнал, или нет?

Заранее спасибо.

Поделиться сообщением


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

Добрый день. Кто может помочь?

...

Может быть проблема в том, что у вас не описан обработчик прерывания по завершению передачи байта? Судя по настройкам у вас включены и приемник и передатчик, и разрешены прерывания от них. Насколько я помню у М16 отдельный адрес для прерывания по событию прием байта завершен и отдельный адрес для прерывания по событию передача байта завершена в векторе прерывания. Также есть адрес по событию пуст регистр УДР.

 

Если АВР студия некорректно симулирует прерывания, то скорее всего это ваша недоработка, вроде переход по вектору должен осуществляться правильно.

Поделиться сообщением


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

Может быть проблема в том, что у вас не описан обработчик прерывания по завершению передачи байта?
Именно - поэтому! Некоторые трансляторы заполняют неиспользуемые программой вектора командами перехода на адрес 0 - "мягий" рестарт. Другие - этого не делают, и программа попадает на "чужой" обработчик прерывания, или на какой-то "левый" участок кода...

 

Необходимо следить, чтобы всем разрешенным прерываниям был бы свой обработчик. В данном случае: разрешение прерывания по окончанию передачи небходимо убрать!

Поделиться сообщением


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

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

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

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

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

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

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

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