Atmega128 + 64k RAM + CodeVisionAVR

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Atmega128 + 64k RAM + CodeVisionAVR

Сообщение -= Александр =- » 13 сен 2009, 20:11

Кто-нить имел дело с внешним ОЗУ для AVR? Щас вот колдую в CodeVisionAVR - пока глухо... Разбираюсь чего где не так подклюил... Мож есть какие-то подводные камни?
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Re: Atmega128 + 64k RAM + CodeVisionAVR

Сообщение -= Александр =- » 14 сен 2009, 01:02

Эх, видимо что-то не успевает сработать. Щас написал софтовый обмен с памятью - все ОК, но медленно блин... А как пытаюсь аппаратно - все виснет намертво. :(
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Re: Atmega128 + 64k RAM + CodeVisionAVR

Сообщение =DeaD= » 14 сен 2009, 01:17

ОЗУ не поспевает за мегой?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Atmega128 + 64k RAM + CodeVisionAVR

Сообщение blindman » 14 сен 2009, 01:19

ОЗУ какое? Тактовая частота процессора? Возможно, нужно ввести циклы ожидания
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Atmega128 + 64k RAM + CodeVisionAVR

Сообщение -= Александр =- » 14 сен 2009, 02:31

Озу 15наносекунд... Частота 16 МГц.
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Re: Atmega128 + 64k RAM + CodeVisionAVR

Сообщение blindman » 14 сен 2009, 02:34

Должно нормально работать. А покажи схемку? В ПДФ или картинкой. И код, как включаешь внешнюю память
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Atmega128 + 64k RAM + CodeVisionAVR

Сообщение -= Александр =- » 14 сен 2009, 03:48

Вот схема.
Программа стандартная сгенерена CodeVision...

Код: Выделить всё
// External SRAM page configuration:
//              -              / 0000h - FFFFh
// Lower page wait state(s): None
// Upper page wait state(s): 2r/w
MCUCR=0x80;
XMCRA=0x02;


Плюс еще в настройках компилера говорю что внешняя память есть.
Но как только прошиваю - все виснет намертво...

А вот это работает нормально:

Код: Выделить всё
void Write(unsigned int Adress, char Data)
{
  #asm("cli")
  DIR=0xFF;
  AD=*(char*)&Adress;
  ADR=*(char*)&Adress+1;
  PORTG|=0b100;
  PORTG&=~0b100;
  AD=Data;
  PORTG&=~0b001;
  #asm("nop")
  PORTG|=0b001;
  //AD=0;
  //ADR=0;
  DIR=0;
  #asm("sei")
}

char Read(char Adress)
{
  char data;
  #asm("cli")
  DIR=0xFF;
  AD=*(char*)&Adress;
  ADR=*(char*)&Adress+1;
  PORTG|=0b100;
  PORTG&=~0b100;
  DIR=0;
  PORTG&=~0b010;
  #asm("nop")
  data=DATAIN;
  PORTG|=0b010;
  #asm("sei")
  return data; 
}


Есть подозрение что микросхема-защелка адреса работает не так как надо. Надо HCT573, а у меня стоит 574. Но логика работы у них в таком режиме одинаковая. Завтра попробую 573ю.
Вложения
RAM.pdf
(19.19 КиБ) Скачиваний: 82
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Re: Atmega128 + 64k RAM + CodeVisionAVR

Сообщение blindman » 14 сен 2009, 04:26

Нифига не одинаковая. 574 защёлкивается по фронту, а 573 - по спаду. AVR выдает адрес при высоком уровне ALE, потом переводит его в низкий. У тебя в регистр записываются данные, которые остались на шине от предыдущей операции, а не адрес. С 574 надо инвертор ставить.

спать надо в полпятого, а не память подключать :)
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Atmega128 + 64k RAM + CodeVisionAVR

Сообщение -= Александр =- » 14 сен 2009, 14:00

Вот пятой точкой чуял что они разные. Даже просимулировал этот момнет, а Proteus гад обманул меня - там все одинаково работало... :oops: Пойду искать 573ю...
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Re: Atmega128 + 64k RAM + CodeVisionAVR

Сообщение galex1981 » 14 сен 2009, 14:35

С каждым днем все больше и больше ошибок у Proteus всплывает...
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Atmega128 + 64k RAM + CodeVisionAVR

Сообщение nest » 14 сен 2009, 14:55

а я вот вообще без защелки обошелся: (картинка кликабельна)
рулил ногами на асме.
ну это если ног хватает.

Изображение
Аватара пользователя
nest
 
Сообщения: 977
Зарегистрирован: 21 янв 2005, 12:16
Откуда: Germany
прог. языки: asm

Re: Atmega128 + 64k RAM + CodeVisionAVR

Сообщение -= Александр =- » 14 сен 2009, 17:42

Не, программно рулить даже на асме все равно не по-джедайски... :wink:
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Re: Atmega128 + 64k RAM + CodeVisionAVR

Сообщение Duhas » 21 сен 2009, 10:41

тэкс, я вот думаю о прикручивании памяти в Хмеге... только вот там ALE инверсные.. а все знакомые мне защелки 373\4 573\4 работают либо по фронту, либо по высокому уровню... а нужно бы по спаду...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Atmega128 + 64k RAM + CodeVisionAVR

Сообщение blindman » 21 сен 2009, 11:21

573 защёлкивается при низком уровне - как раз, то что нужно.
Вложения
Read_2ALE.png
573.png
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Atmega128 + 64k RAM + CodeVisionAVR

Сообщение Duhas » 21 сен 2009, 12:32

не защелкивается при низком, а разрешает выход.. 2 разных вещи )

2 рисунок 1 таблица LE Latch Enable.. Active HIGH
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14