Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Преобразование уровней
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
Rinin
Собрал, подключил по даташиту, только источник питания 4.5В написал простенькую программку, чтобы посмотреть как оно работает. Простейший код, только для того чтобы проверить.

Код
#include <avr/io.h>
   #include <avr/delay.h>
   #define F_CPU 1000000UL  

void USART_Transmit (unsigned char data)
   {
     while ( !(UCSR0A & (1<<UDRE0)) )
      ;
     UDR0 = data;    
   }

void USART_Init (unsigned int baud)
   {
     UBRR0H = (unsigned char)(baud>>8);
     UBRR0L = (unsigned char)(baud);

     UCSR0B = (1<<RXEN0)|(1<<TXEN0);
     UCSR0C = (1<<UCSZ00)|(1<<UCSZ01);
   }

void Beep (unsigned int time)
   {
     PORTC = 0xff;
     _delay_ms(time);
     PORTC = 0x00;
     _delay_ms(time);
   }
  
int main(void)          
   {
   DDRC = 0xff;
   PORTC = 0x00;
   USART_Init (51);
  
   while (1)
  
   {  
USART_Transmit ('f');
Beep (100);
   }

}

На той стороне HyperTerminal 1200 скорость 8 бит, четность нет, один стоп бит. На экране пустота и тишина. Проверял, цеплял на этот же шнурок вместо микросхемы и макса просто GPSку - выдает данные на ура, всё идет. Здесь же просто пустота. При ошибке по скоростям у меня должен быть мусор вроде. Нету даже мусора. Порядок соединения входов-выходов вроде верный, но на всякий случай перебрал все варианты. Ноль эмоций. На ноге выхода микросхемы вроде сигнал есть насколько я могу его увидеть тестером. На ноге выхода макса стабильные минус где-то 7-8В которые там сохраняются независимо от того соединен он с микросхемой или нет.

Скажите где стоит искать проблему?
sKWO
Посмотрел ДШ на преобразователь уровней. Минимальное питание 4.5 вольта. Но я бы не верил показаниям тестера а запитал бы через интегральный стабилизатор пятью вольтами.если не поможет то вполне реально,ещё что микросхема бракованая, поставьте другую.
и вашу схему не мешало бы посмотреть
rezident
Цитата(Rinin @ Sep 1 2008, 21:36) *
Скажите где стоит искать проблему?
Для начала - в вашем "железе". Приведите схему вашего подключения с распиновкой.
Максим Зиновьев
Цитата
Посмотрел ДШ на преобразователь уровней. Минимальное питание 4.5 вольта. Но я бы не верил показаниям тестера а запитал бы через интегральный стабилизатор пятью вольтами.если не поможет то вполне реально,ещё что микросхема бракованая, поставьте другую.


Дааааа, программисты.... smile.gif


Rinin, max232 проверить просто - закоротите txd и rxd с "логической" стороны и попечатайте в гипертерминале без эхо
sKWO
Цитата(maximiz @ Sep 1 2008, 19:06) *
Дааааа, программисты.... smile.gif

maximiz, у меня был случай когда попадалась микросхема 232 которая отказывалась работать от 4.5 вольта. подал пять вольт - заработала. проверить как Вы сказали то можно, но если у человека идет с МК данные а на выходе ничего нету то обясните что от этого изменится?
Максим Зиновьев
Цитата
что от этого изменится?


Особо ничего - проверим работает ли транслятор (этот экземпляр от имеемого питания).



Цитата
у меня был случай когда попадалась микросхема 232 которая отказывалась работать от 4.5 вольта.


Вполне может случиться при высоких бодрейтах. На 1200n1 - не верю/либо мс откровенный брак.


Цитата
но если у человека идет с МК данные а на выходе ничего нету то обясните что от этого изменится?


Это подозрения. Что "идёт". Если нет осциллоскопа, то можно светодиод повесить на txd контроллера через емкость примерно на 0,1 мкФ smile.gif
sKWO
Цитата(maximiz @ Sep 1 2008, 19:27) *
Это подозрения. Что "идёт"

Ели человек мерял стрелочным тестером, который проинтегрировал сигнал и увидел бы к примеру - 3.9 вольта, потом изменил бы выдачу
Код
USART_Transmit (0xFF);

и сказал бы получил 4.2 вольта, выдавал 0x00 получил 1.1 вольт
тогда бы я сказалбы что "идёт".
Ну да ладно, давайте автора подождём. Пускай ещё тип МК скажет для пущей уверенности.
Rinin
Пока закоротить и попечатать не помогло, завтра поменяю кой чего из железа, потому что не везде мне нравится как собрал, попробую поставить другой экземпляр макса и отпишусь.
Максим Зиновьев
Цитата
Пока закоротить и попечатать не помогло,

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

Право-слово, Вы не обижайтесь. smile.gif Для меня программирование пока проблема, а по аппаратной части не особо.

Осциллоскоп есть? На летающих емкостях мах-а посмотрите и есть ли по 9 вольт на плюс-минус? Плюс/минус можно глянуть стрелочным тестером тож
defunct
Цитата(sKWO @ Sep 1 2008, 19:18) *
у меня был случай когда попадалась микросхема 232 которая отказывалась работать от 4.5 вольта.

5-ти вольтовые максы и от 2.5V работают.
Скорее компу не понравились выдаваемые уровни или брак.
SysRq
Так:
Код
unsigned int time;
//...
_delay_ms(time);
делать нельзя. Можно так:
Код
_delay_ms(100);
Читайте или комментарии в delay.h, или форум.

F_CPU следует определить в Makefile, ну или хотя бы _до_ подключения delay.h эту константу использующего.


Дежавю! http://electronix.ru/forum/index.php?showtopic=51075
xemul
Цитата(SysRq @ Sep 1 2008, 21:01) *
Так:
Код
unsigned int time;
//...
_delay_ms(time);
делать нельзя. Можно так:
Код
_delay_ms(100);
Читайте или комментарии в delay.h, или форум.

F_CPU следует определить в Makefile, ну или хотя бы _до_ подключения delay.h эту константу использующего.

Совсем запугали...smile.gif
Код
// из delay.h
#ifndef F_CPU
/* prevent compiler error by supplying a default */
# warning "F_CPU not defined for <util/delay.h>"
# define F_CPU 1000000UL
#endif
...
void
_delay_ms(double __ms)
{
...
}

Это означает, что ежели юзер программер забыл задать F_CPU, компилятор будет считать F_CPU=1000000UL (но ругнется в лог), а в качестве аргумента _delay_ms() (как и _delay_us()) проглотит и double.
rezident
Цитата(maximiz @ Sep 1 2008, 22:57) *
Осциллоскоп есть? На летающих емкостях мах-а посмотрите и есть ли по 9 вольт на плюс-минус? Плюс/минус можно глянуть стрелочным тестером тож
Он же написал что
Цитата
На ноге выхода макса стабильные минус где-то 7-8В которые там сохраняются независимо от того соединен он с микросхемой или нет.
Значит инвертор и даблер макса работают.
ИМХО, основанное лишь на интуиции, подсказывает, что топик-стартер с подключением что-то там напутал.
uriy
Цитата
5-ти вольтовые максы и от 2.5V работают.
Неправда, далеко не все. Когда-то в студенческие годы делал программататоры для сотовых на максе и 78L05 все это дело питалось от COM-порта. На некторых партиях напряжение просаживалось вольт до трех и ниче не работало.
aesok
Цитата(xemul @ Sep 1 2008, 21:20) *
Совсем запугали...smile.gif
...
а в качестве аргумента _delay_ms() (как и _delay_us()) проглотит и double.


Еще одна цитата из delay.h:

Цитата
\note In order for these functions to work as intended, compiler
optimizations <em>must</em> be enabled, and the delay time
<em>must</em> be an expression that is a known constant at
compile-time. If these requirements are not met, the resulting
delay will be much longer (and basically unpredictable), and
applications that otherwise do not use floating-point calculations
will experience severe code bloat by the floating-point library
routines linked into the application.


Анатолий.
sKWO
Цитата(rezident @ Sep 1 2008, 20:31) *
ИМХО, основанное лишь на интуиции, подсказывает, что топик-стартер с подключением что-то там напутал.

в подтверждение такого же телепатического чувства и основываясь на дежавю SysRq, и предложенной схемой проверки maximizа обясню на пальцах:
Rinin, вывод 11 соедините с 12, 14 на вход приёмника ком порта компа, выход передатчика ком порта компа подсоедините к 13тому выводу, попробуйте отослать парочку байт через терминал. и про отключение МК не забудьте, или ресет соедините с корпусом.
кстати, какой терминал используете?
Rinin
Цитата
Так:
Код
unsigned int time;
//...
_delay_ms(time);

делать нельзя. Можно так:
Код
_delay_ms(100);

Читайте или комментарии в delay.h, или форум.

F_CPU следует определить в Makefile, ну или хотя бы _до_ подключения delay.h эту константу использующего.

Дежавю! http://electronix.ru/forum/index.php?showtopic=51075

Я помню, что так делать нельзя. Потому что вы мне это уже говорили, просто мне вобщем-то пофигу как мигает светодиод, который мигает просто для красоты и чтобы видеть, что микросхема ещё не сгорела нафиг окончательно.
Насчет дежавю, да, но там продолжать ИМХО было оффтопиком. А так - да та же тема, просто снова появилось время
Максим Зиновьев
Цитата
Он же написал что


Сорри. Это не прочитал, дублёр, значит, работает. Хотя бы минусовой


Цитата
кстати, какой терминал используете?


гипертерминал.

В настройках соединения в гипертерминале у порта хандшейк none должен быть при проверке и при "работе". Тогда не понадобится цтс-ртс и прочего
defunct
Цитата(uriy @ Sep 1 2008, 20:42) *
Неправда, далеко не все.

Абсолютно все что я пользовал работают от 3.3V.
Я даже не задумываясь ставлю 5-ти вольтовые экземляры в девайсы с 3.3V питанием, по причине "хрен достанешь 3х вольтовую версию в нужном количестве по приемлемой цене".
Поэтому в сказки о критичности максов к питанию не поверю никогда.

У макса есть умножитель и инвертор, так вот чтобы гарантировать уровни линии |7.5V| нужно питание не ниже 4.5V. Но с тем же успехом COM порт будет общаться с уровнями в линии вплоть до |3V|. По спецификации RS232 уровни могут быть в пределах 3..15V. С питанием максы от 2.5V умножитель даст ~4V, так что все ок.

Цитата
Когда-то в студенческие годы делал программататоры для сотовых на максе и 78L05 все это дело питалось от COM-порта. На некторых партиях напряжение просаживалось вольт до трех и ниче не работало.

Если оно у вас "просаживалось" до трех, что уже само по себе доказывает, что мощности COM порта не хватало, где гарантия, что оно у вас не просаживалось до 0 в момент передачи? И где гарантия, что проблема была не на стороне компа (просадка уровней выходного преобразователя).
Rinin
Цитата
в подтверждение такого же телепатического чувства и основываясь на дежавю SysRq, и предложенной схемой проверки maximizа обясню на пальцах:
Rinin, вывод 11 соедините с 12, 14 на вход приёмника ком порта компа, выход передатчика ком порта компа подсоедините к 13тому выводу, попробуйте отослать парочку байт через терминал. и про отключение МК не забудьте, или ресет соедините с корпусом.
кстати, какой терминал используете?

Мои чувства тоже как правило говорят, что если тысячи людей собирают на этих микросхемах преобразование, а я не могу, то проблема очень маловероятно, что в микросхемах. Просто нужен совет где конкретно её можно искать.

Только что подключил его просто всё как было и послал ему несколько байт с клавиатуры (программа та же, ничего не ждущая) как только сделал это - его прорвало и с него посыпался регулярный шум. Проверил еще пару раз - как только ему посылаю с компьютера что-нибудь его "прорывает" и он начинает работать. До этого тишина. Уже лучше конечно, но далеко от совершенства.
rezident
Цитата(defunct @ Sep 2 2008, 00:41) *
Поэтому в сказки о критичности максов к питанию не поверю никогда.
MAXы обычно работают при 3,3В, а вот его аналоги других производителей далеко не всегда. С полгода назад напоролся, то ли ADM202E, то ли SP202E не возжелал от 3,3В работать.


Цитата(defunct @ Sep 2 2008, 00:41) *
Но с тем же успехом COM порт будет общаться с уровнями в линии вплоть до |3V|. По спецификации RS232 уровни могут быть в пределах 3..15V. С питанием максы от 2.5V умножитель даст ~4V, так что все ок.
В PC стоят драйверы с входным порогом ±2В, так что даже при 0В...+2В чаще всего работает. Но КМК дело все же в надежности, а не в том, что иногда работает wink.gif
sKWO
Цитата(defunct @ Sep 1 2008, 21:41) *
Абсолютно все что я пользовал работают от 3.3V.

проверил MAX232N (дип корпус) с питанием 3.3 вольта на скорости 9600, кабель 1.5 метра.
работает. которая не захотела от 4.5в была в SOIC корпусе и сейчас служит для формирования уровня отрицательного напряжения для регулирования контрастности графичесского ЖКИ, выпаивать её неохота и подпаиваться тоже. Кстати, нащёт производителя последней не помню.
defunct
Цитата(rezident @ Sep 1 2008, 22:22) *
MAXы обычно работают при 3,3В, а вот его аналоги других производителей далеко не всегда. С полгода назад напоролся, то ли ADM202E, то ли SP202E не возжелал от 3,3В работать.

АДшки точно живут на 3.3.

А ST и SP... у них цена в 3 раза ниже чем у AD и макса, такое опасно ставить.
psw
может проблема в DTR-DSR, RTS-CTS ? Со стороны компа попробуйте соединить их попарно........
Rinin
Контроллер о том закорочено или нет и не узнает никогда, а комп по этому шнурку из трех проводов идеально принимает инфу с GPSки.
Rinin
Если кому-то интересно - то эти проблемы были исключительно из за использования внутренней RC цепочки. При внешнем резонаторе работает замечательно.
Anub
Сделал адаптер на MAX233. Все вроде включил, а реакции никакой нет, в ком-порте мертвая тишина. Как подключал, начну с макса:
T1IN(2) - TXD МК
T1OUT(5) - RXD COM
V-(12) - V-(17) - Перемычка(По ДШ)
С2-(10) - С2-(16) -Перемычка(По ДШ)
С2+(11) - С2+(15) - Перемычка(По ДШ)
VCC(7) - +5V
GND(6) - Земля
GND(9) - Земля

COM-порт:

DTR(4) - DSR(6) -Переычка
RTS(7) - CTS(8) - Перемычка
GND(5) - Земля
RXD(2) - T1OUT
05.gif
Kuzmi4
Внимательно смотрим в даташит.. Нашёл у себя для 232 но судя по всему там индексы тянутся..
И там находим такое подключение для max232:
Нажмите для просмотра прикрепленного файла
Советую повторить вышеприведённую схемку и увидите её поразительную работоспособность wink.gif ..
Ниже для 233:
Нажмите для просмотра прикрепленного файла
Нету там перемычек вообсче...
vik0
Цитата(Kuzmi4 @ Sep 22 2008, 12:58) *
Ниже для 233:
Нажмите для просмотра прикрепленного файла
Нету там перемычек вообсче...

Это для 223. А в 233 как раз есть перемычки. Собственно главная фишка 233 так и называется "No external caps".
Kuzmi4
2 vik0 - проглядел..
Ну судя по всему
Нажмите для просмотра прикрепленного файла
вроде тогда всё верно...
SysRq
Цитата(Anub @ Sep 21 2008, 16:10) *
Все вроде включил...
Цитата(Kuzmi4 @ Sep 22 2008, 15:09) *
вроде тогда всё верно...

Квинтэссенция технической телепатии lol.gif
Kuzmi4
Цитата(SysRq @ Sep 22 2008, 17:40) *

Квинтэссенция технической телепатии lol.gif

Ну а что вы хотели раз всё по ДШ включил wink.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.