Например TDA7294

Форум РадиоКот • Просмотр темы - "РЕАНИМАТОР" для AVR
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср апр 24, 2024 00:01:11

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 403 ]     ... , , , 18, , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: "РЕАНИМАТОР" для AVR
СообщениеДобавлено: Чт фев 20, 2014 21:39:21 
Мучитель микросхем
Аватар пользователя

Карма: 8
Рейтинг сообщений: 28
Зарегистрирован: Вс авг 10, 2008 19:35:49
Сообщений: 411
Откуда: Евпатория
Рейтинг сообщения: 0
Тогда ещё я ЛУТ-ом не владел. Поэтому печатка нарисована маркером по линейку. К сожалению не могу Вам помочь (((


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "РЕАНИМАТОР" для AVR
СообщениеДобавлено: Пт фев 21, 2014 03:27:42 
Потрогал лапой паяльник
Аватар пользователя

Карма: 3
Рейтинг сообщений: 49
Зарегистрирован: Чт ноя 21, 2013 14:05:26
Сообщений: 342
Откуда: Україна
Рейтинг сообщения: 0
Ну на ответ, даже и не надеялся... Спасибо и на этом :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "РЕАНИМАТОР" для AVR
СообщениеДобавлено: Чт май 01, 2014 17:51:47 
Открыл глаза

Карма: 4
Рейтинг сообщений: 11
Зарегистрирован: Пт мар 25, 2011 22:00:45
Сообщений: 45
Откуда: Germany
Рейтинг сообщения: 0
Собрал работал...через две недели перестал... перепроверил всё в норме.. мозги уже за "кипели".
куда ещё капнуть...??


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: "РЕАНИМАТОР" для AVR
СообщениеДобавлено: Чт май 01, 2014 23:35:40 
Друг Кота

Карма: 68
Рейтинг сообщений: 1408
Зарегистрирован: Сб янв 29, 2011 00:28:48
Сообщений: 7774
Рейтинг сообщения: 1
КАпай куда хочешь.........
( Зачем задавать дурацкие вопросы (ни схемы, ни измерений) ? )
Вероятно, где-то плохая пайка, значит, проверил не всё....собери второй раз... :)
Вытащи контроллер, прозвони весь монтаж, проверь работу ключей....


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: "РЕАНИМАТОР" для AVR
СообщениеДобавлено: Сб май 03, 2014 17:42:26 
Открыл глаза

Карма: 4
Рейтинг сообщений: 11
Зарегистрирован: Пт мар 25, 2011 22:00:45
Сообщений: 45
Откуда: Germany
Рейтинг сообщения: 0
вот по этой собрал..


Вложения:
22.JPG [147.84 KiB]
Скачиваний: 1641
Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: "РЕАНИМАТОР" для AVR
СообщениеДобавлено: Сб май 03, 2014 19:14:51 
Вымогатель припоя
Аватар пользователя

Карма: 25
Рейтинг сообщений: 267
Зарегистрирован: Сб ноя 24, 2012 15:14:34
Сообщений: 509
Откуда: Россия, Иркутская область
Рейтинг сообщения: 0
Выложите макрофото именнно вашей собранной платы. Может чего и усмотрим.

Перепрошить контроллер пробовали?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "РЕАНИМАТОР" для AVR
СообщениеДобавлено: Вс май 04, 2014 17:17:28 
Открыл глаза

Карма: 4
Рейтинг сообщений: 11
Зарегистрирован: Пт мар 25, 2011 22:00:45
Сообщений: 45
Откуда: Germany
Рейтинг сообщения: 0
Цитата:
Перепрошить контроллер пробовали?


только и это и помогло....нотя странно контроллер был прошит и всё работало..и в один момент всё перестало... всем спасибо ..


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "РЕАНИМАТОР" для AVR
СообщениеДобавлено: Ср июн 11, 2014 11:25:05 
Родился

Зарегистрирован: Ср фев 02, 2011 18:21:12
Сообщений: 12
Откуда: Нижегородская обл.
Рейтинг сообщения: 0
Доброе утро!
Вчера тоже собрал "доктора", всю ночь пытался понять почему не работает.
Проверял плату, менял прошивки но всё равно не хочет работать.
Проверял на attiny2313, attiny13, attiny85, atmega16 (все мк 100% рабочие) с ними не работает, но с atmea8 (smd) (3 штуки проверил и на обоих прошивках ) всё прекрасно работает.
Плату делал под себя с usb и преобразователем в diptrace (версия схемы v2e).

С прошивкой 2.11 доходит до "Init programming..." и всё.
С прошивкой 2.09:

AUTOMATIC HVPP MODE
Init programming... DONE
Read signature... 00 94 00 - FAIL!
Trying T2313 pinout..00 94 00 - FAIL!
No chip in socket or chip does not responding

И загорается красный светодиод.

В ключах стоят (BC807-40, BC817-40) думаю на них. Кто нибудь собирал на этих транзисторах?
Что где искать? Мозгов уже не хватает.
Подскажите кто с таким сталкивался.

(Если нужно то схему и печатку, а также фото могу выложить).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "РЕАНИМАТОР" для AVR
СообщениеДобавлено: Ср июн 11, 2014 12:25:23 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 16
Зарегистрирован: Пн авг 27, 2012 10:38:20
Сообщений: 556
Откуда: Москва
Рейтинг сообщения: 0
nillsoft писал(а):
С прошивкой 2.11 доходит до "Init programming..." и всё.

В курсе, что последняя прошивка требует изменения в классической схеме?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "РЕАНИМАТОР" для AVR
СообщениеДобавлено: Ср июн 11, 2014 12:36:34 
Родился

Зарегистрирован: Ср фев 02, 2011 18:21:12
Сообщений: 12
Откуда: Нижегородская обл.
Рейтинг сообщения: 0
Видимо пропустил, а какие?


Последний раз редактировалось AlekseyEnergo Пн июн 16, 2014 03:56:46, всего редактировалось 1 раз.
Нарушение пункта 2.7 правил форума. Подредактировал. Предупредил!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "РЕАНИМАТОР" для AVR
СообщениеДобавлено: Ср июн 11, 2014 12:39:49 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 16
Зарегистрирован: Пн авг 27, 2012 10:38:20
Сообщений: 556
Откуда: Москва
Рейтинг сообщения: 0
Подтяжка портов связи с компом. В оригинальном описании это где-то есть.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "РЕАНИМАТОР" для AVR
СообщениеДобавлено: Ср июн 11, 2014 12:53:26 
Родился

Зарегистрирован: Ср фев 02, 2011 18:21:12
Сообщений: 12
Откуда: Нижегородская обл.
Рейтинг сообщения: 0
А это причём в моём случае?


Последний раз редактировалось AlekseyEnergo Пн июн 16, 2014 03:57:48, всего редактировалось 1 раз.
Нарушение пункта 2.7 правил форума. Подредактировал.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "РЕАНИМАТОР" для AVR
СообщениеДобавлено: Ср июн 11, 2014 13:50:41 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 16
Зарегистрирован: Пн авг 27, 2012 10:38:20
Сообщений: 556
Откуда: Москва
Рейтинг сообщения: 0
RTFM.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "РЕАНИМАТОР" для AVR
СообщениеДобавлено: Ср авг 06, 2014 10:07:39 
Встал на лапы

Зарегистрирован: Чт сен 09, 2010 19:59:01
Сообщений: 123
Рейтинг сообщения: 0
При реализации фус доктора столкнулся с таким результатом:
при включении без пациента все соответствует нормальной работе в совокупности с Терминальной программой.
при попытке реанимировать ATtiny2313 выдает:
Init programming... DONE
Read signature... 97 97 97 - FAIL!
Trying T2313 pinout..06 91 02 - FAIL!
При этом кратковременно на пациента подается 12 вольт и постоянно подано 5 вольт, причем после транзисторного ключа напряжение падает до 4,5-х вольт.
Запитывал пациента и от отдельного БП 5V.
Подскажите, кто знает, почему падает напряжение после 5 вольтового ключа?
Контроллер зашит последней версией atmega_fusebit_doctor_2.11_m8 для Атмега 8
Извините за некоторе копирование со 9 стр. У меня точно же такая ситуация.
Кто может и знает прошу откликнуться.
С уважением, Виталий.


Вложения:
Комментарий к файлу: Последняя версия Доктора
Atmega8.zip [11.7 KiB]
Скачиваний: 522
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "РЕАНИМАТОР" для AVR
СообщениеДобавлено: Чт авг 07, 2014 08:36:51 
Грызет канифоль
Аватар пользователя

Карма: 1
Рейтинг сообщений: 4
Зарегистрирован: Ср ноя 28, 2012 05:16:37
Сообщений: 286
Откуда: Новотроицк Оренбургской обл.
Рейтинг сообщения: 0
У меня была проблема в печатке. "МикроСопля" была.
Т.к. терминал писал, что нет чипа, то я искал обрыв на плате. Когда звонил между собой дороги, то же всё ОК: кз нигде не было. Но в последствии оказалось что "сопля" была ПОСЛЕ резисторов и когда я звонил от начала, то всё было нормально(сопротивление то было, мало ли через что оно там есть). Потом посмотрел плату на просвет и увидел... Убрал - всё заработало.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "РЕАНИМАТОР" для AVR
СообщениеДобавлено: Ср сен 24, 2014 22:42:22 
Вымогатель припоя
Аватар пользователя

Карма: 18
Рейтинг сообщений: 186
Зарегистрирован: Пн апр 30, 2007 18:45:36
Сообщений: 600
Откуда: Винница, ЮЗФО
Рейтинг сообщения: 2
Вот такое получилось.
Изображение
Изображение
Изображение
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "РЕАНИМАТОР" для AVR
СообщениеДобавлено: Сб сен 27, 2014 16:01:20 
Грызет канифоль
Аватар пользователя

Карма: 1
Рейтинг сообщений: 4
Зарегистрирован: Ср ноя 28, 2012 05:16:37
Сообщений: 286
Откуда: Новотроицк Оренбургской обл.
Рейтинг сообщения: 0
Теперь осталось выложить файл печатки для общественности, да лучше со схемой :)) А то получается похвастался, а мы теперь логти кусать должны :))
Получилось шикарно! Я так понимаю, там вместо UART сразу USB? А COM тогда зачем? И адаптеры там вообще не нужны, или всё таки для каких-то чипов надо (гребёнка-то осталась)? С наскоку не пойму, тем более по фото.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "РЕАНИМАТОР" для AVR
СообщениеДобавлено: Чт ноя 06, 2014 00:31:54 
Прорезались зубы

Карма: 3
Рейтинг сообщений: 11
Зарегистрирован: Вт дек 25, 2012 12:13:20
Сообщений: 213
Рейтинг сообщения: 2
Дело было вечером, делать было есть чего.
Попросили меня помочь ATmega32 прошить. Ну, думаю, чего не помочь? Помогу.
С утра смотался на рынок. И как в приказке, пошли дурака за бутылкой он одну и принесет. Вот и я одну купил. Дело то привычное. Меги шил то не раз.
Вот вечером, окруженный вниманием домочадцев, и в объятиях пристального внимания я усаживаюсь творить добро.
И вот не задача. Отвечая младшенькому на его очередной вопрос, по невнимательности, нажимаю на прошить Фьюзы и прошиваю их "0".
Конечно танцы с бубном далеко за полночь не увенчались успехом, и следующий день - день сурка ... правда новый чип удачно был прошит и отправлен.
Все то ничего, но раньше чип стоил 1 бакс, а нонче за него с меня содрали почти 4$.
Не то, чтоб жаба душить начала, но справедливости ради вот я вспомнил, что у меня, по ранней неопытности еще штук несколько подобных валяется.
Было решено повозится ради интереса.
Конечно везде и все рекламируют Фьюз Доктор.
Также и на эту статью я попал через поиск http://radiokot.ru/lab/controller/48/
Но нет возможности сейчас совсем травить платы и паять. А Ардуино мирно стоит на полочке.
Вот и решил переписать выложенный здесь http://www.radiokot.ru/forum/viewtopic.php?f=25&t=19601 исходник в полезность.

Проанализировав это
Изображение

Сначала собрал схемку
Изображение

Изображение

Но резисторы и транзисторы оказались в гараже, а хотелось быстрее все сделать.
Получилось вот так

Изображение

Это подключение к программатору для проверки успешности процесса и программирования.
Изображение

Код переписал под Arduino UNO

Код:
// Проект "РЕАНИМАТОР AVR". Автор: Черняков С.С. chernyako-sergej@yandex.ru Евпатория апрель 2009
// Ардуино адаптация ZBUK@bk.ru
// - #include <avr/io.h>
// - #include <util/delay.h>

// #define PORT_DATD PORTD  /*Двунаправленная шина данных*/

int RDY_BSY = A5;  //#define RDY_BSY - Вход "состояние программируемого МК". 0-занят (выполняется предыдущая команда), 1-готов к приёму следующей команды
int OE = 12;       //#define OE      - Выход "управление режимом работы шины данных PORT_DATA" 0-выход, 1-вход
int WR = 11;       //#define WR      - Выход "сигнал записи" 0-активный уровень
int BS1 = 10;      //#define BS1     - Выход "выбор байта" 0-младший байт, 1-старший байт
int XA0 = 9;       //#define XA0     - Выход "определение действия по положительному импульсу на выводе XTAL1
int XA1 = 8;       //#define XA1     - Выход "определение действия по положительному импульсу на выводе XTAL1
/*ХА1=0, ХА0=0 - загрузка адреса ячейки памяти (младшего или старшего байта, в зависимости от уровня сигнала BS1)*/
/*ХА1=0, ХА0=1 - загрузка данных (младшего или старшего байта, в зависимости от уровня сигнала BS1)*/
/*ХА1=1, ХА0=0 - загрузка команды*/
/*ХА1=1, ХА0=1 - нет действия, режим ожидания*/
int PAGEL = A0;     //#define PAGEL  - Выход "сигнал загрузки страницы памяти"
int Vpp_12V = A1;   //#define Vpp_12V- Выход "напряжение 12 В"
int BS2 = A2;       //#define BS2    - Выход "выбор байта" 0-младший байт, 1-старший байт
int XTAL1 = A3;     //#define XTAL1  - Выход "тактовый сигнал"
int Vcc_5V = A4;    //#define Vcc_5V - Выход "напряжение 5В
//       RDY_BSY    OE       WR        BS1      XA0      XA1      PAGEL    Vpp_12V    BS2    XTAL1    Vcc_5V    -   сигналы
//          13      12       11        10       09       08        A0        A1       A2       A3      A4       -   разряды 
int ledPin =  13;  // номер выхода, подключенного к светодиоду



void setup()
{
  DDRD = B11111111;            // установить ноги порта D с 0 по 7 как цифровые выходы /*Двунаправленная шина данных подключаем к PB7-PB0*/
  pinMode(RDY_BSY, INPUT);     // устанавливает режим работы - выход для RDY_BSY входа
  pinMode(OE, OUTPUT);         // устанавливает режим работы - выход для OE вЫхода
  pinMode(WR, OUTPUT);         // устанавливает режим работы - выход для WR вЫхода
  pinMode(BS1, OUTPUT);        // устанавливает режим работы - выход для BS1 вЫхода
  pinMode(XA0, OUTPUT);        // устанавливает режим работы - выход для XA0 вЫхода
  pinMode(XA1, OUTPUT);        // устанавливает режим работы - выход для XA1 вЫхода
  pinMode(PAGEL, OUTPUT);      // устанавливает режим работы - выход для PAGEL вЫхода
  pinMode(Vpp_12V, OUTPUT);    // устанавливает режим работы - выход для Vpp_12V вЫхода
  pinMode(BS2, OUTPUT);        // устанавливает режим работы - выход для BS2 вЫхода
  pinMode(XTAL1, OUTPUT);      // устанавливает режим работы - выход для XTAL1 вЫхода
  pinMode(Vcc_5V, OUTPUT);     // устанавливает режим работы - выход для Vcc_5V вЫхода
  pinMode(ledPin, OUTPUT);     // устанавливает режим работы - выход для ledPin вЫхода ИЛИ КНОПКА INPUT
}


//---Перевод МК семейства MEGA (кроме ATmega161, ATmega163, ATmega323) в режим параллельного программирования---
void set_prog() //void set_prog (void)
{
  //---Перевод МК ATmega8 в режим параллельного программирования (если запрограммирована ячейка RSTDISBL)---
  //      DDRC  = 0b01111111;//RDY_BSY - вход, остальные выходы
  //   PORTC = 0b11100000;//Подать на выходы PAGEL, XA1, XA0, BS1 лог. 0
  //       RDY_BSY    OE        WR        BS1      XA0      XA1      PAGEL      BS2   -   сигналы
  // PORTC    7        6         5         4        3        2         1         0    -   разряды порта

  digitalWrite(PAGEL, LOW);    //Подать на выходы PAGEL лог. 0
  digitalWrite(XA1, LOW);      //Подать на выходы XA1 лог. 0
  digitalWrite(XA0, LOW);      //Подать на выходы XA0 лог. 0
  digitalWrite(BS1, LOW);      //Подать на выходы BS1 лог. 0
  digitalWrite(BS2, LOW);      //Подать на выходы BS2 лог. 0
  digitalWrite(RDY_BSY, HIGH); //Подать на выходы RDY_BSY лог. 1
  digitalWrite(OE, HIGH);      //Подать на выходы OE лог. 1
  digitalWrite(WR, HIGH);      //Подать на выходы OE лог. 1
  delay(100);                  //Выждать не менее 100 nс
  //         DDRD = 0b00000111; //Выходы XTAL1, 12V, 5V
  //                                                      Vcc_5V    Vpp_12V    XTAL1  -   сигналы
  // PORTD    7        6         5         4        3        2         1         0    -   разряды порта
  //   PORTD |= 0b00000110;//Подать на МК ОДНОВРЕМЕННО Uпит, а на вывод RESET U = 12В
  digitalWrite(Vcc_5V, HIGH);  //Подать на выходы Vcc_5V лог. 1
  digitalWrite(Vpp_12V, HIGH); //Подать на выходы Vpp_12V лог. 1
  delay(10000);                  // _delay_us(100);    //Выждать не менее 100 nс
  digitalWrite(Vcc_5V, LOW);  //Подать на выходы Vcc_5V лог. 0
  digitalWrite(Vpp_12V, LOW); //Подать на выходы Vpp_12V лог. 0
  digitalWrite(XTAL1, HIGH);
  delay(10);
  digitalWrite(XTAL1, LOW);    //Подать на выходы XTAL1 лог. 0
  delay(100); 
  //DDRA = 0b11111111;//Выход шины данных
}

//---Загрузка команды---
void loadcommand(byte command) //void loadcommand (unsigned char command)
{
  digitalWrite(XA1, HIGH);      // PORTC |=  _BV(XA1);
  digitalWrite(XA0, LOW);       /* // PORTC &= ~_BV(XA0); Установить выводы ХА1, ХА0 в состояние 10 загрузка команды */
  digitalWrite(BS1, LOW);       // PORTC &= ~_BV(BS1); Подать на вывод BS1 лог.0
  PORTD = command;              // PORT_DATA = command; Выставить на шину DATA код команды
  digitalWrite(XTAL1, HIGH);
  delay(10);
  digitalWrite(XTAL1, LOW);     //PORTD |=  _BV(XTAL1);_delay_us(10);PORTD &= ~_BV(XTAL1);//Подать на вывод XTAL1 положительный импульс
}

//---Загрузка данных---
void load_data(byte data)
{
  //void load_data (unsigned char data)
  digitalWrite(XA1, LOW);           //PORTC &= ~_BV(XA1);
  digitalWrite(XA0, HIGH);          //PORTC |=  _BV(XA0);//Установить выводы ХА1, ХА0 в состояние "01" загрузка данных
  digitalWrite(BS1, LOW);       //PORTC &= ~_BV(BS1);//Подать на вывод BS1 лог.0
  PORTD = data;                 //PORT_DATA = data;//Выставить на шину DATA код команды
  digitalWrite(XTAL1, HIGH);
  delay(10);
  digitalWrite(XTAL1, LOW);     //PORTD |=  _BV(XTAL1);_delay_us(10);PORTD &= ~_BV(XTAL1);//Подать на вывод XTAL1 положительный импульс
}

void loop() //int main (void)

  byte  command = 0;
  byte  data = 0;
  byte  low_fuse = 0;
  byte  high_fuse = 0;     //    unsigned char low_fuse, high_fuse;

  int buttonState = 0;               // variable for reading the pushbutton status   
  int CIPState = 0;
  //    PORTD |= _BV(PD6);//Вход с подтягивающим резистором - кнопка для перезаписи
  pinMode(ledPin, INPUT);            // устанавливает режим работы - OUTPUT для ledPin --- ИЛИ  INPUT ДЛЯ КНОПКИ
  digitalWrite(ledPin, HIGH);        // включить подтягивающий резистор ДЛЯ КНОПКИ
  //    DDRB |= _BV(PB3);//Выход на светодиод, индицирующий успешную перезапись
  while(1)                          //Бесконечный цикл
  {
    buttonState = digitalRead(ledPin); 
    if (buttonState == LOW)        //Если нажата кнопка "PROG"
    {
      pinMode(ledPin, OUTPUT);          // устанавливает режим работы - OUTPUT для ledPin --- ИЛИ  INPUT ДЛЯ КНОПКИ
      digitalWrite(ledPin, LOW);        // выключить подтягивающий резистор
      do                        //Начинаем цикл программирования
      {
        set_prog();        //Войти в режим паралельного программирования
        //Стирание кристалла
        loadcommand(0b10000000); //Загрузить команду "Стирание кристалла"
        digitalWrite(WR, HIGH);// PORTC |= _BV(WR);//Подать на вывод WR лог.1 (задний фронт)
        CIPState = digitalRead(RDY_BSY);
        while(CIPState == LOW)
         {
          CIPState = digitalRead(RDY_BSY);
          }//while(bit_is_clear(PINC, RDY_BSY));

        //Запись младшего конфигурационного байта
        loadcommand(0b01000000);//Загрузить команду "Запись конфигурационных ячеек"
        load_data(0b11100001);  //Загрузить младший конфигурационный байт
        digitalWrite(BS1, LOW);// PORTC &= ~_BV(BS1);//Сбросить BS1 в лог.0
        digitalWrite(BS2, LOW);// PORTC &= ~_BV(BS2);//Сбросить BS2 в лог.0
        digitalWrite(WR, LOW); // PORTC &= ~_BV(WR);//Подать на вывод WR лог.0 (передний фронт)
        delay(200);             // _delay_us(20);    //Длительность импульса
        digitalWrite(WR, HIGH);// PORTC |= _BV(WR);//Подать на вывод WR лог.1 (задний фронт)
        //  while(bit_is_clear(PINC, RDY_BSY));//и ждать появления на выводе RDY/BSY сигнала лог.1
        CIPState = digitalRead(RDY_BSY);
        while(CIPState == LOW)
        {
          CIPState = digitalRead(RDY_BSY);
        }
        delay(100); //_delay_us(100);

        //Запись старшего конфигурационного байта
        loadcommand(0b01000000);  //Загрузить команду "Запись конфигурационных ячеек"
        load_data(0b11011001);     //Загрузить старший конфигурационный байт
        digitalWrite(BS1, HIGH);//PORTC |= _BV(BS1);//Установить BS1 в лог.1
        digitalWrite(BS2, LOW); //PORTC &= ~_BV(BS2);//Сбросить BS2 в лог.0
        digitalWrite(WR, LOW);  //PORTC &= ~_BV(WR);//Подать на вывод WR лог.0 (передний фронт)
        delay(20);              //_delay_us(20);//Длительность импульса
        digitalWrite(WR, HIGH); //PORTC |= _BV(WR);//Подать на вывод WR лог.1 (задний фронт)
        //while(bit_is_clear(PINC, RDY_BSY));//и ждать появления на выводе RDY/BSY сигнала лог.1
        CIPState = digitalRead(RDY_BSY);
        while(CIPState == LOW)
        {
          CIPState = digitalRead(RDY_BSY);
        }
        digitalWrite(BS1, LOW);              //    PORTC &= ~_BV(BS1);//Сбросить BS1 в лог.0
        delay(100);                          //    _delay_us(100);

        //Чтение младшего конфигурационного байта
        loadcommand(0b00000100);
        //   DDRA  = 0x00;//Порт А перевести на вход   
        DDRD = B00000000;            // установить ноги порта D с 0 по 7 как цифровые входы /*Двунаправленная шина данных подключаем к PB7-PB0*/
        PORTD = 0xFF;                //с подтягивающими резисторами
        digitalWrite(OE, LOW);       //PORTC &= ~_BV(OE);//Сбросить ОЕ
        digitalWrite(BS2, LOW);      //PORTC &= ~_BV(BS2);//        BS2
        digitalWrite(BS1, LOW);      //PORTC &= ~_BV(BS1);//        BS1 в лог.0
        delay(250);                  //_delay_us(250);
        low_fuse = PIND;             //Считать значение младшего конфигурационного байта

        //Чтение старшего конфигурационного байта
        digitalWrite(OE, LOW);       //PORTC &= ~_BV(OE);//Сбросить OE в лог.0
        digitalWrite(BS2, HIGH);     //PORTC |= _BV(BS2);//Установить BS2
        digitalWrite(BS1, HIGH);     //PORTC |= _BV(BS1);//           BS1  в лог.1
        delay(250);                  //_delay_us(250);
        high_fuse = PIND;            //Считать значение старшего конфигурационного байта
        digitalWrite(OE, HIGH);      //PORTC |= _BV(OE);//Установить OE в лог.1

        DDRD = 0xFF;                 //Порт А - выход
        PORTD = 0;
        PORTB = 0;
        PORTC = 0; //Обнулить порты для предотвращения паразитного питания (через порты)
        //PORTD &= 0b11111000;//Снять питание
      }
      while((low_fuse != 0b11100001) || (high_fuse != 0b11011001));//Закончить цикл программирования если запись произведена успешно
      digitalWrite(ledPin, HIGH);        //PORTB |= _BV(PB3);   //и подсветить светодиод
    }
  }
}



В итоге: заливаем прошивку в Ардуино.
Видим горящий светодиод на самой плате Ардуино.
Жмем кнопку "PROG". Он тухнет.
(В моем случае я ставил задержку в программе на несколько сек. перед тем как я руками нажму кнопки подачи +12В и +5В.
Я жму и держу кнопки питания пока не загорится опять светодиод на плате - говоря, что все прошито)
В случае родной схемы то через секунду загорается опять светодиод на плате - говоря, что все прошито.
Там, как и писал автор, стирается блокировка и память. И шьются фьзы как у заводской установки.

Огромное спасибо автору Черняков С.С. chernyako-sergej@yandex.ru Евпатория за Проект "РЕАНИМАТОР AVR" и за исходники.


Вложения:
reanimationAVR.rar [32.9 KiB]
Скачиваний: 764
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "РЕАНИМАТОР" для AVR
СообщениеДобавлено: Ср ноя 12, 2014 22:06:07 
Модератор
Аватар пользователя

Карма: 23
Рейтинг сообщений: 331
Зарегистрирован: Пт янв 11, 2013 19:19:26
Сообщений: 2117
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Получилась бы своя небольшая статья. А возможно и призовая.

_________________
=========
Правила Форума ЗДЕСЬ _____ Правила раздела БАЗАР ЗДЕСЬ _____ Если вы продаете, прочтите ЗДЕСЬ

Редко появляюсь. Если вопрос не личного характера пользуйтесь кнопкой "!".


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "РЕАНИМАТОР" для AVR
СообщениеДобавлено: Ср ноя 12, 2014 22:48:47 
Прорезались зубы

Карма: 3
Рейтинг сообщений: 11
Зарегистрирован: Вт дек 25, 2012 12:13:20
Сообщений: 213
Рейтинг сообщения: 0
Спасибо за совет. Вроде разместил :)


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 403 ]     ... , , , 18, , ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 86


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y