Купил у китайцев ATmega8, некоторые usbasp не видел, вставил в fusebit doctor - загорелся зеленый светодиод, теперь uabasp их видит и нормально прощивает.
фьюзы теперь дефолтные как с завода.
Код:
avrdude -c usbasp -p m8 -U flash:w:main.hex:i
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x1e9307 (probably m8) avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file "main.hex" avrdude: writing flash (68 bytes):
avrdude: verifying ... avrdude: 68 bytes of flash verified
avrdude: safemode: Fuses OK (E:FF, H:99, L:C1)
avrdude done. Thank you.
вот такую программу в него залил
Код:
#include <avr/io.h>
int main( void ) { DDRB=0b11111111; PORTB=0b11111111;
while(1){ } return 0; }
подключаю светодиод к любой ноге порта B - не горит. на всех выводах порта B лог 0. Если порт паленый то как МК шьется? ведь MOSI MISO и SCK на порту B
заливаю эту же прошивку в другой МК на порту B лог 1.
В блокноте пишу (Geany), для компиляции и прошивки использую Makefile который так же пишу в блокноте. все linux это делаю. return 0; потому что int main, я обещал компилятору что main вернет число, вот и возвращяю.
#include <mega8.h> тут avr-gcc сам разберется я ему подсказку в Makefile дал MCU = atmega8
с программой точно проблем нет, востанавливал fusebit доктором два МК, со вторым пациентом все нормально, так что доктор лапы не жгет. выкинуть не рабочий не жалко, вот только интересно почему ведет себя так.
попробуй тестовую прожку загнать с бегушим голом от 00 до ff и нагрузить на 2 дешика с цифрами от 0 до f и посмотри что и ка перебирается на портах
_________________ ZМудрость(Опыт и выдержка) приходит с годами. Все Ваши беды и проблемы, от недостатка знаний. Умный и у дурака научится, а дураку и .. Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
заливаю эту же прошивку в другой МК на порту B лог 1.
Возможно всё же фьюзы стоят неправильно. Он может быть не запускается, дело не доходит до выполнения кода и оттого всё по нулям. Считайте фьюзы с рабочего МК и залейте в китайский.
_________________ Глупый не задает вопросы. Глупый и так все знает.
Он может быть не запускается, дело не доходит до выполнения кода и оттого всё по нулям.
Вот это скорее всего, у него потребление тока 8 ma когда как у работающего в два раза больше. Я с этим сильно еще не разбирался, но возможно у него bootloader есть, стартует он с 0x0000 а там не мой код (main program) а код bootloadr-а который дальще его не пускает.
Даже при наличии бутлоадера прошивка по ISP обладает высшим приоритетом. При перепрошивке по ISP выполняется полное предварительное стирание ПЗУ. Даже если предположить наличие бутлоадера и целевой программы в кристалле одновременно, то бутлоадер включается ненадолго - 2-5 секунд максимум. Затем управление передается целевой прожке. Разве что линии Rx/Tx останутся за приемопередатчиком.
Другое дело ежли то адуринка и загрузка ее "стандартными средствами"...
подключаю светодиод к любой ноге порта B - не горит. на всех выводах порта B лог 0. .
до выполнения программы тупо дело не доходит. А вообще, зачем что-то покупать палёное у китайцев, если эту древность можно купить новой в любом ларьке?
По-умолчанию на этих фьюзах у atmega8 включен Watchdog, который без его сброса будет постоянно перезагружать МК. Правда всё-равно мерцание хотя бы должно было быть светодиодов или лог 1 видеть вы должны были бы по идее. Но попробуйте его отключить:
Он может быть не запускается, дело не доходит до выполнения кода
Тогда бы не прошивался.
Цитата:
avrdude: safemode: Fuses OK (E:FF, H:99, L:C1)
Фьюз-калькулятор говорит что бутлоадер выключен, зато включена собака (watchdog), но вряд ли она мешает. Тем более что при перепрошивке вы бутлоадер затерли.
Цитата:
подключаю светодиод к любой ноге порта B - не горит. на всех выводах порта B лог 0.
Ноль или Hi-Z? Что будет если подключить не между ногой и землей, а между ногой и питанием? С правильной полярностью, естественно.
А как он прошьется по SPI без тактирования? Если бы стартовал с бутлоадера (фьюзы говорят об обратном но все же), то прошел бы до конца флеша и вернулся к нулевому адресу.
ТС сказал, что после фузбит доктора контроллер начал видеться программатором. Это уже значит, что и порт не битый, и с тактированием, и запуском всё норм. Я никогда не работал с бутлоадером, потому не могу твёрдо сказать, затирается он или нет при перепрошивке. Но скорее всего, что нет, на то он и бутлоадер. И всё же, что если там какой-то уникальный бутлоадер, который висит в бесконечном цикле в ожидании какого-то события? Тогда естественно, до исполнения написанного ТС кода дело не дойдёт. А вообще сам на днях нахватался Мег168 с Алика "как маня блох". В блистере, не паяные, но по качеству маркировки явно не оригинал. Только один из них запаял на ардуиновскую платку вместо сгоревшего. AVR ISP MKII его видит. Пока только запустил OLED на программном I²C, далее пока руки не дошли. Но тоже страшноватенько, вдруг какой-то из регистров нерабочий - потом вечность потратишь на понимание причины, почему твой код не работает.
_________________ Всё самое свежее по проекту "Дозиметр Сталкера" ищите здесь.
Ну если не брать во внимание факты, изложенные ТС (что был сброс фьюзов и chip erase потом), то чисто теоретически фьюзами если бы вектор стоял на буте, а бут был бы не стерт, то возможна была бы ситуация, где МК прошивался бы без проблем, но в основную программу не входил бы, потому что висел в буте бы. При прошивке можно и не затирать бут, ключик для этого есть у avrdude. Но это так, лирика, тут конечно наверное не тот случае. Тут как пишут или ТС что-то не так измерил, или в собаке всё-таки дело зарыто...
При программировании по SPI бут стирается всегда. И это зачастую оказывается проблемой, поскольку стирает загрузчики у всяких Ардуин. Впрочем, это лучше, чем изобретать отдельную команду для прошивки бута, которая бы стирала только его, отдельную для основного кода (которая бы бут не трогала) и отдельную для прошивок вообще без бутлоадера.
Цитата:
При прошивке можно и не затирать бут, ключик для этого есть у avrdude.
А оно точно "не затирает"? Или все же затирает, но потом прошивает заново? Ну и учитывая, что размер бутлоадера может меняться от 256 до 2 кБ, как оно определяет адрес начала? Фьюзы чтоль анализирует? Ох не верится... Сейчас быстренько просмотрел Ман по дудке, но спецключа не увидел.
Это ежли дан запрос на "экспорт файлов" для загрузки "сторонним программатором". В обычном режиме (средствами штатного загрузчика IDE) загружается только код без бутлоадера. В то же время "в чистую" микросхемку бутлоадер с комплектом фузов загружается из IDE в режиме "загрузить через программатор" (наиболее простой вариант arduino as ISP на основе ардуино-нано).
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения