3d_killer

Atmega 128 16au не программируется

15 сообщений в этой теме

3d_killer    4

Среда Arduino мап портов прикладываю

пишу скетч

void setup() {
  pinMode(25, OUTPUT);
  pinMode(26, OUTPUT);
  pinMode(27, OUTPUT);
  pinMode(28, OUTPUT);
  pinMode(13, OUTPUT);
  pinMode(14, OUTPUT);
}

void loop() {
 delay(1000);
 digitalWrite(25, LOW);
 digitalWrite(26, LOW);
 digitalWrite(27, LOW);
 digitalWrite(28, LOW);
 digitalWrite(13, LOW);
 digitalWrite(14, LOW);
 delay(1000);
 digitalWrite(25, HIGH);
 digitalWrite(26, HIGH);
 digitalWrite(27, HIGH);
 digitalWrite(28, HIGH);
 digitalWrite(13, HIGH);
 digitalWrite(14, HIGH);
}

компилирую и записываю через Avrdude_prog 3.3 при верификации вылазит ошибка

avrdude.exe: verifying ...
avrdude.exe: verification error, first mismatch at byte 0x0000
             0xff != 0x0c
avrdude.exe: verification error; content mismatch

avrdude.exe: safemode: Fuses OK (E:FE, H:D1, L:FF)

avrdude.exe done.  Thank you.

 

пробую запись на камень Mega2560 все проходит гладко (то есть программатор целый)

через SinaProg записывается без ошибок, но пины не переключаются согласно программы (меряю прибором). что может быть не так, как ее заставить работать?

687474703a2f2f692e696d6775722e636f6d2f657a354d7976492e6a7067.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
BARS_    674
1 час назад, 3d_killer сказал:

пишу скетч

В настройках скетча выбрана именно 128 мега? Ну и сама мега новая?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3d_killer    4

да сама мега новая, я заливаю не через ардуино, а через usbasp Avrdude_prog 3.3, в ардуино конечно выбран проц

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3d_killer    4

2017-10-05_08-37-24.jpg

2017-10-05_08-37-44.jpg

2017-10-05_08-37-57.jpg

такой скетч проходит нормально, если ствавлю любой номер порта то все идет ошибка

2017-10-05_08-50-51.jpg

вот 10 порт прошел нормально, только на нем после заливки скетча держится 0,25вольт и все, то есть не работает

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
snn_krs    19

При компиляции скетча надо выбирать процессор даже если загрузка не через ардуино. Мега 128 не совместима с Мега 1280

Посмотрите это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Загрузка...
3d_killer    4

В ардуино я и выбираю мега 128 16 МГц, 10 порт я написал в программе, судя по рисунку это порт mosi, но толку от этого не много, только что ошибка при заливке не выдается

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
snn_krs    19

Возможно проблема с Фьюзами: М103С - это совместимость с Мега 103 его нужно убрать тлгда это будет Мега 128

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3d_killer    4

вот такой скетч записывается без проблем, но на портах никаких изменений

void setup() {
  pinMode(PG0, OUTPUT);
  pinMode(PG0, OUTPUT);
  pinMode(PC0, OUTPUT);
  pinMode(PC1, OUTPUT);
  portMode(PC2, OUTPUT);
}
void loop() {
 delay(1000);
 digitalWrite(PG0, LOW);
 digitalWrite(PG1, LOW);
 digitalWrite(PC0, LOW);
 digitalWrite(PC1, LOW);
 portWrite(PC2, LOW);

 delay(1000);
 digitalWrite(PG0, HIGH);
 digitalWrite(PG1, HIGH);
 digitalWrite(PC0, HIGH);
 digitalWrite(PC1, HIGH);
 portWrite(PC2, HIGH);
}

конфиг платы взят отсюда https://github.com/MCUdude/MegaCore

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3d_killer    4

Я уже чтобы проверить проц взял и написал простую прогу в атмел студио

/*
 * GccApplication1.c
 *
 * Created: 05.10.2017 18:57:56
 * Author : user
 */ 
#define  F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
	DDRC |= 1>>0;
	PORTC &= ~(1>>0);
    /* Replace with your application code */
    while (1) 
    {
		PORTC |= (1>>0);
		_delay_ms(10000);
		PORTC &= ~(1>>0);
		_delay_ms(10000);
    }
}

светодиод замигал но осень быстро, как будто F_CPU 1мгц, отчего это может быть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
snn_krs    19
1 hour ago, 3d_killer said:

#define F_CPU 16000000UL

Это простое определение для препроцессора частоты работы МК. По нему определяются задержки. Ничего общего с реальной частотой это определение не имеет. Т.е. если поставить #define F_CPU 123456789UL частота генератора не изменится, но задержки изменятся

1 hour ago, 3d_killer said:

_delay_ms(10000);

Вместо этого компилятор (препроцессор) ставит _delay_ms((1000/16000000 ) * 10000);

Поставьте

#define F_CPU 1000000UL

Если светодиод будет мигать с частотой заданной в _delay_ms(10000); - значит МК работает на частоте 1 МГц

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3d_killer    4

как он может работать на этой частоте, если выставлены фьюзы на внешний кварц, который стоит 16 мгц, без кварца МК не запускается

попробовал переставить на #define F_CPU 1000000UL, скорость мигания не изменилась

кстати с такой программой он тоже мигает

# define  F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
	DDRC |= 1>>0;
	PORTC &= ~(1>>0);
    /* Replace with your application code */
    while (1) 
    {
		PORTC |= (1>>0);
		_delay_ms(1000);
    }
}

разве должен?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
GOR23    37

Если не изменилась значит ваш #define F_CPU 1000000UL где то в настройках проекта перетирается на другой или не применяется вообще. 

Какую студию используешь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3d_killer    4

нашел причину был включен WDTON, а сброс в программе я не ставил, он просто напросто ребутился очень быстро

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сообщения

    • Бесконечная энергия есть,но она не свободная,природа жадная и фиг отдаст больше чем получила Просто как примеры  ,так называемая тёмная энергия ,вселенная расширяется а плотность тёмной энергии не меняется-прямое нарушение закона сохранения энергии Раз свет это не волна и не частича,значит в вакууме есть переносчик света,после долгих вычислений и решений уравнений у мужей науки  -вышло в вакууме осциляторы с энергией в половину 1 фотона,вакуум  и количество осциляторов бесконечно значит и энергия вакуума бесконечна- парадоксик Не отдаст природа энергию, вселенская жадность побольше нашей человеческой,природа ещё и проценты берёт с нас в виде тепла для собственного расширения
    • Вот эту идею я поддерживаю обеими руками. Не понимаю вообще почему функцию "окрашивания" звучания аудиофилы возложили на усилитель. Ведь гораздо проще менять окраску звучания не заменой больших ящиков-усилителей, а поворотом одной-двух ручек. Для этого просто необходимо использовать нейтральный усилитель с минимумом искажений, а все "украшения" добавлять с помощью специального отдельного устройства, в котором можно и степень и характер этих "украшений" регулировать.  В профессиональном аудио (в студиях и на концертных площадках) так и делают, а аудиофилы застряли где-то в каменном веке.
    •   А что, если д-класс, то априори без ОСи?
    • Да не надо меня ссылками заваливать ))) Я не против и традиционных усилителей. Просто чаще всего при слове Маршалл стереотипно приходит на ум "Ламповая голова"(с)
    • Да ладно! В любой ОС-ник поставьте традиционный дроссель и конденсатор на выход и получится D-шник.
    • http://hifisound.com.ua/sxema-estradnogo-usilitelya-marshall-super-ra100/