Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Как да свържа кварц с Atmega8?
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=13398
Страница 1 от 1

Автор:  veskoy [ Пет Дек 05, 2014 5:34 pm ]
Заглавие:  Как да свържа кварц с Atmega8?

Здравейте! Започнах да си правя собствена development платка с Atmega8 и следвам този урок. В него обаче няма кварц, а аз искам да си сложа. Потърсих в интернет, но не успях да намеря точно обяснение как трябва да го свържа с подобна схема като тази от урока. Затова искам да помоля по-опитните да ми опишат от тази крайната схема:
Изображение

как да добавя кварц 16000. Благодаря предварително!

Автор:  ike [ Пет Дек 05, 2014 6:21 pm ]
Заглавие:  Re: Как да свържа кварц с Atmega8?

Разгледай това: https://www.google.com/search?q=arduino ... CAgQ_AUoAQ
Ще ти трябват кварц максимално близо до Atmega8, два кондензатора от 20pF и трябва да промениш фюзовете, за да кажеш на контролера да ползва кристала.

Автор:  veskoy [ Пет Дек 05, 2014 7:58 pm ]
Заглавие:  Re: Как да свържа кварц с Atmega8?

Благодаря за отговора! Имам кварца, имам кондензаторите, но преди да действам искам да попитам така схемата ми вярна ли ще е:
Изображение

Автор:  ike [ Пет Дек 05, 2014 8:19 pm ]
Заглавие:  Re: Как да свържа кварц с Atmega8?

Вярна изглежда(кристала е 16 000 000, а не 16к)
Изображение
Изображение
Изображение

Автор:  veskoy [ Вто Дек 09, 2014 2:24 am ]
Заглавие:  Re: Как да свържа кварц с Atmega8?

Направих си платката по схемата всичко стана, но сега имам няколко въпроса.
1. Използвам USBTinyISP за програматор. На няколко пъти успях да се свържа с avrdude промених си няколко пъти фюзовете и всичко премина успешно. Пробвах се да кача тестова програмка и всичко стана. Обаче не лампичката не мига:
Код:
#define F_CPU 16000000UL

#include <avr/io.h>
#include <util/delay.h>

int
main (void)
{
    DDRB |= _BV(DDB0);
   
    while(1)
    {
        PORTB ^= _BV(PB0);
        _delay_ms(1000);
    }
}

Това е кода. Свързал съм +-а на led-а към PB0 и минуса към gnd, но нищо не се случва. Пробвах самия led директно с 3 волта и си работи.

2. Програматора ту се свързва с atmega8, ту ми дава грешка:
avrdude: initialization failed, rc=-1

Това ми се случи няколко пъти и си помислих, че съм си изгорил чипа, но след няколко включвания и изключвания на захранването тръгна и пак си качих програмата без проблем.

Забелязах, че usbtinyisp-то не иска да ми burn-не и bootloader на ардуиното (със същата грешка), а ардуиното си работи перфектно и мога да си качвам скечове чрез USB. Това ме навежда на мисълта, че може би програматорчето нещо е бъгнало. Как да проверя дали проблема е в него?

3. Относно фюзовете използвах fuse calculator, но там не намерих за 16MHz кварц. Кое точно да избера за правилна настройка на фюзовете?

Въпросите ми може да са глупави, но съм начинаещ и тепърва се уча и ще се радвам ако ми помогнете.

Автор:  ike [ Вто Дек 09, 2014 3:16 am ]
Заглавие:  Re: Как да свържа кварц с Atmega8?

Не съм много навътре с avr, ама на кой ред убиваш кучето?
Светодиодите си свързват задължително през резистор.
Сигурен ли си че калкулатора няма сетинг: Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 4 ms;

Автор:  Vesko [ Вто Дек 09, 2014 5:44 am ]
Заглавие:  Re: Как да свържа кварц с Atmega8?

ike написа:
Не съм много навътре с avr, ама на кой ред убиваш кучето?
Светодиодите си свързват задължително през резистор.

:finga:

Автор:  veskoy [ Вто Дек 09, 2014 8:03 pm ]
Заглавие:  Re: Как да свържа кварц с Atmega8?

Все още не мога да го накарам да мига. Не мога също да разбера защо не се свързвам всеки път с usbtinyisp, но преди малко успях, промених фюзовете на "Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 4 ms;" и си качих програмата, от миналия пост. Свързвам лед-а с резистор, но нищо не се случва. Като го свържа директно с +-а си светва..
Код:
veskoy-desktop veskoy # avrdude -c usbtiny -p m8 -F

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9307

avrdude: safemode: Fuses OK (H:FF, E:D9, L:EF)

avrdude done.  Thank you.

veskoy-desktop veskoy # avr-gcc -mmcu=atmega8 -Wall -Os -o bl.elf bl.c     
veskoy-desktop veskoy # avr-objcopy -j .text -j .data -O ihex bl.elf bl.hex
veskoy-desktop veskoy # avrdude -c usbtiny -p m8 -e -U flash:w:bl.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9307
avrdude: erasing chip
avrdude: reading input file "bl.hex"
avrdude: input file bl.hex auto detected as Intel Hex
avrdude: writing flash (90 bytes):

Writing | ################################################## | 100% 0.25s

avrdude: 90 bytes of flash written
avrdude: verifying flash memory against bl.hex:
avrdude: load data flash data from input file bl.hex:
avrdude: input file bl.hex auto detected as Intel Hex
avrdude: input file bl.hex contains 90 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.35s

avrdude: verifying ...
avrdude: 90 bytes of flash verified

avrdude: safemode: Fuses OK (H:FF, E:D9, L:EF)

avrdude done.  Thank you.

veskoy-desktop veskoy # avrdude -c usbtiny -p m8

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9307

avrdude: safemode: Fuses OK (H:FF, E:D9, L:EF)

avrdude done.  Thank you.

veskoy-desktop veskoy # avrdude -c usbtiny -p m8

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9307

avrdude: safemode: Fuses OK (H:FF, E:D9, L:EF)

avrdude done.  Thank you.

veskoy-desktop veskoy # avrdude -c usbtiny -p m8

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9307

avrdude: safemode: Fuses OK (H:FF, E:D9, L:EF)

avrdude done.  Thank you.

veskoy-desktop veskoy # avrdude -c usbtiny -p m8

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9307

avrdude: safemode: Fuses OK (H:FF, E:D9, L:EF)

avrdude done.  Thank you.

veskoy-desktop veskoy # avrdude -c usbtiny -p m8

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9307

avrdude: safemode: Fuses OK (H:FF, E:D9, L:EF)

avrdude done.  Thank you.

veskoy-desktop veskoy # avrdude -c usbtiny -p m8

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9307

avrdude: safemode: Fuses OK (H:FF, E:D9, L:EF)

avrdude done.  Thank you.

veskoy-desktop veskoy # avrdude -c usbtiny -p m8

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9307

avrdude: safemode: Fuses OK (H:FF, E:D9, L:EF)

avrdude done.  Thank you.

veskoy-desktop veskoy # avrdude -c usbtiny -p m8

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9307

avrdude: safemode: Fuses OK (H:FF, E:D9, L:EF)

avrdude done.  Thank you.

veskoy-desktop veskoy # avrdude -c usbtiny -p m8

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9307

avrdude: safemode: Fuses OK (H:FF, E:D9, L:EF)

avrdude done.  Thank you.

veskoy-desktop veskoy # avrdude -c usbtiny -p m8

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9307

avrdude: safemode: Fuses OK (H:FF, E:D9, L:EF)

avrdude done.  Thank you.

veskoy-desktop veskoy # avrdude -c usbtiny -p m8 -e -U flash:w:bl.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9307
avrdude: erasing chip
avrdude: reading input file "bl.hex"
avrdude: input file bl.hex auto detected as Intel Hex
avrdude: writing flash (90 bytes):

Writing | ################################################## | 100% 0.25s

avrdude: 90 bytes of flash written
avrdude: verifying flash memory against bl.hex:
avrdude: load data flash data from input file bl.hex:
avrdude: input file bl.hex auto detected as Intel Hex
avrdude: input file bl.hex contains 90 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.35s

avrdude: verifying ...
avrdude: 90 bytes of flash verified

avrdude: safemode: Fuses OK (H:FF, E:D9, L:EF)

avrdude done.  Thank you.

veskoy-desktop veskoy # avrdude -c usbtiny -p m8 -e -U flash:w:bl.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9307
avrdude: erasing chip
avrdude: reading input file "bl.hex"
avrdude: input file bl.hex auto detected as Intel Hex
avrdude: writing flash (90 bytes):

Writing | ################################################## | 100% 0.25s

avrdude: 90 bytes of flash written
avrdude: verifying flash memory against bl.hex:
avrdude: load data flash data from input file bl.hex:
avrdude: input file bl.hex auto detected as Intel Hex
avrdude: input file bl.hex contains 90 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.35s

avrdude: verifying ...
avrdude: 90 bytes of flash verified

avrdude: safemode: Fuses OK (H:FF, E:D9, L:EF)

avrdude done.  Thank you.

veskoy-desktop veskoy # avrdude -c usbtiny -p m8

avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.


От лог-а може да видите, например накрая решавам да спра захранването на платката ми, след което пак го пускам и не мога да се свържа с usbtinyisp. Успявам веднъж на 30-40 опита и докато съм свързан мога да си правя всичко - да си качвам програми, да си променям фюзовете, но откаже ли е много дразнещо.

Някой може ли да предложи нещо? :cry:

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/