Обсуждаем контроллеры компании Atmel.
Ответить

ATmega8 не пойму что с портами.

Пт мар 26, 2021 18:06:39

Купил у китайцев 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

Reading | ################################################## | 100% 0.02s

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):

Writing | ################################################## | 100% 1.04s

avrdude: 68 bytes of flash written
avrdude: verifying flash memory against main.hex:
avrdude: load data flash data from input file main.hex:
avrdude: input file main.hex contains 68 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.60s

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.

Re: ATmega8 не пойму что с портами.

Пт мар 26, 2021 18:31:07

Какая среда программирования ?
строка :
#include <mega8.h> // отсутствует, или она не нужна ?

Добавлено after 1 minute 47 seconds:
Зачем команда
return 0; // ? это просто интересно...

Re: ATmega8 не пойму что с портами.

Пт мар 26, 2021 18:48:35

В блокноте пишу (Geany), для компиляции и прошивки использую Makefile который так же пишу в блокноте. все linux это делаю.
return 0; потому что int main, я обещал компилятору что main вернет число, вот и возвращяю.

#include <mega8.h> тут avr-gcc сам разберется я ему подсказку в Makefile дал
MCU = atmega8

с программой точно проблем нет, востанавливал fusebit доктором два МК, со вторым пациентом все нормально, так что доктор лапы не жгет.
выкинуть не рабочий не жалко, вот только интересно почему ведет себя так.

Re: ATmega8 не пойму что с портами.

Пт мар 26, 2021 19:49:07

попробуй тестовую прожку загнать с бегушим голом от 00 до ff и нагрузить на 2 дешика с цифрами от 0 до f и посмотри что и ка перебирается на портах

Re: ATmega8 не пойму что с портами.

Пт мар 26, 2021 21:00:53

В блокноте пишу (Geany), для компиляции и прошивки использую Makefile который так же пишу в блокноте. все linux это делаю.

Сложно всё . Я пользуюсь CVAVR. Потому извиняюсь , и иду нервно курить на балкон.

Добавлено after 31 minute 18 seconds:
А если вообще то ! Если у атмег 8 был отключен SPI - то они по любому Б/У-шные .

Re: ATmega8 не пойму что с портами.

Пт мар 26, 2021 21:27:33

Линукс....
Была бы виндовс....
Уменя все инструменты только под форточками...
:(

Re: ATmega8 не пойму что с портами.

Пт мар 26, 2021 22:57:14

заливаю эту же прошивку в другой МК на порту B лог 1.

Возможно всё же фьюзы стоят неправильно. Он может быть не запускается, дело не доходит до выполнения кода и оттого всё по нулям.
Считайте фьюзы с рабочего МК и залейте в китайский.

Re: ATmega8 не пойму что с портами.

Сб мар 27, 2021 11:28:46

BOB51 писал(а):Он может быть не запускается, дело не доходит до выполнения кода и оттого всё по нулям.


Вот это скорее всего, у него потребление тока 8 ma когда как у работающего в два раза больше.
Я с этим сильно еще не разбирался, но возможно у него bootloader есть, стартует он с 0x0000 а там не мой код (main program) а код bootloadr-а который дальще его не пускает.

Re: ATmega8 не пойму что с портами.

Сб мар 27, 2021 12:22:48

Даже при наличии бутлоадера прошивка по ISP обладает высшим приоритетом.
При перепрошивке по ISP выполняется полное предварительное стирание ПЗУ.
Даже если предположить наличие бутлоадера и целевой программы в кристалле одновременно, то бутлоадер включается ненадолго - 2-5 секунд максимум. Затем управление передается целевой прожке.
Разве что линии Rx/Tx останутся за приемопередатчиком.
8)
Другое дело ежли то адуринка и загрузка ее "стандартными средствами"...
:roll:

Re: ATmega8 не пойму что с портами.

Пн мар 29, 2021 10:19:12

подключаю светодиод к любой ноге порта B - не горит. на всех выводах порта B лог 0.
.

до выполнения программы тупо дело не доходит. А вообще, зачем что-то покупать палёное у китайцев, если эту древность можно купить новой в любом ларьке?

Re: ATmega8 не пойму что с портами.

Пн мар 29, 2021 11:11:23

По-умолчанию на этих фьюзах у atmega8 включен Watchdog, который без его сброса будет постоянно перезагружать МК. Правда всё-равно мерцание хотя бы должно было быть светодиодов или лог 1 видеть вы должны были бы по идее. Но попробуйте его отключить:
Код:
avrdude -c usbasp -v -p m8 -U hfuse:w:0xD9:m -U lfuse:w:0xC1:m

Re: ATmega8 не пойму что с портами.

Пн мар 29, 2021 15:57:13

Он может быть не запускается, дело не доходит до выполнения кода
Тогда бы не прошивался.
avrdude: safemode: Fuses OK (E:FF, H:99, L:C1)
Фьюз-калькулятор говорит что бутлоадер выключен, зато включена собака (watchdog), но вряд ли она мешает.
Тем более что при перепрошивке вы бутлоадер затерли.
подключаю светодиод к любой ноге порта B - не горит. на всех выводах порта B лог 0.
Ноль или Hi-Z? Что будет если подключить не между ногой и землей, а между ногой и питанием? С правильной полярностью, естественно.

Re: ATmega8 не пойму что с портами.

Пн мар 29, 2021 21:07:06

Тогда бы не прошивался.

Вообще не факт.

Re: ATmega8 не пойму что с портами.

Пн мар 29, 2021 22:18:30

А как он прошьется по SPI без тактирования? Если бы стартовал с бутлоадера (фьюзы говорят об обратном но все же), то прошел бы до конца флеша и вернулся к нулевому адресу.

Re: ATmega8 не пойму что с портами.

Пн мар 29, 2021 22:47:09

ТС сказал, что после фузбит доктора контроллер начал видеться программатором. Это уже значит, что и порт не битый, и с тактированием, и запуском всё норм. Я никогда не работал с бутлоадером, потому не могу твёрдо сказать, затирается он или нет при перепрошивке. Но скорее всего, что нет, на то он и бутлоадер. И всё же, что если там какой-то уникальный бутлоадер, который висит в бесконечном цикле в ожидании какого-то события? Тогда естественно, до исполнения написанного ТС кода дело не дойдёт. А вообще сам на днях нахватался Мег168 с Алика "как маня блох". В блистере, не паяные, но по качеству маркировки явно не оригинал. Только один из них запаял на ардуиновскую платку вместо сгоревшего. AVR ISP MKII его видит. Пока только запустил OLED на программном I²C, далее пока руки не дошли. Но тоже страшноватенько, вдруг какой-то из регистров нерабочий - потом вечность потратишь на понимание причины, почему твой код не работает.

Re: ATmega8 не пойму что с портами.

Вт мар 30, 2021 08:15:07

не могу твёрдо сказать, затирается он или нет при перепрошивке. Но скорее всего, что нет, на то он и бутлоадер.
Затирается. На то он и бутлоадер: располагается в общей памяти (пусть и с особым доступом) и занимается прошивкой остальной памяти без программатора.

Re: ATmega8 не пойму что с портами.

Вт мар 30, 2021 10:55:09

Ну если не брать во внимание факты, изложенные ТС (что был сброс фьюзов и chip erase потом), то чисто теоретически фьюзами если бы вектор стоял на буте, а бут был бы не стерт, то возможна была бы ситуация, где МК прошивался бы без проблем, но в основную программу не входил бы, потому что висел в буте бы. При прошивке можно и не затирать бут, ключик для этого есть у avrdude.
Но это так, лирика, тут конечно наверное не тот случае.
Тут как пишут или ТС что-то не так измерил, или в собаке всё-таки дело зарыто...

Re: ATmega8 не пойму что с портами.

Вт мар 30, 2021 11:54:24

При программировании по SPI бут стирается всегда. И это зачастую оказывается проблемой, поскольку стирает загрузчики у всяких Ардуин. Впрочем, это лучше, чем изобретать отдельную команду для прошивки бута, которая бы стирала только его, отдельную для основного кода (которая бы бут не трогала) и отдельную для прошивок вообще без бутлоадера.
При прошивке можно и не затирать бут, ключик для этого есть у avrdude.
А оно точно "не затирает"? Или все же затирает, но потом прошивает заново? Ну и учитывая, что размер бутлоадера может меняться от 256 до 2 кБ, как оно определяет адрес начала? Фьюзы чтоль анализирует? Ох не верится...
Сейчас быстренько просмотрел Ман по дудке, но спецключа не увидел.

Re: ATmega8 не пойму что с портами.

Вт мар 30, 2021 12:15:53

А оно точно "не затирает"? Или все же затирает, но потом прошивает заново?

Речь, видимо, про "стереть флеш перед записью". но остаётся вопрос:
как оно определяет адрес начала?


поскольку стирает загрузчики у всяких Ардуин

дурина при компиляции готовит два файла - один с загрузчиком, другой - без.

Re: ATmega8 не пойму что с портами.

Вт мар 30, 2021 12:23:51

Это ежли дан запрос на "экспорт файлов" для загрузки "сторонним программатором".
В обычном режиме (средствами штатного загрузчика IDE) загружается только код без бутлоадера.
В то же время "в чистую" микросхемку бутлоадер с комплектом фузов загружается из IDE в режиме "загрузить через программатор" (наиболее простой вариант arduino as ISP на основе ардуино-нано).
:roll:
Ответить