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

Обсуждаем контроллеры компании Atmel.
Ответить
Открыл глаза
Сообщения: 64
Зарегистрирован: Пн июн 22, 2015 08:30:17

Сообщение Kamelot »

Купил у китайцев 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.
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2314
Зарегистрирован: Вт янв 26, 2021 22:33:21

Сообщение Alex_641 »

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

Добавлено after 1 minute 47 seconds:
Зачем команда
return 0; // ? это просто интересно...
Не спрашивай по ком звонит колокол, он звонит по тебе !
Реклама
Открыл глаза
Сообщения: 64
Зарегистрирован: Пн июн 22, 2015 08:30:17

Сообщение Kamelot »

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

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

с программой точно проблем нет, востанавливал fusebit доктором два МК, со вторым пациентом все нормально, так что доктор лапы не жгет.
выкинуть не рабочий не жалко, вот только интересно почему ведет себя так.
Друг Кота
Аватара пользователя
Сообщения: 39197
Зарегистрирован: Сб сен 13, 2014 16:27:32
Откуда: СпиртоГонск созвездия Омега

Сообщение musor »

попробуй тестовую прожку загнать с бегушим голом от 00 до ff и нагрузить на 2 дешика с цифрами от 0 до f и посмотри что и ка перебирается на портах
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Реклама
Эиком - электронные компоненты и радиодетали
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2314
Зарегистрирован: Вт янв 26, 2021 22:33:21

Сообщение Alex_641 »

[uquote="Kamelot",url="/forum/viewtopic.php?p=4004627#p4004627"]В блокноте пишу (Geany), для компиляции и прошивки использую Makefile который так же пишу в блокноте. все linux это делаю.[/uquote]
Сложно всё . Я пользуюсь CVAVR. Потому извиняюсь , и иду нервно курить на балкон.

Добавлено after 31 minute 18 seconds:
А если вообще то ! Если у атмег 8 был отключен SPI - то они по любому Б/У-шные .
Не спрашивай по ком звонит колокол, он звонит по тебе !
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15591
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Линукс....
Была бы виндовс....
Уменя все инструменты только под форточками...
:(
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2406
Зарегистрирован: Ср фев 23, 2011 12:12:31

Сообщение AndTer »

[uquote="Kamelot",url="/forum/viewtopic.php?p=4004588#p4004588"]заливаю эту же прошивку в другой МК на порту B лог 1.[/uquote]
Возможно всё же фьюзы стоят неправильно. Он может быть не запускается, дело не доходит до выполнения кода и оттого всё по нулям.
Считайте фьюзы с рабочего МК и залейте в китайский.
Глупый не задает вопросы. Глупый и так все знает.
Открыл глаза
Сообщения: 64
Зарегистрирован: Пн июн 22, 2015 08:30:17

Сообщение Kamelot »

BOB51 писал(а):Он может быть не запускается, дело не доходит до выполнения кода и оттого всё по нулям.
Вот это скорее всего, у него потребление тока 8 ma когда как у работающего в два раза больше.
Я с этим сильно еще не разбирался, но возможно у него bootloader есть, стартует он с 0x0000 а там не мой код (main program) а код bootloadr-а который дальще его не пускает.
Друг Кота
Аватара пользователя
Сообщения: 15591
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

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

Сообщение parovoZZ »

[uquote="Kamelot",url="/forum/viewtopic.php?p=4004588#p4004588"]подключаю светодиод к любой ноге порта B - не горит. на всех выводах порта B лог 0.
.[/uquote]
до выполнения программы тупо дело не доходит. А вообще, зачем что-то покупать палёное у китайцев, если эту древность можно купить новой в любом ларьке?
Поставщик валерьянки для Кота
Сообщения: 1978
Зарегистрирован: Ср июл 17, 2013 13:55:57

Сообщение NStorm »

По-умолчанию на этих фьюзах у atmega8 включен Watchdog, который без его сброса будет постоянно перезагружать МК. Правда всё-равно мерцание хотя бы должно было быть светодиодов или лог 1 видеть вы должны были бы по идее. Но попробуйте его отключить:

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

avrdude -c usbasp -v -p m8 -U hfuse:w:0xD9:m -U lfuse:w:0xC1:m
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

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

Сообщение NStorm »

[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4006510#p4006510"]Тогда бы не прошивался.[/uquote]
Вообще не факт.
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

А как он прошьется по SPI без тактирования? Если бы стартовал с бутлоадера (фьюзы говорят об обратном но все же), то прошел бы до конца флеша и вернулся к нулевому адресу.
Встал на лапы
Аватара пользователя
Сообщения: 142
Зарегистрирован: Чт ноя 08, 2018 12:02:06

Сообщение Nicochip »

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

Сообщение COKPOWEHEU »

не могу твёрдо сказать, затирается он или нет при перепрошивке. Но скорее всего, что нет, на то он и бутлоадер.
Затирается. На то он и бутлоадер: располагается в общей памяти (пусть и с особым доступом) и занимается прошивкой остальной памяти без программатора.
Поставщик валерьянки для Кота
Сообщения: 1978
Зарегистрирован: Ср июл 17, 2013 13:55:57

Сообщение NStorm »

Ну если не брать во внимание факты, изложенные ТС (что был сброс фьюзов и chip erase потом), то чисто теоретически фьюзами если бы вектор стоял на буте, а бут был бы не стерт, то возможна была бы ситуация, где МК прошивался бы без проблем, но в основную программу не входил бы, потому что висел в буте бы. При прошивке можно и не затирать бут, ключик для этого есть у avrdude.
Но это так, лирика, тут конечно наверное не тот случае.
Тут как пишут или ТС что-то не так измерил, или в собаке всё-таки дело зарыто...
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

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

Сообщение parovoZZ »

А оно точно "не затирает"? Или все же затирает, но потом прошивает заново?
Речь, видимо, про "стереть флеш перед записью". но остаётся вопрос:
как оно определяет адрес начала?
поскольку стирает загрузчики у всяких Ардуин
дурина при компиляции готовит два файла - один с загрузчиком, другой - без.
Друг Кота
Аватара пользователя
Сообщения: 15591
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

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

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