реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Преобразование уровней, Проблема с MAX232
Rinin
сообщение Sep 1 2008, 15:36
Сообщение #1





Группа: Новичок
Сообщений: 11
Регистрация: 3-08-08
Пользователь №: 39 398



Собрал, подключил по даташиту, только источник питания 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В которые там сохраняются независимо от того соединен он с микросхемой или нет.

Скажите где стоит искать проблему?
Go to the top of the page
 
+Quote Post
sKWO
сообщение Sep 1 2008, 16:00
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



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


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post
rezident
сообщение Sep 1 2008, 16:03
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Rinin @ Sep 1 2008, 21:36) *
Скажите где стоит искать проблему?
Для начала - в вашем "железе". Приведите схему вашего подключения с распиновкой.
Go to the top of the page
 
+Quote Post
Максим Зиновьев
сообщение Sep 1 2008, 16:06
Сообщение #4


Техногипнолог
*****

Группа: Свой
Сообщений: 1 132
Регистрация: 6-03-05
Из: Saratov
Пользователь №: 3 126



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


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


Rinin, max232 проверить просто - закоротите txd и rxd с "логической" стороны и попечатайте в гипертерминале без эхо
Go to the top of the page
 
+Quote Post
sKWO
сообщение Sep 1 2008, 16:18
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



Цитата(maximiz @ Sep 1 2008, 19:06) *
Дааааа, программисты.... smile.gif

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


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post
Максим Зиновьев
сообщение Sep 1 2008, 16:27
Сообщение #6


Техногипнолог
*****

Группа: Свой
Сообщений: 1 132
Регистрация: 6-03-05
Из: Saratov
Пользователь №: 3 126



Цитата
что от этого изменится?


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



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


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


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


Это подозрения. Что "идёт". Если нет осциллоскопа, то можно светодиод повесить на txd контроллера через емкость примерно на 0,1 мкФ smile.gif
Go to the top of the page
 
+Quote Post
sKWO
сообщение Sep 1 2008, 16:36
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



Цитата(maximiz @ Sep 1 2008, 19:27) *
Это подозрения. Что "идёт"

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

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


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post
Rinin
сообщение Sep 1 2008, 16:51
Сообщение #8





Группа: Новичок
Сообщений: 11
Регистрация: 3-08-08
Пользователь №: 39 398



Пока закоротить и попечатать не помогло, завтра поменяю кой чего из железа, потому что не везде мне нравится как собрал, попробую поставить другой экземпляр макса и отпишусь.
Go to the top of the page
 
+Quote Post
Максим Зиновьев
сообщение Sep 1 2008, 16:57
Сообщение #9


Техногипнолог
*****

Группа: Свой
Сообщений: 1 132
Регистрация: 6-03-05
Из: Saratov
Пользователь №: 3 126



Цитата
Пока закоротить и попечатать не помогло,

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

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

Осциллоскоп есть? На летающих емкостях мах-а посмотрите и есть ли по 9 вольт на плюс-минус? Плюс/минус можно глянуть стрелочным тестером тож
Go to the top of the page
 
+Quote Post
defunct
сообщение Sep 1 2008, 17:01
Сообщение #10


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(sKWO @ Sep 1 2008, 19:18) *
у меня был случай когда попадалась микросхема 232 которая отказывалась работать от 4.5 вольта.

5-ти вольтовые максы и от 2.5V работают.
Скорее компу не понравились выдаваемые уровни или брак.
Go to the top of the page
 
+Quote Post
SysRq
сообщение Sep 1 2008, 17:01
Сообщение #11


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



Так:
Код
unsigned int time;
//...
_delay_ms(time);
делать нельзя. Можно так:
Код
_delay_ms(100);
Читайте или комментарии в delay.h, или форум.

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


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

Сообщение отредактировал SysRq - Sep 1 2008, 17:16
Go to the top of the page
 
+Quote Post
xemul
сообщение Sep 1 2008, 17:20
Сообщение #12



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(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.
Go to the top of the page
 
+Quote Post
rezident
сообщение Sep 1 2008, 17:31
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(maximiz @ Sep 1 2008, 22:57) *
Осциллоскоп есть? На летающих емкостях мах-а посмотрите и есть ли по 9 вольт на плюс-минус? Плюс/минус можно глянуть стрелочным тестером тож
Он же написал что
Цитата
На ноге выхода макса стабильные минус где-то 7-8В которые там сохраняются независимо от того соединен он с микросхемой или нет.
Значит инвертор и даблер макса работают.
ИМХО, основанное лишь на интуиции, подсказывает, что топик-стартер с подключением что-то там напутал.
Go to the top of the page
 
+Quote Post
uriy
сообщение Sep 1 2008, 17:42
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Цитата
5-ти вольтовые максы и от 2.5V работают.
Неправда, далеко не все. Когда-то в студенческие годы делал программататоры для сотовых на максе и 78L05 все это дело питалось от COM-порта. На некторых партиях напряжение просаживалось вольт до трех и ниче не работало.
Go to the top of the page
 
+Quote Post
aesok
сообщение Sep 1 2008, 17:52
Сообщение #15


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(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.


Анатолий.
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 07:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.01505 секунд с 7
ELECTRONIX ©2004-2016