реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Разгон ATMega128-16, проблемы работы с internal RAM
Lisitsin
сообщение Dec 2 2010, 11:38
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 227
Регистрация: 1-10-10
Из: Рязань
Пользователь №: 59 868



Доброго времени суток. Прошу консультации знающих. Озвучу проблему:
Разгоняю ATMega128-16 до 21 МГц. В проекте два одинаковх контроллера. Напряжение питания 5В, тактовую частоту подаю снаружи с ATTiny2313 из ейного порта. Размах тактов 5В. Фьюзы ставлю на внешний источник тактовых импульсов, CKOPT запрограммирован. Так вот один процессор работает без проблем, а второй (я его уже два раза заменял) при чтении из внутреннего ОЗУ с постинкрементом или командой POP с чтением опаздывает на 1. Т Е корректные данные получаются только в следующем чтении.
Кто нибудь может подсказать что это?
Заранее благодарен.
Схему проекта прилагаю.
Прикрепленные файлы
Прикрепленный файл  ZX_ATmega.zip ( 193.2 килобайт ) Кол-во скачиваний: 42
 


--------------------
с Уважением,
Lisitsin
Vasil.Lisitsin@yandex.ru
Go to the top of the page
 
+Quote Post
GDI
сообщение Dec 2 2010, 12:21
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Почему бы не применить 20-мегагерцовые атмеги?


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Lisitsin
сообщение Dec 2 2010, 12:59
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 227
Регистрация: 1-10-10
Из: Рязань
Пользователь №: 59 868



Цитата(GDI @ Dec 2 2010, 15:21) *
Почему бы не применить 20-мегагерцовые атмеги?

Это ни ATXMega ли?


Есть ещё один момент: на рабочий процессор такты я подаю через разделительную ёмкость, а на нерабочий - напрямую с порта. Кто нибудь знает на что это влияет?


--------------------
с Уважением,
Lisitsin
Vasil.Lisitsin@yandex.ru
Go to the top of the page
 
+Quote Post
Палыч
сообщение Dec 2 2010, 13:08
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Lisitsin @ Dec 2 2010, 15:59) *
Это ни ATXMega ли?
Есть и ATmega работающие на частоте до 20МГц. В основном это - МК, имеющие в обозначении дополнительную цифру 4 или 8 (mega328, 48, 88, 168, 1284, 644...), но есть и другие (mega325A, например)... У производителя посмотрите.
Go to the top of the page
 
+Quote Post
Lisitsin
сообщение Dec 2 2010, 13:23
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 227
Регистрация: 1-10-10
Из: Рязань
Пользователь №: 59 868



Цитата(Палыч @ Dec 2 2010, 16:08) *
Есть и ATmega работающие на частоте до 20МГц. В основном это - МК, имеющие в обозначении дополнительную цифру 4 или 8 (mega328, 48, 88, 168, 1284, 644...), но есть и другие (mega325A, например)... У производителя посмотрите.

Вообще то мне нужно 128К FLASH минимум плюс внешний RAM интерфейс.


--------------------
с Уважением,
Lisitsin
Vasil.Lisitsin@yandex.ru
Go to the top of the page
 
+Quote Post
zombi
сообщение Dec 2 2010, 16:16
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(Lisitsin @ Dec 2 2010, 15:38) *
Так вот один процессор работает без проблем, а второй (я его уже два раза заменял) при чтении из внутреннего ОЗУ с постинкрементом или командой POP с чтением опаздывает на 1. Т Е корректные данные получаются только в следующем чтении.

Че то я не пойму:
Если при следующем чтении данные правильные то пост инкремент всетаки РАБОТАЕТ, а не работает (или не правильно работает) инициализация регистра адреса!!!
Go to the top of the page
 
+Quote Post
Lisitsin
сообщение Dec 2 2010, 16:39
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 227
Регистрация: 1-10-10
Из: Рязань
Пользователь №: 59 868



Цитата(zombi @ Dec 2 2010, 19:16) *
Че то я не пойму:
Если при следующем чтении данные правильные то пост инкремент всетаки РАБОТАЕТ, а не работает (или не правильно работает) инициализация регистра адреса!!!

А кто там знает какая у него там архитектура на машинном уровне? DATASHEETы пишутся для законопослушных пользователей, которые так не гонят.
Тестовая программа у меня такаяЖ
RAMTST: LDI ZH,0X02
LDI ZL,0X00
LDI BUF,0X00
LOOP1: ST Z+,BUF
INC BUF
CPI BUF,255
BRNE LOOP1


LDI ZH,0X02
LDI ZL,0X00
LDI BUF,0X00
OUT EEARH,BUF
OUT EEARL,BUF
LD BUF,Z+



ELP: OUT EEARL,ZL
LD BUF,Z+
OUT EEDR,BUF
SBI EECR,EEMWE
SBI EECR,EEWE
EELP: SBIC EECR,EEWE
RJMP EELP
CPI ZL,255
BRNE ELP

WWWW: RJMP WWWW



В результате в EEPROM по адресу 00 - непонятное число, по 01 - 00, по 02 - 01 и т д.
Беда точно с чтением ОЗУ, а не с записью - это я проверял.

Сообщение отредактировал Lisitsin - Dec 2 2010, 16:45


--------------------
с Уважением,
Lisitsin
Vasil.Lisitsin@yandex.ru
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Dec 2 2010, 19:40
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(Lisitsin @ Dec 2 2010, 19:39) *
А кто там знает какая у него там архитектура на машинном уровне? DATASHEETы пишутся для законопослушных пользователей, которые так не гонят.
Тестовая программа у меня такаяЖ
RAMTST: LDI ZH,0X02
LDI ZL,0X00 ; Устанавливаем адрес 0x0200
LDI BUF,0X00 ; Очищаем счётчик
LOOP1: ST Z+,BUF ; Записываем в SRAM значения от 0X00 до 0XFF
INC BUF ;
CPI BUF,255 ;
BRNE LOOP1


LDI ZH,0X02 ; Устанавливаем адрес SRAM 0x0200
LDI ZL,0X00
LDI BUF,0X00 ; Очищаем счётчик
OUT EEARH,BUF ;Заодно и адрес EEPROM
OUT EEARL,BUF
LD BUF,Z+ ; Получаем 0x00 из SRAM и прибавляем 1 к ZL

ПЕРВАЯ ЗАПИСЬ В EEPROM

ELP: OUT EEARL,ZL ; Прибавляем к младшему адресу EEPROM (1)-цу = 0x0001
LD BUF,Z+ ; Получаем из SRAm (1)-цу и увеличиваем адрес для EEPROM И SRAM 0x0002 и 0x0202
OUT EEDR,BUF ; Посылаем (1) по адресу 0x0001
SBI EECR,EEMWE ; - разрешаем запись
SBI EECR,EEWE ; Записываем 1 по адресу 0x0001
EELP: SBIC EECR,EEWE
RJMP EELP
CPI ZL,255
BRNE ELP ; Ну и так далее

WWWW: RJMP WWWW



В результате в EEPROM по адресу 00 - непонятное число ( то что не "рассосалось" после выкл питания то и осталось, по 01 - 01, по 02 - 02 и т д.
Беда точно с записью EEPROM , а не чтением - это я проверял.


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
zombi
сообщение Dec 2 2010, 22:27
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(Lisitsin @ Dec 2 2010, 19:39) *
.
.
.
OUT EEARL,BUF
LD BUF,Z+
ELP: OUT EEARL,ZL
LD BUF,Z+
OUT EEDR,BUF
.
.
.
В результате в EEPROM по адресу 00 - непонятное число, по 01 - 00, по 02 - 01 и т д.
Беда точно с чтением ОЗУ, а не с записью - это я проверял.

И че должно по вашему быть в еепроме по адресу 00 если вы туда нечего не пишете?
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Dec 3 2010, 12:44
Сообщение #10


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(Lisitsin @ Dec 2 2010, 14:38) *
Разгоняю ATMega128-16 до 21 МГц.

Для самоделок пойдет разгон, для серьезной аппаратуры не пройдете климатику.
IMHO: использовать компоненты в соответствие с документацией производителя.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
Lisitsin
сообщение Dec 3 2010, 17:06
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 227
Регистрация: 1-10-10
Из: Рязань
Пользователь №: 59 868



В программе может быть ошибка. В оригинальном тесте я пишу в EEPROM из 0X200 и 00, из 0X201 в 01 и т д. Пишу один этот тест сначала в один процессор, потом в другой - резудьтат разный. Я бы и рад не разгоняться, но нет у ATMELa нужных мне контроллеров, а ARM я не знаю. Простите, исправлюсь ...!


--------------------
с Уважением,
Lisitsin
Vasil.Lisitsin@yandex.ru
Go to the top of the page
 
+Quote Post
KKV2003
сообщение Dec 4 2010, 03:09
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 11-02-08
Пользователь №: 34 931



А если "запитать" не от 21, а от 16 Мегагерц? Может тоже работать по разному будут?
Go to the top of the page
 
+Quote Post
Lisitsin
сообщение Dec 4 2010, 09:11
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 227
Регистрация: 1-10-10
Из: Рязань
Пользователь №: 59 868



Цитата(KKV2003 @ Dec 4 2010, 06:09) *
А если "запитать" не от 21, а от 16 Мегагерц? Может тоже работать по разному будут?

Если от 16 не заработает - значит datasheet не прав. А это практически невозможно. Или девайс дохлый - но я их уже 3 щтуки сменил. Дело в разгоне.


--------------------
с Уважением,
Lisitsin
Vasil.Lisitsin@yandex.ru
Go to the top of the page
 
+Quote Post
zombi
сообщение Dec 4 2010, 12:14
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(Lisitsin @ Dec 4 2010, 12:11) *
Если от 16 не заработает - значит datasheet не прав. А это практически невозможно. Или девайс дохлый - но я их уже 3 щтуки сменил. Дело в разгоне.

Кроме даташита, девайса и разгона есть еще и программа biggrin.gif
Go to the top of the page
 
+Quote Post
Lisitsin
сообщение Dec 4 2010, 13:03
Сообщение #15


Местный
***

Группа: Участник
Сообщений: 227
Регистрация: 1-10-10
Из: Рязань
Пользователь №: 59 868



Цитата(zombi @ Dec 4 2010, 15:14) *
Кроме даташита, девайса и разгона есть еще и программа biggrin.gif

Гениально!


--------------------
с Уважением,
Lisitsin
Vasil.Lisitsin@yandex.ru
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 16:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01914 секунд с 7
ELECTRONIX ©2004-2016