3d_killer

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

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

3d_killer    3

Среда 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

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


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

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
BARS_    598
1 час назад, 3d_killer сказал:

пишу скетч

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

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


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

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

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


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

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    13

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

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

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


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

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

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


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

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

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


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

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

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    3

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

/*
 * 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    13
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    3

как он может работать на этой частоте, если выставлены фьюзы на внешний кварц, который стоит 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    35

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

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

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


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

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас


  • Сообщения

    • Про отдельное направление. Которое для чтения детям перед сном. По вашей ссылочке кстати нашёл для этой цели  очень хорошую книгу.

      http://www.radiolamp.ru/library/books.php?id=mrb0615
    • Вы, наверно, все имеете ввиду умную ЗУ с "логикой", которая и "устанавливает ток через аккумулятор при его подключении". Простой БП же не делает этого как ответил Dr.West. (Подозреваю, что у автора темы по сути китайский импульсный БП в виде ЗУ и непонятно почему на одном из выходов завышенное напряжение ). Разобрал я "китайскую" машинку для стрижки волос, убит NiCd аккум на 1000mAh 1,2В. Отпаял его, выяснил, что на него подаётся 3,5В. БП к нему на 3В 200ma (по наклейке), хотя в холостую он даёт 4,6-4,8В. А аккуму этому он даёт 330ma. Разобрал БП , там только понижающий трансформатор. и мост. В инструкции написано что-то около 5 часов на заряд машинки. Мне вот тоже стало интересно каг таг? Это же не нормально? Планирую доработать схему и поставить конденсатор, регулятор на 1,5В и как-то понизить ток до 100ma для нового аккума, но уже NiMh на тыщу. Пока разбираюсь в схемах и теории, но с тройкой по физике это сложновато =)
    • Конденсаторы? Так там обычно так и написано: "470uF". Резисторы? Советские что ли МЛТ? Там тоже так и написано: "150Ом" Любые другие идут согласно "стандартной" маркировке, где 3, где 4 цифры, последняя - множитель:   Иногда вписывается R "точка", то-есть 10.0Ом: Или 2.2мкГн: В цветовой маркировке индуктивностей или резисторов аналогично:  (270000Ом или 270кОм) Индуктивности, конечно, бывают такие, что сам не разберёшь как маркируют) Но обычно "470uH" пишут со знаком "uH", значит 470мкГн.      
    • Для этого ОУ даже С4 ни на что не влияет(( Буду крутить С2(есть подстроечник до 40пФ).. С4 выпаял и картина неизменна.. Блин, мужики, вот я дурак..Нахер смотреть меандр(прошу прощения), если запаян С1 на 0,47нФ! Но непонятно, неужели подстройка нуля на выходе регулируется так же, как и у ЛМ318?
    • Где то в теме было - на выходе ОУ смотреть форму сигнала через 300 ом резистор, попробуй