Можно ли в прошивке attiny2313 "поменять местами" две ноги?

Обсуждаем контроллеры компании Atmel.
Ответить
Открыл глаза
Сообщения: 40
Зарегистрирован: Чт июн 23, 2016 13:15:34

Сообщение ZIPMan111 »

Здравствуйте! Собрал велоспидометр по этой схеме. Работает только если к дисплею подключить отдельное питание. После трёх дней тыканья мультиметром и моделирования в протеусе, заподозрил что в схеме допущена ошибка: перепутаны 8 и 12 ноги МК. А плата уже спаяна... Нельзя ли в прошивке поменять работу этих ног? И как это сделать? На обеих должна меняться полярность при нажатии кнопки, которая сидит на 7-ой ноге МК. Сейчас полярности меняются несвоевременно, поэтому устройство не работает. Переделывать плату не хотелось бы...
И второй вопрос не в тему, но по этой же схеме. На преобразователе MAX1674 у меня почему-то ноги LX и OUT находятся в КЗ. Это без подачи напруги на неё. Может при подаче напряжения они разъединяются или микросхему можно выбросить?
Вложения
12.GIF
(47.19 КБ) 383 скачивания
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

Если есть исходник, и он написан грамотно (все определения в одном месте), то можно просто переопределить ноги и перекомпилировать. Если исходника нет, то надо просто порезать дорожки и пересоединить их проволочками - работы пару минут, из них 1.5 мин - это разогрев паяльника.
Алгоритм смены полярности какой? По логике должно быть как: первое нажатие - включается преобразователь (8 нога) (следовательно и сам дисплей), второе - включается подсветка (12 нога), 3-е - все выключается. Если так, то после первого включения должна каждый раз проходить инициализация дисплея, без этого он ничего не покажет.
КЗ между LX и OUT может быть и не КЗ, а диод, встроенный в ключ, померяйте падение напряжения в обе стороны. Преобразователь-то работает? При открытии T2 есть что на выходе?
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Реклама
Открыл глаза
Сообщения: 40
Зарегистрирован: Чт июн 23, 2016 13:15:34

Сообщение ZIPMan111 »

Перерезать дорожки и перепаять я сумею, но делать это нежелательно по той причине, что хочу хоть немного разобраться в написании программ. Спаять по схеме не сложно - все на глазах.. А вообще, в таких делах я новичок. Это первая моя работа (если не считать программатор от порта LPT на пяти проводках). С T2 выходит напряжение 0,42в. Этого мало для того чтобы преобразователь заработал, но, кроме этого, открывается он не тогда, когда должен! И подсветка дисплея тоже не вовремя срабатывает (при подключенном дополнмтельном питании на дисплей все работает когда Т2 закрыт!!!). Думал что ошибка в прошивке, а вот поменяв местами в протеусе 8 и 12 ноги вроде все на свои места встало
Открыл глаза
Сообщения: 40
Зарегистрирован: Чт июн 23, 2016 13:15:34

Сообщение ZIPMan111 »

Преобразователь должен стаботать при пробуждении МК, т.е. при первом же срабатывании геркона после спячки. Исходники есть. Как написан - не знаю потому что в этих делах я ноль. Чуть позже выложу
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Сообщения: 40
Зарегистрирован: Чт июн 23, 2016 13:15:34

Сообщение ZIPMan111 »

Преобразователь у меня сейчас выпаян, т.к. было обнаружено КЗ в нем. Вне схемы тоже КЗ. Если там диод, то он же не будет КЗ показывать, прозванивая его мультиметром меняя при этом щупы местами? Ведь у них полярность есть...
Реклама
Открыл глаза
Сообщения: 40
Зарегистрирован: Чт июн 23, 2016 13:15:34

Сообщение ZIPMan111 »

Вот все, что есть
Вложения
1.zip
(140.87 КБ) 138 скачиваний
Реклама
Открыл глаза
Сообщения: 40
Зарегистрирован: Чт июн 23, 2016 13:15:34

Сообщение ZIPMan111 »

Господа товарищи, помогите, пожалуйста с прошивкой чтобы исходная схема заработала! Автор этой схемы внёс изменения в ней, а саму схему не перерисовал! По схеме 11 нога никуда не подключена, а на деле он её подключает!!!! Переделывать как у него - не вариант! Лишние ноги я откусил чтобы освободить пространство для дорожек, и 11 ногу в том числе! Связаться с автором не получается...
Вложения
Screenshot_10.png
(55.52 КБ) 320 скачиваний
Друг Кота
Аватара пользователя
Сообщения: 44152
Зарегистрирован: Пн ноя 30, 2009 03:00:01
Откуда: Нерезиновая

Сообщение АлександрЛ »

ZIPMan111 писал(а):все, что есть
Engineer_Keen писал(а):Если есть исходник, и он написан грамотно (все определения в одном месте), то можно просто переопределить ноги и перекомпилировать.
Ну, судя по набору файлов, выложенных ТС, исходники есть... :dont_know:
Теперь осталось только найти того, кто "перекомпилирует".. :dont_know:
Открыл глаза
Сообщения: 40
Зарегистрирован: Чт июн 23, 2016 13:15:34

Сообщение ZIPMan111 »

Или толкнул бы в нужном направлении
Открыл глаза
Сообщения: 40
Зарегистрирован: Чт июн 23, 2016 13:15:34

Сообщение ZIPMan111 »

С 12 ногой все в порядке. Нужно переписать только 8 ногу для любого недорогого транзистора Т2. Тот, который я поставил, придётся выпаивать из-за низкого напряжения на стоке.
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

Мда, код написан в плохом варианте... Везде управление ногами прописано напрямую, безо всяких определений :facepalm:
Собственно интересующий кусок это обработчик внешнего прерывания на INT1, к которому подключена кнопка, там инкрементируется переменная display, после чего вызывается вот это процедура:
Спойлер

Код: Выделить всё

displayon();
while (1)
      {
      // Place your code here  
if (wakeup==1)
{
wake_up();
wakeup=0;
}
if (display==1) PORTB.0=1;
else PORTB.0=0;
if (display==2) 
{
PORTD.4=0;
PORTB=0x00;
DDRB=0x00;
}
animation();
printspeed();
printdistanse();      
if (sleeping>timesleep) 
{
savedistansetoeeprom();
sleep();
}
perecur();
      }
}
Я не поклонник Си, да и времени особо нет, так что пусть кто-нибудь другой дальше разбирается, но по логике получается в принципе верно. display меняется (в INT1) по циклу 0-1-2, при 0 и 2 на 12 выводе получается "0", при 2, на 8-м получается "1" (закрывает ключ) т.о. при 0 работает экран, при 1 включается подсветка , при 2 выключается и экран и подсветка.
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Открыл глаза
Сообщения: 40
Зарегистрирован: Чт июн 23, 2016 13:15:34

Сообщение ZIPMan111 »

Engineer_Keen, спасибо за проверку! То есть, если я собрал все точно по схеме, то должно все нормально работать? Тогда остаётся лишь подобрать транзистор и разобраться с преобразователем?
Открыл глаза
Сообщения: 40
Зарегистрирован: Чт июн 23, 2016 13:15:34

Сообщение ZIPMan111 »

А не могла прошивка коряво залиться?
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

После заливки прошивки обычно идет верификация, если что не так, должно быть сообщение об ошибке. И еще, там тактирование идет от 4МГц кварца, новый контроллер по умолчанию тактируется от внутреннего RC-генератора на 8МГц с делителем на 8. Делитель насколько я видел в коде - убран программно, а вот источник надо переключать фьюзами. Вы фьюзы перешивали? Если нет, то надо перешить: прочитать (!), изменить CKSEL3-CKSEL0 (по умолчанию 0100, надо что-то вроде 1101) и записать.
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Открыл глаза
Сообщения: 40
Зарегистрирован: Чт июн 23, 2016 13:15:34

Сообщение ZIPMan111 »

Программа сама фьюзы расставила, вылезло сообщение о том, что они стоят для кварца 4МГц. Сообщений об ошибках не было. Вообще, работает все, но при подключенном к дисплею отдельном источнике питания. И вот в то время, когда МК считал километры, на 8 ноге была 1, т.е. ключ закрыт. А вот 0 на ней появляется когда не работает ничего...
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

Ну значит проблема либо в ключе, либо в DC-DC преобразователе. Можно попробовать выкинуть преобразователь и запитать всю схему от одного источника 4.5-5В.
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Открыл глаза
Сообщения: 40
Зарегистрирован: Чт июн 23, 2016 13:15:34

Сообщение ZIPMan111 »

Без преобразователя подал питание 5в на всю схему, подобрал транзистор Т2, теперь он выдаёт 5в при открытии, но на дисплее ничего не происходит. Ставлю перемычку на исток-сток чтобы питание дисплея не зависело от 8 ноги и все заработало как надо. Выходит, с восьмой ногой что-то не то все-таки. И чтобы включить подсветку, кнопку надо нажать раз 7. И ещё ключ не совсем закрывается - выдаёт 3в. Дисплей батарейку будет садить, если эти 3в будут идти на него постоянно?
Открыл глаза
Сообщения: 40
Зарегистрирован: Чт июн 23, 2016 13:15:34

Сообщение ZIPMan111 »

В общем, есть один режим, при котором данные на дисплей не идут. И только в этом режиме 8 нога открывает ключ. Увеличил контрастность, увидел квадратики. Ставлю перемычку в этом режиме - все мертвое. Нажимаю кнопку один раз - все заработало. Убираю перемычку - дисплей гаснет, т.к. ключ закрыт в друрежимахимах. Может этот мёртвый режим надо убрать из прошивки? В спящем режиме ключ закрыт, значит, батарейка не сядет. Ключ закрывается полностью. Видимо, через дисплей ток шёл на сток транзистора, поэтому там было напряжение при закрытом ключе.
Открыл глаза
Сообщения: 40
Зарегистрирован: Чт июн 23, 2016 13:15:34

Сообщение ZIPMan111 »

Engineer_Keen, огромное спасибо за то, что ткнул меня носом в нужное место! Хоть немного, но разобрался в этих непонятных буквах и цифрах. Нашёл в исходнике все portd4, что соответствует восьмой ноге и поменял там значения нулей и единиц. И заработало!!!
Ответить

Вернуться в «AVR»