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

Rinin

Участник
  • Постов

    11
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. ATmega162 Довольно долго с ней работаю, сейчас заметил, что при установке на выходе высокого уровня, (PORTC=0xff) просто для проверки на двух выводах получаю около +2В на одном вообще ноль, А остальные пять работают нормально +5В Работаю конкретно с этим контроллером довольно долго и начинал именно с ним, поэтому пережил он много разного (включение и прошивка по даташиту от ATmega160 и не только) при этом прошивается он нормально, нормально работает с USARTами, таймеры тоже работают. Вопрос в том, мог я его угробить вот так прицельно (пожечь ножки на одном порту) или это маловероятно и какие ещё могут быть причины такого его поведения. Напряжение я меряю прямо с ноги, учитывая что прошивается и работает в остальных ситуациях он нормально - проблема на мой взгляд не в схеме.
  2. Если кому-то интересно - то эти проблемы были исключительно из за использования внутренней RC цепочки. При внешнем резонаторе работает замечательно.
  3. Контроллер о том закорочено или нет и не узнает никогда, а комп по этому шнурку из трех проводов идеально принимает инфу с GPSки.
  4. Мои чувства тоже как правило говорят, что если тысячи людей собирают на этих микросхемах преобразование, а я не могу, то проблема очень маловероятно, что в микросхемах. Просто нужен совет где конкретно её можно искать. Только что подключил его просто всё как было и послал ему несколько байт с клавиатуры (программа та же, ничего не ждущая) как только сделал это - его прорвало и с него посыпался регулярный шум. Проверил еще пару раз - как только ему посылаю с компьютера что-нибудь его "прорывает" и он начинает работать. До этого тишина. Уже лучше конечно, но далеко от совершенства.
  5. Я помню, что так делать нельзя. Потому что вы мне это уже говорили, просто мне вобщем-то пофигу как мигает светодиод, который мигает просто для красоты и чтобы видеть, что микросхема ещё не сгорела нафиг окончательно. Насчет дежавю, да, но там продолжать ИМХО было оффтопиком. А так - да та же тема, просто снова появилось время
  6. Пока закоротить и попечатать не помогло, завтра поменяю кой чего из железа, потому что не везде мне нравится как собрал, попробую поставить другой экземпляр макса и отпишусь.
  7. Собрал, подключил по даташиту, только источник питания 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В которые там сохраняются независимо от того соединен он с микросхемой или нет. Скажите где стоит искать проблему?
  8. Настройка USART

    Использовал в _delay_ms переменную (которая действительно менялась), не помню насколько криво, но работало. Впрочем запомню, если будут с ней проблемы - пойму откуда. Пока что цель - спаять таки перевод сигналов и прогнать по паре байт туда и обратно. Если кто-нибудь кинет в меня каким-нить доком по этому вопросу (согласованию уровней) - буду благодарен, хотя тут вроде информации и так хватает.
  9. Настройка USART

    Я всё это время пытался что-то передавать несогласованными по уровню сигналами. Логично что на компе всегда было отсутствие питания. Спасибо, что указали на очевидную ошибку, а то я бы и дальше с кодом возился. Без внешнего резонатора оно вполне работает. На выходе напряжение есть. А резонатор я потому и отключил чтоб с фьюзами не возиться.
  10. Настройка USART

    Пытаюсь передать через USART хоть один байт. С другой стороны ловлю их HyperTerminal'ом Пробовал принимать терминалом данные с GPS - работает нормально. Для простоты отключил внешний резонатор, сделал простенькую программку. С той стороны жду сигналов на скорости 1200, без проверки четности, 8 бит, один стоповый бит. В окне терминала пустота. Соответственно вот код для AVR Studio #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 ('1'); Beep (100); } } Который день пытаюсь хоть что научить его отправлять или принимать - но безуспешно.
×
×
  • Создать...