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

    

gretis

Свой
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

Информация о gretis

  • Звание
    Местный
  • День рождения 07.11.1981

Контакты

  • Сайт
    http://зануда.онлайн/
  • ICQ
    98126990

Информация

  • Город
    Новосибирск

Старые поля

  • skype
    APakhotinskiy
  • G+
    APakhotinskiy
  1. В чистом виде, непосредственно кладу в регистр, без всяких printX/putX/... даже по одному байтику, без всяких ожиданий, прерываний, проверок... результат один и тот же. Сейчас собираюсь идти вынимать осциллограф, чтобы убедиться в том, что baudrate правильный. Да уж. Давно так не проваливался )) Как студент на первом экзамене... На одной отладке пока неясно, в чем была причина, на STK500 стоял джампер, переключающий тактёр не на том положении. Скорее от безысходности (до осциллографа еще не добрался, он дома, а я еще нет). Раскопал arduino платку и на 16МГц при той же ошибке все заработало... По крайней мере, дело было не в регистре. Да... Спасибо kovigor за настойчивость проверить осциллографом. Я даже уже нашел, как :) надо непрерывно слать 'U' и это будет соответствовать коду 010101.... при 9600-8-N-1 В данный момент подозрения с контроллера сняты, вопрос решен. Стоило только о форуме вспомнить. А сколько времени потеряно!... Да уж. Посыпаю голову пеплом
  2. Ну, тут [пока] других ошибок не обнаружено, за исключением, получается, "битого" регистра UDR0 (кстати, в ДШ он почему-то просто UDR и это не единственное "несовпадение" между ДШ и данными в AtmelStudio именно по этому МК, раньше подобного не замечал, но и диапазон контроллеров, с которыми работал, не так уж широк). Получается, вне зависимости от того, отправляю я или получаю, посылка превращается: 0b???10??? -> 0b???11??? и, аналогично, 0b???01??? -> 0b???11???. При этом корректно ходят байты 0b???00??? Для меня просто удивление вызвало, что такое может быть только с конкретным регистром. В моем восприятии, почему-то либо не должно работать совсем, либо... :)
  3. Хорошо, спасибо за совет по контролю обвязки. Сейчас кристалл так ведет себя на двух отладочных платах, в том числе, на STK500. С другим МК проблемы не возникают. К сожалению, под руками нет другой mega328, чтобы исключить сам контроллер
  4. Непосредственно на TX линии? Или речь о контроле тактёра? P.S.: пробовал пускать два стоповых бита, но результат тот же. Неужели такое бывает непосредственно внутри кристалла? Ощущение, что при передаче 4 бит всегда "тащит" за собой установку 5го...
  5. Пробовал на разных скоростях: 2400, 4800, 19200. На остальных процент ошибки вне допустимого. Даже пробовал 250k (ошибка 0%), хотя выше 14400 обычно стараюсь не подниматься - для решаемых задач хватает. Результат одинаковый (читать - такой же). Фузы выставлены, CKDIV8 точно нет. Осциллографом не отслеживал, но запускал таймер, моргал раз в секунду светодиодом, подсчитывал количество за минуту - тактовая больше похожа на те самые 4МГц... Весь код закомментирован, осталось только то, что приведено в первом посте плюс директивы #include...
  6. Всем категорически безошибочного кода! Второй день бьюсь над передачей данных по USART. Исключил все промежуточные звенья, упростил до минимума и не понимаю, где ошибка. int main(void) { uint16_t ui16_ubrr; ui16_ubrr = F_CPU / 9600 / 16 - 1; UBRR0H = (unsigned char)( ui16_ubrr >> 8 ); UBRR0L = (unsigned char) ui16_ubrr; UCSR0C = (0 << USBS0)|(3 << UCSZ00); // 1 Stop-bits, 8 Data-bits UCSR0B = _BV(TXEN0); // Wait for empty transmit buffer while ( !( UCSR0A & (1<<UDRE0)) ) ; UDR0 = 'G'; // 0x47 // Wait for empty transmit buffer while ( !( UCSR0A & (1<<UDRE0)) ) ; UDR0 = 'H'; //0x48 } То есть, убрал вообще всё. Прерывания не разрешены. F_CPU=4000000UL. В UBRR0 попадает число 25, прямо как в табличке в ДШ. Согласно этой же табличке, отклонение 0.2% из допустимых +-2% При этом получаю не ожидаемые 0x47,0x48 а вместо них - 0x87,0x98 Пытался отправить "всю ASCII". Реализовал цикл 0...255 и смотрел, что приходит. Получил крайне странный результат. Полученная последовательность была такой: 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x18, 0x19, 0x1A, ... , 0x1F, 0x20, 0x21, ... , 0x27, 0x38, 0x39, ... , далее аналогично до 0xFF, 0x00 и сначала. У кого был подобный прецедент? Удалось ли решить? Может ли это быть какая-то особенность или "косяк" в самом МК?
  7. Цитата(Abell @ Jul 15 2014, 12:34) Подумайте, если хочется. Иногда думать надо меньше, чем хочется. Я в голове накрутил куда более "навороченную" схему, а почему-то банальный вариант, описанный Вами вообще даже не предположил. Я правильно понял, имеется в виду вот такой подход (плюс токоограничивающий резистор в цепи обмотки реле) [attachment=85996:2014_07_....45.23_2.jpg] Одно "но" - я хотел обойтись если не минимальными, то по крайней мере, небольшими размерами устройства, из-за этого и не хотел большого количества реле использовать. Ток на каждого потребителя в пределах 5А за исключением нагревателя стекол/зеркал - на них релейная схема.
  8. Цитата(kovigor @ Jul 14 2014, 00:12) И очень желательно не забыть защититься еще и от ошибочной переполюсовки питания. Точнее, это не просто желательно, но даже обязательно. Прошерстите этот форум, такая задача всплывала на нем уже не раз ... От переполюсовки можно и диодный мостик собрать. Главное - не разбаловаться при этом, часто надеясь на такую защиту. За ссылку отдельное спасибо. Цитата(Abell @ Jul 14 2014, 13:42) Коммутировать силовую нагрузку электронными ключами лучше по минусу, в этом случае короткое замыкание выхода на массу к катастрофе не приведет, ключ останется жив. Короткие замыкания плюса, питающего нагрузку, на массу защищает предохранитель. Что будет нагрузкой - непосредственно потребитель или коммутирующее реле - неважно. Соответственно, силовой плюс пойдет мимо электронного блока, так безопаснее. Согласен, но поскольку потребители будут находиться за пределами салона авто, подавать постоянно туда "плюс" крайне не хочется. Подумаю над тем, чтобы в будущем подавать этот плюс на все сразу через реле при необходимости включения любого из потребителей, а далее управлять "минусом" Цитата(Abell @ Jul 14 2014, 13:42) Далее, размещение и питание электронного блока. (...) Далее, органы управления. Да, спасибо, это все учтено, управление "плюсом" без необходимости стараюсь тоже не делать. P.S. может, для питания МК просто зарядку от сотового взять за 100 рублей? Только тогда встанет вопрос с "массами"... Управлять через оптопару?
  9. в общем, все сводится к тому, что "брось каку, возьми панель от вертолета и набор релюшек". С этого и стоит, наверное, начинать набивать свои шишки... Спасибо.
  10. Цитата(kovigor @ Jul 13 2014, 03:57) Кто вам такое сказал ? Эта L4949, похоже, типичная экзотика. Терпеть не могу экзотических решений без острой необходимости. Почему бы не подобрать ИС из семейства 7805, но рассчитанную на автомобильный диапазон питающих напряжений ? Наверняка такие есть, и не одна ... Из ДШ: "It is designed for supplying microcontroller/microprocessor controlled systems particularly in automotive applications" Решения на них серийные встречал, но не воочию, а "в этих ваших интернетах". Поэтому на нее и ориентировался. А 7805 была мысль поставить, да довольно быстро отсоветовали. Abell, надежнее тумблера с релюшкой, наверное, сложно что-то придумать, и это, пожалуй, правильно. В частности, на случай затопления Но на данный момент моего развития у меня просто кризис и я не хочу в авто иметь самолетную панель
  11. Цитата(Abell @ Jul 12 2014, 01:43) Пусковой и номинальный ток потребителей известен? Так ведь они будут ходить через MOSFET, а там все в рамках дозволенного Цитата(Abell @ Jul 12 2014, 01:43) Токи короткого замыкания в проводке предусмотрели? Вот об этом не подумал. Спасибо! Буду искать способы защиты MOSFET от КЗ Цитата(Abell @ Jul 12 2014, 01:43) Что будет сгорать - предохранители или контроллер - прикинули? Ну, раз предохранитель есть, то конечно же, контроллер Цитата(Abell @ Jul 12 2014, 01:43) P.P.S. Землю лучше бы явно разделить, на слабую и силовую, иначе помехи от ключей могут вызвать сбой. Ээээ.... признаться, не знаю, как это сделать. Цитата(kovigor @ Jul 12 2014, 01:50) Эта ИС выдерживает всего-то 28В по питанию и до 40В - в импульсе. Маловато. Хоть бы вольт 60 выдерживала. Тем не менее, почему-то чаще всего именно она рекомендуется и используется в автомобильных схемах... Цитата(kovigor @ Jul 12 2014, 01:50) И еще, зачем вам Low Dropout при входных 12В и выходных 5В ? Откажитесь от идеи использовать Low Dropout Схему включения брал из ДШ, эту часть просто использовал, без понимания мат.части. Т.е. можно просто оставить вывод в воздухе? За остальные озвученные рекомендации спасибо.
  12. Для управления нагрузкой ("люстра" на экспедиционном багажнике + обогревы стекол и зеркал) хочу использовать МК. Прошу проверить меня в части подключения L4949 и, если есть строгие замечания - в части управления нагрузкой. Для обогрева стекол и зеркал задумываюсь об установки реле. Кнопки заведены на входы программных прерываний, поскольку кнопок будет 5, а бОльший, чем 2313 контроллер ставить не хочется. Фильтрация дребезга кнопок управления планируется на программном уровне. Выходов будет 8, при этом расчитываю вписаться в максимальный ток L4949 даже при включении всех потребителей
  13. Дело в том, что "сигнал" - это и есть подача питания. По сути, первое, для чего сейчас требуется это запустить - при подаче "двойного" сигнала "би-би" чтоб второй был усилен дополнительной "дуделкой", а обычное "би" - было не очень громким. В случае реализации с контроллером допускаю, что при задержке сигнала более секунды, скажем, тоже включалась дополнительная. Кормить эту цепь постоянно даже 1миллиампером ну ооооочень ни к чему. И лишний провод тоже тянуть наружу - только отрывать его грязью (устанавливаться будет за пределами подкапотного пространства и на "неасфальтовую" машину) не нашел однозначной информации на предмет выдерживания 7805 автомобильной бортсети. Думаю, буду экспериментальным путём это определять
  14. Цитата(kovigor @ Sep 26 2013, 14:55) на фоне стоимости этой защиты стабилизатор на 5В Т.е. обыкновенный 7805 с конденсаторами до/после - способен "переварить" всю кашу бортовой сети? Цитата(kovigor @ Sep 26 2013, 14:55) А зачем питаться именно от сигнала? Обязательное для меня условие - не тянуть "питательный" провод, ограничившись только той цепью, которая уже есть. Думаю, что пара конденсаторов на 2200uF удержит потребление какой-нибудь ATtiny в течение 0.5-0.8-1с По схеме в части включения MOSFET замечаний или рекомендаций нет? Важная поправка, но думаю, по схеме это было понятно Цитата(aspID @ Sep 26 2013, 12:43) будет считать по положительному фронту импульсы на входе и на второй положительный фронт будет выдавать на выход высокий СИЛОВОЙ уровень. При отсутствии второго импульса в течение 0.5-1с схема "сбрасывается".
  15. Передо мной стоит задача "сгородить" схему, которая будет считать по положительному фронту импульсы на входе и на второй положительный фронт будет выдавать на выход высокий уровень. При отсутствии второго импульса в течение 0.5-1с схема "сбрасывается". Подачу высокого уровня подразумеваю сделать на MOSFET с драйвером верхнего плеча, дабы уйти от использования релюшек. Применение - автомобильное. Соответственно, питание - "грязные" 12В. Без потребления питания в "дежурном" режиме, т.е. схема должна питаться непосредственно от управляющего сигнала. Возможно ли организовать схему на 12В, не "городя" питание для 5В? Хотелось бы организовать, не прибегая к помощи МК. А то "закушался", задача слишком проста для решения ее с помощью МК. Имеет ли право на жизнь подобная схема? [attachment=79702:_____.JPG]