apolon1919 Опубликовано 14 июля, 2013 Автор Поделиться Опубликовано 14 июля, 2013 видимо нет, очистка и запись... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
o_l_e_g Опубликовано 14 июля, 2013 Поделиться Опубликовано 14 июля, 2013 Странно как-то! Проверка прошивки должна быть. 0 Errare humanum est. Коли людЯм позволено, что же о нас то говорить! Ссылка на комментарий Поделиться на другие сайты Поделиться
20% скидка на весь каталог электронных компонентов в ТМ Электроникс!Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!Перейти на страницу акции Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
apolon1919 Опубликовано 14 июля, 2013 Автор Поделиться Опубликовано 14 июля, 2013 Ну как на картинки я показал, говорит We are finished! В книге сказано это прошился, стоит вытащить его из LPT То просто не будет ничего написанно, и будет вечный цикл, стоит все подключить но без контроллера, говорит девайс не подключен. То есть реакция адекватная. Вот судя по моей программе везде на контактах должны быть нули??? Или 2 вольта? Например установил я все в нули, и там как бы земля должна быть? Установил в единицы и там по 5 вольт должно быть? Может я просто спалил микросхему? И кстати, когда она в схеме то греется, не сильно, но греется 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
o_l_e_g Опубликовано 14 июля, 2013 Поделиться Опубликовано 14 июля, 2013 CSEG ORG 00H jmp init ORG 30H init: mov p1, #0 mov p3, #0 main: sjmp main END Да, на всех пинах должны быть нули. 0 Errare humanum est. Коли людЯм позволено, что же о нас то говорить! Ссылка на комментарий Поделиться на другие сайты Поделиться
apolon1919 Опубликовано 14 июля, 2013 Автор Поделиться Опубликовано 14 июля, 2013 Но это не так.... там где 2,3В где 1В, где 0,30В 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
o_l_e_g Опубликовано 14 июля, 2013 Поделиться Опубликовано 14 июля, 2013 (изменено) там где 2,3В где 1В, где 0,30В Как то не так измеряешь! Измеряй логический уровень банальным светодиодом с резистором, просто горит- не горит и всё. Попробуй тестовую программу с тремя СИДами на 0,1,2 пинах Р1. ; мигаем светодиодами LED1 EQU P1.0 ; определяем символьные имена LED2 EQU P1.1 ; теперь компилятор "знает" что имени LED1, например, соответствует линия 0 порта Р1 LED3 EQU P1.2 JMP START ; прыгаем через вектора прерываний на старт. ORG 0030h ; явно указываем компилеру с какого адреса разместить программу в памяти программ ; делается, чтобы программа не попала в поле векторов прерывания, об этом позже... ; ну собственно, основной цикл программы, отсюда будем осуществлять вызовы подпрограмм, уход в прерывания и тд. ( в Си соответствует функции Main(void){}) START: ; начинаем главный цикл CALL BLINK ; вызываем подпрограмму мигания JMP START ; бесконечно зацикливаем главный цикл ; Создаем подпрограммы DELAY: ; задержка , содержимое регистров определяет время счета MOV R3, #5 MOV R2, #0 MOV R1, #0 LOOP: DJNZ R1, LOOP ; "крутим" каскадный счетчик циклов DJNZ R2, LOOP DJNZ R3, LOOP RET ; выход, возврат по месту вызова BLINK: ;мигаем, используем подпрограмму DELAY call DELAY ; пауза CPL LED1 ;инвертируем Р1,0, зажигаем СИД1 call DELAY ; пауза CPL LED2 ;инвертируем Р1,1, зажигаем СИД2 call DELAY ; пауза CPL LED3 ;инвертируем Р1,2, зажигаем СИД3 call DELAY ; пауза MOV P1, #255 ; записываем в порт все единицы, гасим все RET ; выход, возврат по месту вызова END ; конец программы Изменено 14 июля, 2013 пользователем o_l_e_g 0 Errare humanum est. Коли людЯм позволено, что же о нас то говорить! Ссылка на комментарий Поделиться на другие сайты Поделиться
apolon1919 Опубликовано 14 июля, 2013 Автор Поделиться Опубликовано 14 июля, 2013 ок, сейчас теперь говорит NO device сейчас перезапущу комп... Видимо чтото сгорело... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
apolon1919 Опубликовано 14 июля, 2013 Автор Поделиться Опубликовано 14 июля, 2013 C LPT портом все нормально, взал тестовую прогу, и с помощью мультиметра проверил записывает биты или нет 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
apolon1919 Опубликовано 14 июля, 2013 Автор Поделиться Опубликовано 14 июля, 2013 Вот, смотрите, LPT порт работает на 100% проверил с помощью мультиметра и вот этой программы LPTprog.rar Далее, схема собрана прям в точности с описанием! Я сейчас еще раз все проверил, более того процессор был виден. Теперь программка не видит процессор.... Значит он сгорел? Подскажите мне последовательность действий что бы мне просто убедится что все прошивается и правильно. Я сейчас сделаю схемку Только пожалуйста поясните почему их тут 2? И какой напряжения подавать? и как замерять? И как мне сделать последовательность действий что бы добиться результата? Я наверное куплю этих контроллеров штук 5. Куплю логический пробник Что еще мне нужно будет? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
o_l_e_g Опубликовано 14 июля, 2013 Поделиться Опубликовано 14 июля, 2013 Лучшая проверка-это проверка функционирования. Эти схемы амплитудных детекторов, собрать можно любую, на выходе будет удвоенная амплитуда переменной составляющей входного напряжения, при работающем генераторе, и ноль при неработающем. Конденсаторы в примерно 10-20 пФ, диоды любые ВЧ, или импульсные, резистор не ставить, его заменит внутреннее сопротивление прибора. 0 Errare humanum est. Коли людЯм позволено, что же о нас то говорить! Ссылка на комментарий Поделиться на другие сайты Поделиться
apolon1919 Опубликовано 14 июля, 2013 Автор Поделиться Опубликовано 14 июля, 2013 А на вход тоже переменный ток подавать? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
o_l_e_g Опубликовано 14 июля, 2013 Поделиться Опубликовано 14 июля, 2013 Так детектор и измерит только переменный, а он будет только при работающем генераторе. 0 Errare humanum est. Коли людЯм позволено, что же о нас то говорить! Ссылка на комментарий Поделиться на другие сайты Поделиться
apolon1919 Опубликовано 14 июля, 2013 Автор Поделиться Опубликовано 14 июля, 2013 ааааааааааа, ясно! А напряжения на вход переменного тока какое подавать? Вобщем так.... я сейчас детально разобрал схему программатора и понял на сколько она простая, + в книге описан ход записи и чтения байтов. Сейчас я найду библиотеку в интернете с которой я могу записывать отдельные байты, и упралять отдельной шиной, и сам напишу программу чтения и записи данных.... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
o_l_e_g Опубликовано 14 июля, 2013 Поделиться Опубликовано 14 июля, 2013 А напряжения на вход переменного тока какое подавать? Так напряжение само с ножки кварца подается. Вобщем так.... я сейчас детально разобрал схему программатора и понял на сколько она простая, + в книге описан ход записи и чтения байтов. В даташите, описано преподробнейше. Ход действий правильный. 0 Errare humanum est. Коли людЯм позволено, что же о нас то говорить! Ссылка на комментарий Поделиться на другие сайты Поделиться
apolon1919 Опубликовано 14 июля, 2013 Автор Поделиться Опубликовано 14 июля, 2013 Написал вот такую программу я Out32(0x378,0x0); // Устанавливаем D0-D7 В ноль Out32(0x37A,0x0); //сигнал на стирания Out32(0x37A,0x2); // сигнал стирания + 12В Out32(0x37A,0x6); // сигнал стирания + 12В + init (PROC p3.2) Sleep(10); // Ждем 10 мс Out32(0x37A,0x2); // возвращаем сигнал стирания + 12В // Ждем готовности Ready short ready = Inp32(0x379); while (ready != 56) { ready = Inp32(0x379); cout << ready << endl; } Out32(0x37A,0xA); // Отключаем 12в cout << "OK"; getchar(); И в итоге сигнал Ready микруха не возвращает А если вручную замыкаю то все ок ну тоесть проволочкой Куплю 5 таких микрух и буду тренироваться 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
apolon1919 Опубликовано 14 июля, 2013 Автор Поделиться Опубликовано 14 июля, 2013 Как мне сделать что бы в следующий раз все было нормально? Я просто займусь этим через 2 недели, потому что в командировку еду.... а там LPT порта к сожалению нет. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
apolon1919 Опубликовано 27 июля, 2013 Автор Поделиться Опубликовано 27 июля, 2013 Вот так сделал, вот так показывает, на входе 5В постоянки, на выходе 8В 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
apolon1919 Опубликовано 27 июля, 2013 Автор Поделиться Опубликовано 27 июля, 2013 ало люди ответте, я че единственный на белом свете ето программирует с этим контроллером? у меня данные не заливаются Из за чего? Кто работал рассказывайте 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
apolon1919 Опубликовано 27 июля, 2013 Автор Поделиться Опубликовано 27 июля, 2013 че реально никто уже 2 недели подсказать ничего не может? Кто делал отпишитесь как Или объясните какой контроллер нормально работает что бы я с него начал 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
apolon1919 Опубликовано 28 июля, 2013 Автор Поделиться Опубликовано 28 июля, 2013 (изменено) Я написал свою программу, данные стираются и записываются но контроллер не работает // ProgAT89C2051.cpp: определяет точку входа для консольного приложения.// #include "stdafx.h" #pragma comment(lib,"inpout32.lib") using namespace std; #define XTAL1 0x01 #define ERASE 0x00 #define WRITE 0x08 #define VOLT_12 0x02 #define PROC 0x04 // Ждем готовности Ready bool Reade() { short ready = Inp32(0x379); int timeout = 0; while (1) { ready = Inp32(0x379); if ( ((ready >> 6) & 1) ) { // timeout++; // if (timeout >= 100000) return false; } else return true; // } } int _tmain(int argc, _TCHAR* argv[]) { // Данные программы которая в порты посылает 0 unsigned char data[] ={0x02,0x00,0x30,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x75,0x90,0x00,0x75,0xB0,0x00,0x80,0xF8}; cout<<"Load LPT driver GiveIO.sys"<<endl; HANDLE h=CreateFile(L"\\\\.\\giveio", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (h==INVALID_HANDLE_VALUE) { cout<<"Error! Can't open driver! Press any key to exit... "<<endl; getchar(); return(0); } Out32(0x378,0x0); // Устанавливаем D0-D7 В ноль Out32(0x37A,VOLT_12 | ERASE | PROC); // сигнал стирания + 12В + PROC <------------------ 1-2 пункт Sleep(10); // Ждем 10 мс Out32(0x37A,VOLT_12 | ERASE); // возвращаем сигнал стирания + 12В <------------------ 2 пункт if(!Reade()) // ------------ 3 пункт { cout << "erase error" << endl; getchar(); return 1; } Out32(0x37A,ERASE); // Отключаем 12в // ------------ 4 пункт cout << "erase OK" << endl; Sleep(3000); Out32(0x37A,WRITE | VOLT_12); for (int i = 0; i < 56; i++) { Out32(0x378,data); // Устанавливаем следующий байт данных Out32(0x37A,VOLT_12 | WRITE | PROC); // сигнал запись + 12В + PROC // Ждем готовности Ready if(!Reade()) { // Готовности нет cout << "write error " << endl; getchar(); return 1; } Sleep(2); cout << "write ok " << i << endl; if( i != 56) Out32(0x37A, XTAL1 | VOLT_12 | WRITE ); // Увеличиваем счетчик данных на 1 } cout << "FINISH" << endl; Out32(0x37A,WRITE); // Отключаем 12В getchar(); return 0; } ProgAT89C2051_Release.rar ProgAT89C2051_VS2010_SOURCES.rar Изменено 28 июля, 2013 пользователем apolon1919 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
apolon1919 Опубликовано 28 июля, 2013 Автор Поделиться Опубликовано 28 июля, 2013 Ладно, немогу айти проблему. Посоветуйте другой процессор 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
AlVaKo Опубликовано 7 августа, 2013 Поделиться Опубликовано 7 августа, 2013 (изменено) Попробуйте перейти на at89S2051. У них другой режим программирования, и программатор должен быть попроще. Более конкретно подсказать не смогу. Последний раз прошивал at89c2051 лет 13 назад, на самопальном/самописном программаторе. Или переходите на AVR-ки, например tiny2313, по ножкам совпадает с at89c2051. Я написал свою программу, данные стираются и записываются но контроллер не работает Код не смотрел. В вашем программаторе есть режим проверки(верификации) записанного? Если нет, то говорить, что данные записываются, преждевременно. Изменено 7 августа, 2013 пользователем AlVaKo 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.