Jump to content
-=gga=-

Atmega128L Самопроизвольно Перезагружается

Recommended Posts

С наступающим!

Возникла тут одна проблемка. Собрал плату на МК ATmega128L. Питание от ЮСБ. Кварц на 7.3728 мГц.

Программатор AVR910. Пишу на С. Ножка Ресет подключена резистором в 10кОм к плюсу и к минусу через конденсатор 0.1мкФ.

Суть проблемы заключается в том, что МК самопроизвольно рестартирует.

Программу сгенерировал генератором начального кода CodeVisionAVR.

Строчки

// Port C initialization

// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=1 State2=T State1=T State0=T

PORTC=0x08;

DDRC=0x08;

делают PortC.3 Выходом и устанавливают на нём 1.

Строчки

delay_ms(1000);

PORTC.3=0;

Устанавливают на выводе PortC.3 лог. 0 через одну секунду.

В протеусе работает, но в реале у меня светодиод постоянно горит.

Вот скриншот фьюзов.

post-17647-0-97169500-1293476566_thumb.jpg

Вот листинг программы

/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.0 Evaluation
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date    : 12/27/2010
Author  : Freeware, for evaluation and non-commercial use only
Company :
Comments:


Chip type               : ATmega128L
Program type            : Application
AVR Core Clock frequency: 7.372800 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 1024
*****************************************************/

#include <mega128.h>
#include <delay.h>
// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=1 State2=T State1=T State0=T
PORTC=0x08;
DDRC=0x08;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Port E initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTE=0x00;
DDRE=0x00;

// Port F initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTF=0x00;
DDRF=0x00;

// Port G initialization
// Func4=In Func3=In Func2=In Func1=In Func0=In
// State4=T State3=T State2=T State1=T State0=T
PORTG=0x00;
DDRG=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
ASSR=0x00;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// OC1C output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
// Compare C Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
OCR1CH=0x00;
OCR1CL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// Timer/Counter 3 initialization
// Clock source: System Clock
// Clock value: Timer3 Stopped
// Mode: Normal top=0xFFFF
// OC3A output: Discon.
// OC3B output: Discon.
// OC3C output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer3 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
// Compare C Match Interrupt: Off
TCCR3A=0x00;
TCCR3B=0x00;
TCNT3H=0x00;
TCNT3L=0x00;
ICR3H=0x00;
ICR3L=0x00;
OCR3AH=0x00;
OCR3AL=0x00;
OCR3BH=0x00;
OCR3BL=0x00;
OCR3CH=0x00;
OCR3CL=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
// INT3: Off
// INT4: Off
// INT5: Off
// INT6: Off
// INT7: Off
EICRA=0x00;
EICRB=0x00;
EIMSK=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

ETIMSK=0x00;

// USART0 initialization
// USART0 disabled
UCSR0B=0x00;

// USART1 initialization
// USART1 disabled
UCSR1B=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC disabled
ADCSRA=0x00;

// SPI initialization
// SPI disabled
SPCR=0x00;

// TWI initialization
// TWI disabled
TWCR=0x00;

delay_ms(1000);
PORTC.3=0;
while (1)
     {

     }
}


Я был механик, я есть механик, я буду механик

Share this post


Link to post
Share on other sites

Наверняка у тебя включен фьюз (М103) совместимости с Atmega103. По умолчанию эта совместимость установлена. Отключи и будет тебе счастье.


Пока ты жив, надежда есть.

Share this post


Link to post
Share on other sites

небось светик подключен к +?

а так же:

Port C also serves the functions of special features of the ATmega128 as listed on page 77. In

ATmega103 compatibility mode, Port C is output only, and the port C pins are not tri-stated

when a reset condition becomes active.

Note: The ATmega128 is by default shipped in ATmega103 compatibility mode. Thus, if the parts are not

programmed before they are put on the PCB, PORTC will be output during first power up, and until

the ATmega103 compatibility mode is disabled

In ATmega103 compatibility mode, Port C is output only. The ATmega128 is by default shipped

in compatibility mode. Thus, if the parts are not programmed before they are put on the PCB,

PORTC will be output during first power up, and until the ATmega103 compatibility mode is disabled. The Port C has an alternate function as the address high byte for the External Memory

Interface.

взято из даташита

Edited by l-e-o-n-a-r-d-o

чем шире кругозор, тем тупее угол обозрения

Share this post


Link to post
Share on other sites

Вебинар "Разбор новых уникальных модулей FMAC и CORDIC в микроконтроллерах общего назначения STM32G4" (15.07.2020)

Компания КОМПЭЛ приглашает вас принять участие в вебинаре 15.07.2020, посвященном новому семейству микроконтроллеров общего назначения – STM32G4. Вебинар рассчитан на технических специалистов и тех, кто знаком с основами цифровой обработки сигналов. Мы разберем алгоритм работы CORDIC, а также рассмотрим пример создания цифрового фильтра на базе FMAC.

Зарегистрироваться на вебинар

                     

Новые контроллеры VIPerPLUS для ИП – видео и материалы вебинара STMicroelectronics

Видеозапись и материалы вебинара ST о семействе AC/DC регуляторов VIPerPLUS производства компании STMicroelectronics. Инженерами ST было детально рассмотрено новое семейство микросхем VIPerPLUS со встроенным транзистором, их возможности и топологии применения. Продемонстрировано испытание из лаборатории ST в Праге и моделирование в среде E-DesignSuite.

Подробнее

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • С точностью до наоборот. При выходном напряжении 3 В на регулирующих транзисторах будет падать более 40 В. А при 30 В - всего вольт 12...15. Операцию умножения на 50 А произведите сами. P.S. Обозначение "Вольты" пишутся БОЛЬШОЙ буквой ("В"). Равно, как и Амперы ("А"). @Виктор Шаракин , так нафига Вам для подобных применений СТАБИЛИЗИРОВАННЫЙ БП нужен? Тупо регулируемый, а лучше вообще два отдельных питателя - один для гальваники и второй - зарядка. Разве что трансформатор может быть один на обе схемы. 
    • Блок питания планируется использовать в основном (70%) это гальваника, остальное (30%) это разное: зарядка мощных (100 амп) аккумов, и т.д.
    • Тему, не содержащую вопроса, лучше сразу создавать в Корзине - это уменьшает объем работы модераторов и обеспечивает тему фиксированной пропиской.
    • 1. какая разница в этом случае есть оптопара или нет? 2. а) поставьте диод, как вы рисовали ранее, перед R1     б) обратная полярность для стабилитрона будет прямой и уйдет через него на землю
    • Все зависит от падения напряжение на транзисторе. P = UI. Пределом мощности будет 0,7 из даташита по вашему корпусу. В соответствии с отрывком из советской статьи что я привел выше, могут быть подводные камни вроде ухудшения параметров с нагревом и возбуды (хотя в данной схеме вроде приняты меры).  Какой сценарий использования бп планируется? 50А при режиме Uвх-Uнаг = 3в это одно, а 30в это в 10 раз больше тепла.
    • Хотелось бы хотя бы ампер 30-40 получить на выходе, а что разве невозможно при таких то параметрах транзисторов на напряжении 40 вольт? Вот же ниже схема пишут! Это на двух транзисторах, а мы же хотим ПЯТЬ запаралелить!
    • У меня есть кольца от комповых бп .Желтые с белой стороной пойдут?
×
×
  • Create New...