Програмирование микросхем ATmega 32

mixail
Offline
Зарегистрирован: 19.12.2011

Здраствуите форумчане, у меня такой вапрос, у меня есть  ATmega 32 можно ли её програмировать ПО Ардуино если да то как.

Заранее спасибо за ответы.

26rus
26rus аватар
Offline
Зарегистрирован: 03.05.2011

юзай поиск: "программатор из arduino"

whoim
Offline
Зарегистрирован: 03.11.2011
hugoboss317
Offline
Зарегистрирован: 21.03.2013

Суть вопроса была не построение Arduini на ATMega32, а как программировать ATMega32 с помощью Arduino. Я присоединяюсь к вопросу. На сколько я знаю этот вопрос решён, но самого решения найти не могу.

Michal
Michal аватар
Offline
Зарегистрирован: 26.04.2013

а стоит ли из ардуино прорамматор делать, можно спокойно через исп или 5 проводков заливать прграмму, да и usb программаторы есть нормальные

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Прогамматор USB asp. Какой прогой можно загрузить скетч?

Клапауций
Offline
Зарегистрирован: 10.02.2013

hugoboss317 пишет:

Прогамматор USB asp. Какой прогой можно загрузить скетч?

В Arduino IDE выбираете программатор "USBasp" жмёте "Загрузить с помощью программатора".

 

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Да еслиб всё так просто было, я бы и не писал. Тогда опять становится актуальным вопрос как запрограммировать Atmega32. IDE  то его не знает

Клапауций
Offline
Зарегистрирован: 10.02.2013

hugoboss317 пишет:

Да еслиб всё так просто было, я бы и не писал. Тогда опять становится актуальным вопрос как запрограммировать Atmega32. IDE  то его не знает

Так же как и в случае с ATmega16 нужно произвести изменения в ядре Arduino IDE, но уже для ATmega32.

Попроси kisoft - пусть напишет и для 32-й по горячему следу.

Или скачай ядро здесь - обещают * supported MCUs: ATmega 16/32/164p/324p/644(p)/1284p, я для ATmega16 пользую.

В некоторые библиотеки придётся ручками 32-ю прописать.

Простые примеры и логику пробовал - вроде работает.

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Изменения в ядре пытался сделать как раз по аналогии atmega16, вроде что то получилось но не до конца. Просить сделать за меня не стал, да кому это надо.

Да, действительно, работает, по крайней мере простой скетч залил. Чтоб идти дальше, надо с пинами разобраться.

Интересно вот, пин 6, это вроде как ножка 20, он же D6, он же PD6. Загрузил



void setup(){
  pinMode(6, OUTPUT);
}
void loop(){
  digitalWrite(6, HIGH);
  delay(500);
  digitalWrite(6, LOW);
  delay(500);
}

Замигал на ножке 28 он же D22, он же PC6. На какие пины теперь библиотеку glcd прописывать?

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Походу придётся начиная с pin1, загрудать по очереди и записывать, так же и ШИМ - ы искать

P.S. А я не понял, что номера пинов и ШИМ-ов программн озадаются, везде про разному с вети? Один нашёл как на Атмеге 16, другой вобще нумерация с 40-ой ножки идёт, у меня ка то не понятно...

 

Клапауций
Offline
Зарегистрирован: 10.02.2013

hugoboss317 пишет:

Походу придётся начиная с pin1, загрудать по очереди и записывать, так же и ШИМ - ы искать

P.S. А я не понял, что номера пинов и ШИМ-ов программн озадаются, везде про разному с вети? Один нашёл как на Атмеге 16, другой вобще нумерация с 40-ой ножки идёт, у меня ка то не понятно...

http://aquaticus.info/pwm-configuration

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Докладываю! " Чтоб не было пи__ежу, делал всё по чертежу")) Поменял в файле конфиге библиотеки glcd, прописал там мегу32, делов нет. Я думаю все беды от того что пины в 32-й через _опу наизнанку.

если программирую на "блинк" - нормально, ШИМ-ы - нормально, добавляю библиотеку glcd - нормально, но только пишу "отчистить экран" - всё, висяк, если блинк в начале кода, отмигает и всё, и наоборот.

План такой: найти файл в котором прописаны номера пинов к портам на мегу32 и на ардуину, сравнить и переписать как на ардуине.

План Б: в файле конфигурашке библиотеки прописать не 0, 1, ....., 31, а PA1,......, PB1,......., PD1, ......;

P.S. по последней ссылке описывается как конфигурировать пины ШИМ, там без 100 грам конечно не разберёшься, но суть я уловил. меня больше интересует как определяют номера пинов портов. 

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Да, не сказал, работает от внешнего осцеллятора 16.000.

Скетч для термометра на ЖКИ сделать оказалось легче чем я думал, но загрузить в МК, вот никогда бы не подумал, ПИПЕЕЕЕЦ - невозможно.

Клапауций
Offline
Зарегистрирован: 10.02.2013

hugoboss317 пишет:

Да, не сказал, работает от внешнего осцеллятора 16.000.

Скетч для термометра на ЖКИ сделать оказалось легче чем я думал, но загрузить в МК, вот никогда бы не подумал, ПИПЕЕЕЕЦ - невозможно.

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

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Пускай будет кварца, мне не легче

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Вобще с ЖКИ ничего. Походу из за того что пины через жопу получились, план А и Б естесссно не прокатил. А вобще кроме того как прошивать фьюзы на меге32 ещё для чего нибудь эти чипы можно юзать. После двухдневных поисков и иннете я думаю что они созданы как раз для прошивки фьюзов ну и светиками поблинькать. Какой вобще крендель додумался нумеровать пины с порта "С"!? Как у людей нельзя было делать!? Если ещё ссылки для ядра в IDE?

Клапауций
Offline
Зарегистрирован: 10.02.2013

hugoboss317 пишет:

Если ещё ссылки для ядра в IDE?

Я же тебе давал - у тебя, как минимум два ядра должно быть(одно с этого форума).

Какая разница, как пины нумерованы?

 

hugoboss317
Offline
Зарегистрирован: 21.03.2013

я уже раз 150 проверял подключение МК с ЖКИ, отсоединял ЖК, загружал скетч, перепробовал всё, на Ардуине2560 отлично работает, на меге32, все порты рабочие -проверил блинком каждый, ШИМ тоже работают - проверил каждый, а ЖКИ даже букву "А" вывести не может, переподключаю к дуине, всё отлично, меняю пины в конфигурашке библиотеки glcd, загружаю, подключаю ЖКИ и нихрена, всё перепробовал. Неужели это так невозможно? Что никто подсказать не может ничего?

Клапауций
Offline
Зарегистрирован: 10.02.2013

hugoboss317 пишет:
Что никто подсказать не может ничего?

На 32-й меге через фьюзы JTAG нужно отключить, иначе PC2-PC5 у тебя будут заблокированы для программирования.

зы

Разберись с фьюзами наконец-то!

hugoboss317
Offline
Зарегистрирован: 21.03.2013

зы...

подключил ЖКИ 8х2, загрузил в Atmega32 подобный термомерт (точнее с него я написал для 128х64) библиотека LiquidCrystal, в скетче даже пины не менял, так вот там как раз PC2-PC5 используются(5, 4, 3,  2 - эти пины на портах "с"). Так вот на этом ЖКИ работает.



LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

P.S. JTAG отключил давно.

 

Клапауций
Offline
Зарегистрирован: 10.02.2013

hugoboss317 пишет:
P.S. JTAG отключил давно.

Ну, и как думаешь - проблема в контроллере или библиотеке?

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Клапауций пишет:
Ну, и как думаешь - проблема в контроллере или библиотеке?

да понял уже что в библиотеке(((

Посоветуй другую для 128х64. Что т я не могу найти ничё.

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Докладываю:

Попробовал план "А", т.е. - нашёл файл, определяющий номера пинов, прописал в нормальном порядке - PD,PB,PC,PA. Проверил порты... не помогло.

А вот план "В" сработал. В файле конфигурашке библиотеки переписал вмесно:



#define glcdData3Pin    3     //DB3 of PWM
#define glcdData4Pin    12    //DB4

и т.д.

подправил на:



#define glcdData3Pin    PIN_B3   //DB3 of PWM
#define glcdData4Pin    PIN_C4   //DС4

В библиотеке glcd есть детальное описание как с ней воевать, к каким портам подключать дисплеи, как настраивать ну и всё такое.

P.S. Всех с праздником 9 МАЯ.

sp34
Offline
Зарегистрирован: 05.03.2013

hugoboss317 пишет:

Суть вопроса была не построение Arduini на ATMega32, а как программировать ATMega32 с помощью Arduino. Я присоединяюсь к вопросу. На сколько я знаю этот вопрос решён, но самого решения найти не могу.

Ребята !!! Если кто юзает ATmega32 как голый камень - раскажите по подробнее что и куда ( вобщем-то пользуясь инфой и ссылками данной темы я прошил ее через дуню , но с пинами неразбериха и частота стадартного проверочного blink (10 сек горит- 10 нет , а не 1Hz  х  1Hz ) - на любых частотах кварца !!!

Понимаю надо отключить делитель но........ дуб дубом.

А с pin вообще засада  -  .......... просто дуб.

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Если нет распиновки к контролеру, её нужно  либо искать в софте, либо у меня для таких случаЁв есть скетчь







int pin = 6;
void setup() {    
  pinMode(pin, OUTPUT);  
   
}
void loop() {
  digitalWrite(pin, HIGH);   
  delay(500); 
  digitalWrite(pin, LOW);    
  delay(500);

}

тупо меняю переменную и диодом ищу пин. заодно и частоту видно (1 сек, цикл). Достаточно начинать с нулевых портов: PB0, PC0, PD0, PA0. дальше вероятность 99,9% по порядку. Расположение, точнее номера пинов на любых AVR можно менять, но думаю теде это не понадобится. 

с частотой это тоже не сложно. Если битфьюзы не трогал, то по умолчанию все atmega тактируются от внутреннего осцелятора на 1,000.(не путать с attiny? они на максимальные 8,000 и делится на 8) найди текстовый документ board, открой и найди мегу32 . там поменяй 16000000 на 1000000, сохрани изменения. Если прошиваешь через IDE то софт уже скачал и разместил где надо.  что скачал?

А вобще новичкам не рекомендую связываться с atmega 16, 32. я с ними нагемороился. Лучше работать с 168/328. на них базируются дуины и софт готовый.

sp34
Offline
Зарегистрирован: 05.03.2013

С частотой разобрался спасибо - перед этим сам менял там 160000000 на 10000000 результат не наблюдал , поменял на 1000000 и о чудо получил на blinc 1Hz - вопрос : я так понимаю камень сейчас работает на 1MHz а как его на 16 вывести (или я чего непонимаю ? )

в board.txt  я прописал вот это и тут тоже вопрос :

1.кадькулятор фьюзов на ATmega32A выдает Low = 0xF1   High = 0x99 - почему не те значения как wiki Ж Low = 0xFF   и  High=0xDA

2.если я небуду использовать boot сколько надо прописать свободной памяти 32256 ?

atmega32.name=ATmega32A (16 MHz)

atmega32.upload.using=arduino:arduinoisp
atmega32.upload.maximum_size=30720
#atmega32.upload.maximum_size=32256
atmega32.upload.speed=19200
atmega32.bootloader.low_fuses=0xFF
atmega32.bootloader.high_fuses=0xDA
#atmega32.bootloader.low_fuses=0xF1
#atmega32.bootloader.high_fuses=0x99

atmega32.build.mcu=atmega32
atmega32.build.f_cpu=1000000L
atmega32.build.core=core32

С пинами получилось не так как на картинке выше , а так:

PD0 - PD7 = D0 - D7

PB0 - PB7  =  D8 - D15

PC0 - PC7  =  D16 - D23

PA0 - PA7 = D24 - D31

PWM - еще непроверял

Почему так и критичноли это ? , если да , то где это поменять ?

И вот еще хотел спросить :

какие функции поддерживает или может наоборот не поддерживает ATmega32 ( вопрос по аналогии с ATtiny2313 , ATtiny13 итд там все очень урезано в этом плане )

 

 

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

>>  2.если я небуду использовать boot сколько надо прописать свободной памяти 32256 ?

atmega32.upload.maximum_size=32768

 

hugoboss317
Offline
Зарегистрирован: 21.03.2013

sp34 пишет:

перед этим сам менял там 160000000 на 10000000 результат не наблюдал , поменял на 1000000 и о чудо получил на blinc 1Hz - вопрос : я так понимаю камень сейчас работает на 1MHz а как его на 16 вывести (или я чего непонимаю ? )

ну я ж сказал, по умолчаниу (новые, не тронутые, с конвеера, с завода - как угодно) 1 Мгц (LB 0xE1 HB 0x99 кажется так)

ты выставлял частоту 10,000 вот он и работал в 10 раз медленее...

sp34 пишет:

в board.txt  я прописал вот это и тут тоже вопрос :

1.кадькулятор фьюзов на ATmega32A выдает Low = 0xF1   High = 0x99 - почему не те значения как wiki Ж Low = 0xFF   и  High=0xDA

в тхт я фьюзы вобще не трогаю, не влияет на скорость. Лучше прошить их чероез програматор, а выдаёт Low = 0xF1   High = 0x99 потаму что как я сказал эта конфиг по умолчанию

sp34 пишет:

2.если я небуду использовать boot сколько надо прописать свободной памяти 32256 ?

уже ответили но зачум туза вобще лезть? места для кода хватит и ладно. Вобще лишний раз лазить не надо, надёжней будет. Иначе полезут лаги и не будешь знать откуда.

sp34 пишет:

С пинами получилось не так как на картинке выше , а так:

PD0 - PD7 = D0 - D7

PB0 - PB7  =  D8 - D15

PC0 - PC7  =  D16 - D23

PA0 - PA7 = D24 - D31

PWM - еще непроверял

Почему так и критичноли это ? , если да , то где это поменять ?

ну пусть так и будет, вобще если нормально написан бут, должна быть какрта пинов наглядно что то типа:





 * ATMEL ATMEGA32 & 644(P) / AVR-NetIO
 *
 *                   +---\/---+
 * INT0 (D 24) PB0  1|        |40  PA0 (AI 0 / D8)
 * INT1 (D 25) PB1  2|        |39  PA1 (AI 1 / D9)
 * INT2 (D 26) PB2  3|        |38  PA2 (AI 2 / D10)
 *  PWM (D 27) PB3  4|        |37  PA3 (AI 3 / D11)
 *PWM+SS(D 28) PB4  5|        |36  PA4 (AI 4 / D12)
 * MOSI (D 29) PB5  6|        |35  PA5 (AI 5 / D13)
 * MISO (D 30) PB6  7|        |34  PA6 (AI 6 / D14)
 *  SCK (D 31) PB7  8|        |33  PA7 (AI 7 / D15)
 *             RST  9|        |32  AREF
 *             VCC 10|        |31  GND 
 *             GND 11|        |30  AVCC
 *           XTAL2 12|        |29  PC7 (D  7)
 *           XTAL1 13|        |28  PC6 (D  6)
 *  RX0 (D 16) PD0 14|        |27  PC5 (D  5) TDI
 *  TX0 (D 17) PD1 15|        |26  PC4 (D  4) TDO
 *  RX1 (D 18) PD2 16|        |25  PC3 (D  3) TMS
 *  TX1 (D 19) PD3 17|        |24  PC2 (D  2) TCK
 *  PWM (D 20) PD4 18|        |23  PC1 (D  1) SDA
 *  PWM (D 21) PD5 19|        |22  PC0 (D  0) SCL
 *  PWM+(D 22) PD6 20|        |21  PD7 (D 23) PWM
 *                   +--------+
 *
 * PWM+ 644 only
 *
 * D0 ..D11 are on SubD25
 * D12..D15 are on screw connectors
 * D16..D17 are RS232 
 * D18..D24,D26 are on EXT. connectors

 ***********************************************************/

а конфигуратор выглядит вот так (у меня в той же папке):

/* 0 */
	PC,	// PC0: SCL - J3_2
	PC,	// PC1: SDA - J3_3
	PC,	// PC2: TCK - J3_4
	PC,	// PC3: TMS - J3_5
	PC,	// PC4: TDO - J3_6
	PC,	// PC5: TDI - J3_7
	PC,	// PC6: TOSC1 - J3_8
	PC,	// PC7: TOSC2 - J3_9
/* 8 */
	PA,	// PA0: ADC0 - A0
	PA,	// PA1: ADC1 - A1
	PA,	// PA2: ADC2 - A2
	PA,	// PA3: ADC3 - A3
	PA,	// PA4: ADC4 - ADC_1
	PA,	// PA5: ADC5 - ADC_2
	PA,	// PA6: ADC6 - ADC_3
	PA,	// PA7: ADC7 - ADC_4
/* 16 */
	PD,	// PD0: RXD - RS232_RxD
	PD,	// PD1: TXD - RS232_TxD
	PD,	// PD2: INT0 - LED_1
	PD,	// PD3: INT1 - RFM12_IRQ
	PD,	// PD4: OC1B - LED_2
	PD,	// PD5: OC1A - RFM12_CS
#ifdef COM21
	PD,	// PD6: ICP1 - LED_3
	PD,	// PD7: OC2 - SDcard_INS
#else
	PD,	// PD6: OC2B - LED_3
	PD,	// PD7: OC2A - SDcard_INS
#endif
/* 24 */
	PB,	// PB0: T0 - IR_Rx
	PB,	// PB1: T1 - JUMP_PROG
	PB,	// PB2: INT2 - ENC28J60_IRQ
	PB,	// PB3: OC0 - SDcard_CS
#ifdef COM0B1
	PB,	// PB4: SS - ENC28J60_CS
#else
	PB,	// PB4: SS - ENC28J60_CS
#endif
	PB,	// PB5: MOSI - SPI_MOSI
	PB,	// PB6: MISO - SPI_MISO
	PB,	// PB7: SCK - SPI_SCK
};

sp34 пишет:
И вот еще хотел спросить :

какие функции поддерживает или может наоборот не поддерживает ATmega32 ( вопрос по аналогии с ATtiny2313 , ATtiny13 итд там все очень урезано в этом плане )

где там???

У них немного отличается структора, у тинек выше максимальная тактовая частота (можно разогнать до 20,000) и всё зависит от того, что тебе надо от МК (память, кол-во пинов, иногда кол-во портов с таймером (ШИМ) и т.п) Поэтому я и говорил что лучше возиться с Atm328, Там и пинов достаточно и буты "ровные"

sp34
Offline
Зарегистрирован: 05.03.2013
 Спасибо за отклики и пояснения !

    PD, /* 0 */
	PD,
	PD,
	PD,
	PD,
	PD,
	PD,
	PD,
	PB, /* 8 */
	PB,
	PB,
	PB,
	PB,
	PB,
    PB,
    PB, 
	PC, /* 16 */
	PC,
	PC,
	PC,
	PC,
	PC,
    PC,
    PC, 
    PA, /* 24 */
    PA,
    PA,
    PA,
    PA,
    PA,
    PA,
    PA
};

У меня вот так в pin_arduino.h по пути hardware/ATmega32A/cores/core32 , поменять на ваше ?

И по поводу частоты 16MHz как насчет запустить на этой частоте камень ?

с <PWM.h> библиотекой - кстати тоже не компилируется , вываливаются ошибки !

 

hugoboss317
Offline
Зарегистрирован: 21.03.2013

sp34 пишет:
У меня вот так в pin_arduino.h по пути hardware/ATmega32A/cores/core32 , поменять на ваше ?

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

sp34 пишет:
И по поводу частоты 16MHz как насчет запустить на этой частоте камень ?

На сколько я понял калькулятор фьюзов у тебя есть и с ним ты разобрался. каким именно способом прошивать решать тоже тебе. Для Атмеги 32А на внешний кварц 16,000 это 0хFF  0x99 но я в НЕХ - е не прошиваю, мало понятно. При такой конфигурации выставляются CKSEL = 1111 SUT 11. если можешь через командную строку, тогда НЕХ твой. Я бы для начала рекомендовал бы USBASP_AVRDUDE_PROG Наглядно видно что и как выставляешь. Если совсем не знаешь что делать и как, погугли "прошивака бит фьюзов"

sp34 пишет:
с <PWM.h> библиотекой - кстати тоже не компилируется , вываливаются ошибки !

Если хочешь побаловаться с ШИМ загрузи простой код также меняя номер пина





/*Пример управления яркостью светодиода
 на выходе 9 контроллера Arduino
 функцией analogWrite().
 */
int brightness = 0;    // уставливаем начально значение яркости
int fadeAmount = 5;    // шаг приращения/убывания яркости
int pin = 4;  //пин с таймером
void setup()  {
  // устанваливаем пин 9 в режим выхода
  pinMode(pin, OUTPUT);
}
 
void loop()  {
  // устанавливаем значение широты импульса на выходе 9
  // задавая яркость светодиода
  analogWrite(pin, brightness);    
 
  // измением значение в переменной для яркости
  brightness = brightness + fadeAmount;
 
  // при достижение крайних значений для яркости
  // меняем знак переменной шага приращения/убывания яркости 
  if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount ;
  }    
  // делаем паузу для достижения плавного наращивания/убывания яркости   
  delay(30); 
}
sp34
Offline
Зарегистрирован: 05.03.2013

Только PD7 - работает как PWM ! , а PC2,PC3,PC4,PC5 - вообще молчат даже на Blink 

Может есть готовый архив для прошивки голой ATmega32A скетчем ?

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Спалить ещё не успел?

пины правельно указывал?

pin = 4;

pin = 5;

pin = 7;

pin = 11;

sp34
Offline
Зарегистрирован: 05.03.2013

hugoboss317 пишет:

Спалить ещё не успел?

пины правельно указывал?

pin = 4;

pin = 5;

pin = 7;

pin = 11;

Не неуспел, у меня их три штуки , все три так и прошиваются ! все pin кроме pin 7(PWM - все ОК) просто моргают как Blink 

hugoboss317
Offline
Зарегистрирован: 21.03.2013

покажи код

p.s. у 32 -й их 4

hugoboss317
Offline
Зарегистрирован: 21.03.2013

sp34 пишет:

Может есть готовый архив для прошивки голой ATmega32A скетчем ?

есть кое что. Что именно надо?

sp34
Offline
Зарегистрирован: 05.03.2013

hugoboss317 пишет:

покажи код

p.s. у 32 -й их 4

О каком коде речь ?

 

hugoboss317 пишет:

есть кое что. Что именно надо?

правильный board.txt  и  cores/core32 - со всей начинкой ! может конечно еще что надо , я просто рассуждаю по аналогии с ATtiny2313 и 13A - мне этих папок было достаточно и все ок прошивалось , а тут засада , я уже желею что их купил ( Уже форточку открыл .......)

hugoboss317
Offline
Зарегистрирован: 21.03.2013

1. код, которым ты тестишь порты (скетч), в частности ШИМ.

2. кто тебе сказал что у тебя неправельный софт!? С Атмега 32 так и будет. Я начал с ними (32А, 16А) работать т.к. они были доступны. Но при этом за неимением достаточных навыков постоянно вылаЗЯТ бока. Например недавний мой опыт показал что нельзя включать в скетч одновременно библиотеку ИК приёмника и сервы т.к. получается накладка с таймерами и все мои усилия переключить одну из биб на другой таймер были четны. Но при этомпрекрасно работает одновременно с бибами для LCD, servo, датчиком температуры и часами реального времени + напихал туда шрифтов. Вобщем в основном задумку на 32 - ом реализовал. Изначально определись что тебе от МК надо. Разберись с пинами и заодно с фьюзами, а потом иди дальше. Выкидывать ничего не надо.

Вот надосуге посмотри пару моих проэктов на ATmega32A

http://www.youtube.com/watch?v=Vze6BfuwC6c     Это термотетр

http://www.youtube.com/watch?v=KOk0yA-wkGY   Это кондишин БК

Кстати с подключением lcd под термометр на 32А тоже была проблемка. На дуине всё было норм а на 32 не захотел. Менял карту пинов как сейчас у тебя, тож не помогло. по другому решал. 

А, так тут же выше и описывается))) и в №8 есть ссылка откуда я качал...

дай ссылку откуда качал софт для 32.

sp34
Offline
Зарегистрирован: 05.03.2013

hugoboss317 пишет:

1. код, которым ты тестишь порты (скетч), в частности ШИМ.

дай ссылку откуда качал софт для 32.


int brightness = 0;    // how bright the LED is
int fadeAmount = 5;    // how many points to fade the LED by

void setup()  { 
  // declare pin 13 to be an output:
  pinMode(7, OUTPUT); // - 4,5,7,11
} 

void loop()  { 
  // set the brightness of pin 13:
  analogWrite(7, brightness);    

  // change the brightness for next time through the loop:
  brightness = brightness + fadeAmount;

  // reverse the direction of the fading at the ends of the fade: 
  if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount ; 
  }     
  // wait for 30 milliseconds to see the dimming effect    
  delay(30);                            
}

http://wiki.edwindertien.nl/doku.php?id=software:bootloaders

Пробовал скечи заливать какие идут какие нет - ну это ничего подкорректируем , но непонятен момент с ногами ШИМ и с выводами 24,25,26  и  27   я о них писал выше на них тишина вообще на всех трех контроллерах.

А  по выбору 32 была задача - програмировать с простой панельки DIN , количество PWM не меенее 4-х , аналоговые входы и цыфровые выходы по максимуму , память 30 метров .

 

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Код вроде рабочий.

замени в нём 







pinMode(7, OUTPUT);

на 







pinMode(pin, OUTPUT);

И в начале введи переменную pin как я показывал (№30), может просто забываешь менять номер пина в двух местах

По ссылке что дал, там не готовый boot для 32, корректировать  надо, делал? иначе мега 32 может попадать под else.

sp34
Offline
Зарегистрирован: 05.03.2013

Я boot вообще не заливаю - я делал все по аналогии с ATtiny13A создал папку hardware в том месте где у меня скетчи лежат в ней ATmega32 в которой board.txt и cores/core32 а в эту папку все что пологается с корректировками  из выше упомянутой ссылки. - дальше через MEGA2560( в качестве программатора) все в камень ATmega32A так делал и с другими камнями было все ок.

И по поводу пины забыл поменять - это не про меня ( хоть и дуб , но ветки прорастают )

Что есть у тебя ? для использования голого камня уже откорректированное под ATmega32 ?

я так думаю вся проблема в файле pins_arduino.h - вот что мне нужно. 

Как JTAG отключить ? - ведь четыре выхода PC из за него неработают !

Клапауций
Offline
Зарегистрирован: 10.02.2013

sp34 пишет:

Только PD7 - работает как PWM ! , а PC2,PC3,PC4,PC5 - вообще молчат даже на Blink 

Может есть готовый архив для прошивки голой ATmega32A скетчем ?

у 32-й PWM расположены так

 

sp34
Offline
Зарегистрирован: 05.03.2013

Клапауций пишет:

 

у 32-й PWM расположены так !

 

Да , я так и проверяю , но таймер "TIMER0" - PB3 незнаю как правильно прописать ( пробовал , вываливаются ошибки при компиляции ) , а с PD4 и PD5 разобрался , заработали , в pins_arduino.h    PD4 был TIMER1A  ,а PD5 - TIMER1B - поменял их местами и все получилось с PWM

Остается отккрытый вопрос по PB3(TIMER0)  и как отключить JTAG ( пробовал фьюз High - D9 - без изменений)

 

hugoboss317
Offline
Зарегистрирован: 21.03.2013

sp34 пишет:
как отключить JTAG ( пробовал фьюз High - D9 - без изменений)

Как пробовал? 

sp34
Offline
Зарегистрирован: 05.03.2013

Фьюзы поправил в board и пробовал скечи загонять.

PS кстати PD7(TIMER2) - когда отрабатывает ШИМ имеет что то вроде ( мерцания 30-50Hz , не равномерного возростания яркости ) по сравнения с этимже проверочным скетчем на выводах с TIMER1A и TIMER1B - может какой предделитель поправить ?

Клапауций
Offline
Зарегистрирован: 10.02.2013

sp34 пишет:

Фьюзы поправил в board и пробовал скечи загонять.

PS кстати PD7(TIMER2) - когда отрабатывает ШИМ имеет что то вроде ( мерцания 30-50Hz , не равномерного возростания яркости ) по сравнения с этимже проверочным скетчем на выводах с TIMER1A и TIMER1B - может какой предделитель поправить ?

шаг приращения яркости ставьте 1.

зачем все эти проверки работоспособности контроллера?

sp34
Offline
Зарегистрирован: 05.03.2013

Клапауций пишет:

шаг приращения яркости ставьте 1.

Шаг 1 так и стоит - эффект как будто с частотой 30-50Hz - гаснет на микросекунды при увеличении или уменьшении (  дрожит как лампа дневного сведа на дроселе ) на других двух пинах PWM все плавно с этимже скетчем !

Клапауций пишет:

зачем все эти проверки работоспособности контроллера?

У друга их штук 15-20 - хотим максимально одоптировать для заливки скетчей от 328

Клапауций
Offline
Зарегистрирован: 10.02.2013

sp34 пишет:

У друга их штук 15-20 - хотим максимально одоптировать для заливки скетчей от 328

все 20-ть штук?

по аналогии М16 обсуждаемого в http://arduino.ru/forum/proekty/arduinoide-i-atmega16-korrektiruem-yadro

смотрите здесь https://sites.google.com/site/kisoft63/pinboardii/pinboardii ядро для M16

там походу AVR_ATmega16   нужно заменить на AVR_ATmega32 или сравнить ядро для 16-й и оригинальное пофайлово для полной уверенности.

 

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Клапауций пишет:
там походу AVR_ATmega16   нужно заменить на AVR_ATmega32 или сравнить ядро для 16-й и оригинальное пофайлово для полной уверенности.

не прокатывает, пробовал. sp34  не внимательно читает ответы. Я указывал на твою ссылку этом топике. Всё работает (почти всё). А 32А под 328 полностью всё-равно не подогнать. Зависит от того что именно требуется от МК.

hugoboss317
Offline
Зарегистрирован: 21.03.2013

Клапауций, поправь меня если я ошибаюсь но таким мокаром

sp34 пишет:
Фьюзы поправил в board

через дуньку фьюзы не прошиваются

Клапауций
Offline
Зарегистрирован: 10.02.2013

hugoboss317 пишет:

Клапауций, поправь меня если я ошибаюсь но таким мокаром

через дуньку фьюзы не прошиваются

Если через опцию "Записать загрузчик", то прошьются подключенным программатором... вместе с загрузчиком, потом можно перезаписать загрузчик блинком или другой ерундой.

можно логи посмотреть, после нажатия "Записать загрузчик"

*\arduino-1.0.5\hardware/tools/avr/bin/avrdude -CD:\Program Files mini\arduino-1.0.5\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega8 -cusbasp -Pusb -e -Ulock:w:0x3F:m -Uhfuse:w:0xca:m -Ulfuse:w:0xdf:m 
 
сначала оно фьюзы хочет писать