Люди, спасите-помогите! ATmega64L...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено xcv 17 июня 2004 г. 13:53

Имеются в наличии следующие восхитительные грабли.
Есть ATmega64L, которая от 2.7 до 5.5В по даташиту. Питается от 3.3В. Internal RC oscillator. А вот какие проблемы:

Первая. Путем экспериментов выяснилось, что ни в какую не хочет корректно работать инструкция ret. После входа в процедуру, возврата в main не происходит. Есть предположение что некорректно извлекается адрес возврата из стека, который в static ram. В листинге кода инициализация стека проходит нормально, адрес 10FF

c6: cf ef ldi r28, 0xFF ; 255
c8: d0 e1 ldi r29, 0x10 ; 16
ca: de bf out 0x3e, r29 ; 62
cc: cd bf out 0x3d, r28 ; 61

Вторая. USART в асинхронном режиме. При попытке послать по USART(baud rate - 19 200, частота МК - 8МГц) байт данных, длительность фрейма на осциллографе получается меньше требуемой на 6..7%. Первое что приходит на ум - реальная частота отличается от 8МГц. В даташите по этому поводу сказано следующее:
The calibrated internal RC Oscillator provides a fixed 1.0, 2.0, 4.0, or 8.0 MHz clock. All frequencies are nominal values at 5V and 25°C.
То есть, 8МГц - это при питании 5В. А при ином допустимом? Реально ли добиться работы mega64L на 8МГц от 3.3В?
Или причина глюков с USARTом в чем-то ином?

Сижу чешу небритую репу.. :(

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru