Rinin 0 1 сентября, 2008 Опубликовано 1 сентября, 2008 · Жалоба Собрал, подключил по даташиту, только источник питания 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 0 1 сентября, 2008 Опубликовано 1 сентября, 2008 · Жалоба Посмотрел ДШ на преобразователь уровней. Минимальное питание 4.5 вольта. Но я бы не верил показаниям тестера а запитал бы через интегральный стабилизатор пятью вольтами.если не поможет то вполне реально,ещё что микросхема бракованая, поставьте другую. и вашу схему не мешало бы посмотреть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 1 сентября, 2008 Опубликовано 1 сентября, 2008 · Жалоба Скажите где стоит искать проблему?Для начала - в вашем "железе". Приведите схему вашего подключения с распиновкой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
maximiz 0 1 сентября, 2008 Опубликовано 1 сентября, 2008 · Жалоба Посмотрел ДШ на преобразователь уровней. Минимальное питание 4.5 вольта. Но я бы не верил показаниям тестера а запитал бы через интегральный стабилизатор пятью вольтами.если не поможет то вполне реально,ещё что микросхема бракованая, поставьте другую. Дааааа, программисты.... :) Rinin, max232 проверить просто - закоротите txd и rxd с "логической" стороны и попечатайте в гипертерминале без эхо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sKWO 0 1 сентября, 2008 Опубликовано 1 сентября, 2008 · Жалоба Дааааа, программисты.... :) maximiz, у меня был случай когда попадалась микросхема 232 которая отказывалась работать от 4.5 вольта. подал пять вольт - заработала. проверить как Вы сказали то можно, но если у человека идет с МК данные а на выходе ничего нету то обясните что от этого изменится? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
maximiz 0 1 сентября, 2008 Опубликовано 1 сентября, 2008 · Жалоба что от этого изменится? Особо ничего - проверим работает ли транслятор (этот экземпляр от имеемого питания). у меня был случай когда попадалась микросхема 232 которая отказывалась работать от 4.5 вольта. Вполне может случиться при высоких бодрейтах. На 1200n1 - не верю/либо мс откровенный брак. но если у человека идет с МК данные а на выходе ничего нету то обясните что от этого изменится? Это подозрения. Что "идёт". Если нет осциллоскопа, то можно светодиод повесить на txd контроллера через емкость примерно на 0,1 мкФ :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sKWO 0 1 сентября, 2008 Опубликовано 1 сентября, 2008 · Жалоба Это подозрения. Что "идёт" Ели человек мерял стрелочным тестером, который проинтегрировал сигнал и увидел бы к примеру - 3.9 вольта, потом изменил бы выдачу USART_Transmit (0xFF); и сказал бы получил 4.2 вольта, выдавал 0x00 получил 1.1 вольт тогда бы я сказалбы что "идёт". Ну да ладно, давайте автора подождём. Пускай ещё тип МК скажет для пущей уверенности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rinin 0 1 сентября, 2008 Опубликовано 1 сентября, 2008 · Жалоба Пока закоротить и попечатать не помогло, завтра поменяю кой чего из железа, потому что не везде мне нравится как собрал, попробую поставить другой экземпляр макса и отпишусь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
maximiz 0 1 сентября, 2008 Опубликовано 1 сентября, 2008 · Жалоба Пока закоротить и попечатать не помогло, А при закорачивании тхд контроллера хоть отключили? Может также помочь заресечивание контроллера на время теста, чтобы зет был на тхд. Право-слово, Вы не обижайтесь. :) Для меня программирование пока проблема, а по аппаратной части не особо. Осциллоскоп есть? На летающих емкостях мах-а посмотрите и есть ли по 9 вольт на плюс-минус? Плюс/минус можно глянуть стрелочным тестером тож Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 1 сентября, 2008 Опубликовано 1 сентября, 2008 · Жалоба у меня был случай когда попадалась микросхема 232 которая отказывалась работать от 4.5 вольта. 5-ти вольтовые максы и от 2.5V работают. Скорее компу не понравились выдаваемые уровни или брак. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NullPointer 0 1 сентября, 2008 Опубликовано 1 сентября, 2008 (изменено) · Жалоба Так: unsigned int time; //... _delay_ms(time); делать нельзя. Можно так: _delay_ms(100); Читайте или комментарии в delay.h, или форум. F_CPU следует определить в Makefile, ну или хотя бы _до_ подключения delay.h эту константу использующего. Дежавю! http://electronix.ru/forum/index.php?showtopic=51075 Изменено 1 сентября, 2008 пользователем SysRq Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xemul 0 1 сентября, 2008 Опубликовано 1 сентября, 2008 · Жалоба Так:unsigned int time; //... _delay_ms(time); делать нельзя. Можно так: _delay_ms(100); Читайте или комментарии в delay.h, или форум. F_CPU следует определить в Makefile, ну или хотя бы _до_ подключения delay.h эту константу использующего. Совсем запугали...:) // из 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 0 1 сентября, 2008 Опубликовано 1 сентября, 2008 · Жалоба Осциллоскоп есть? На летающих емкостях мах-а посмотрите и есть ли по 9 вольт на плюс-минус? Плюс/минус можно глянуть стрелочным тестером тожОн же написал что На ноге выхода макса стабильные минус где-то 7-8В которые там сохраняются независимо от того соединен он с микросхемой или нет.Значит инвертор и даблер макса работают. ИМХО, основанное лишь на интуиции, подсказывает, что топик-стартер с подключением что-то там напутал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 5 1 сентября, 2008 Опубликовано 1 сентября, 2008 · Жалоба 5-ти вольтовые максы и от 2.5V работают.Неправда, далеко не все. Когда-то в студенческие годы делал программататоры для сотовых на максе и 78L05 все это дело питалось от COM-порта. На некторых партиях напряжение просаживалось вольт до трех и ниче не работало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aesok 0 1 сентября, 2008 Опубликовано 1 сентября, 2008 · Жалоба Совсем запугали...:) ... а в качестве аргумента _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. Анатолий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться