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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Внешняя SRAM, Выбор скорости
defunct
сообщение Nov 25 2006, 02:34
Сообщение #16


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(=GM= @ Nov 24 2006, 16:55) *
Зато он противоречит вашей рекомендации для 55-ти нс памяти (см. пост №2).

Да, потому что тайминг Tdvrh = 40ns, который вы взяли из даташита соответствует частоте тактирования 8Mhz. Мы же речь ведем о 16Mhz, т.о. длительность Tdvrh будет в два раза меньше, т.е. 20ns, что годится для 55ns памяти.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Nov 26 2006, 13:49
Сообщение #17


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(defunct @ Nov 24 2006, 23:34) *
Цитата(=GM= @ Nov 24 2006, 16:55) *

Зато он противоречит вашей рекомендации для 55-ти нс памяти (см. пост №2).

Да, потому что тайминг Tdvrh = 40ns, который вы взяли из даташита соответствует частоте тактирования 8Mhz. Мы же речь ведем о 16Mhz, т.о. длительность Tdvrh будет в два раза меньше, т.е. 20ns, что годится для 55ns памяти.

Странно, но в дейташите Tdvrh = 40ns как для 8 МГц, так и для 16 МГц, возможно вы посмотрели не в ту графу таблицы. Но даже если бы Tdvrh=20 нс, то это не поможет, поскольку минимальная длительность импульса записи RD равна 52.5 нс, а 55-ти наносекундная память обеспечивает выдачу стабильных данных через 35 нс, т.е. минимальная длительность RD должна быть 35+20=55 нс.
Возможно, что отдельные экземпляры памяти и МК как-то будут работать, но мы же говорим о соответствии спецификации (по-нашему - техническим условиям) на МК и SRAM, чтобы обеспечить работу системы в любых допустимых условиях эксплуатации.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 27 2006, 14:02
Сообщение #18


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(=GM= @ Nov 26 2006, 13:49) *
Но даже если бы Tdvrh=20 нс, то это не поможет, поскольку минимальная длительность импульса записи RD равна 52.5 нс, а 55-ти наносекундная память обеспечивает выдачу стабильных данных через 35 нс, т.е. минимальная длительность RD должна быть 35+20=55 нс.
Возможно, что отдельные экземпляры памяти и МК как-то будут работать, но мы же говорим о соответствии спецификации (по-нашему - техническим условиям) на МК и SRAM, чтобы обеспечить работу системы в любых допустимых условиях эксплуатации.

Output Enable to Output Valid 35ns это опять же время для 70ns памяти.

У 55ns памяти это время чуть-чуть меньше. Например у памяти Winbond W24258-55LL парамер Output Enable to Output Valid = 27ns,

27ns+20ns = 47ns

итого имеем даже запас:
52.125ns-47ns = 5.125ns
Go to the top of the page
 
+Quote Post
=GM=
сообщение Nov 27 2006, 17:41
Сообщение #19


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(defunct @ Nov 27 2006, 11:02) *
Цитата(=GM= @ Nov 26 2006, 13:49) *

Но даже если бы Tdvrh=20 нс, то это не поможет, поскольку минимальная длительность импульса записи RD равна 52.5 нс, а 55-ти наносекундная память обеспечивает выдачу стабильных данных через 35 нс, т.е. минимальная длительность RD должна быть 35+20=55 нс.
Возможно, что отдельные экземпляры памяти и МК как-то будут работать, но мы же говорим о соответствии спецификации (по-нашему - техническим условиям) на МК и SRAM, чтобы обеспечить работу системы в любых допустимых условиях эксплуатации.

Output Enable to Output Valid 35ns это опять же время для 70ns памяти.
У 55ns памяти это время чуть-чуть меньше. Например у памяти Winbond W24258-55LL парамер Output Enable to Output Valid = 27ns, 27ns+20ns = 47ns
итого имеем даже запас: 52.125ns-47ns = 5.125ns

Насчет 27 нс понятно, вначале вроде упоминалась W24257, а не W24258.

Тем не менее, запаса нет, вы принимаете Tdvrh равным 20 нс, а на самом деле Tdvrh=40 нс, следовательно, импульс чтения не может быть меньше, чем 27+40=67 нс.
Не поленился, скачал свежий документ doc2467.pdf (10/06, ver.O). Проверьте сами, Tdvrh=40 нс для 16 МГц, с.331, таблица 137, строка 9.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Spider
сообщение Jan 30 2007, 15:00
Сообщение #20


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



ребят, не пинайте больно если что не так, но у меня ничего не работает smile.gif Есть ATMega128 и есть 2 диповых памяти выколупанных из старой i386 мамки, в частности MOSEL MS62256H-20NC. Всё это дело я присобачил к меге через защёлку 74ACT573PC и транзистор RK7002 в качестве ивертора CS второй "страницы" памяти.
Пробую писать в память и ничего не пишеться - JTAGом смотрю что там в памяти с помощью той же меги.
Инициализирую работу пробовал так:
Код
MCUCR |= _BV(SRE) | _BV(SRW10);    // enable external memory (xram)
    XMCRA |= _BV(SRW01) | _BV(SRW00) | _BV(SRW11) | _BV(SRW10);
    XMCRB &= ~(_BV(XMM2) | _BV(XMM1) | _BV(XMM0));
дабы увеличить все задержки, но так же пробовал и максимально быстро, короче как тока не пробовал. Что я не так сдела можете подсказать? Ах да. Мега работает с кварцем 18.432MHz
Go to the top of the page
 
+Quote Post
defunct
сообщение Jan 30 2007, 15:42
Сообщение #21


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Alexey Belyaev @ Jan 30 2007, 14:00) *
Есть ATMega128 и есть 2 диповых памяти выколупанных из старой i386 мамки, в частности MOSEL MS62256H-20NC.

Задержек определенно не надо.

Наиболее вероятно - ошибка в разводке..
Проверить наличие сигналов RD/WR
Проверить также сигнал ALE на входе LE защелки.
CS защелки - на землю.

Цитата
Ах да. Мега работает с кварцем 18.432MHz

не расчитана она на такую частоту.

Цитата
74ACT573PC

ACT серия часом не 3V? Mega с кварцем 18.432 на 3V будет сбоить.
Go to the top of the page
 
+Quote Post
Spider
сообщение Jan 31 2007, 13:06
Сообщение #22


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



Цитата(defunct @ Jan 30 2007, 18:42) *
Цитата(Alexey Belyaev @ Jan 30 2007, 14:00) *

Есть ATMega128 и есть 2 диповых памяти выколупанных из старой i386 мамки, в частности MOSEL MS62256H-20NC.

Задержек определенно не надо.

Наиболее вероятно - ошибка в разводке..
Проверить наличие сигналов RD/WR
Проверить также сигнал ALE на входе LE защелки.
CS защелки - на землю.

Цитата
Ах да. Мега работает с кварцем 18.432MHz

не расчитана она на такую частоту.

Цитата
74ACT573PC

ACT серия часом не 3V? Mega с кварцем 18.432 на 3V будет сбоить.

Всё решено, спасибо за помощь. Защёлка оказалась дохлой. Купил новую всё заработало.
Go to the top of the page
 
+Quote Post
I_AM_WINER
сообщение Jan 31 2007, 22:55
Сообщение #23





Группа: Новичок
Сообщений: 4
Регистрация: 31-01-07
Пользователь №: 24 916



Реально пользуем память 55 нс с полным временем 3 цикла (16/3 = 5,33 Мгц)
По datasheet рассчитывать временные параметры далеко не подарок.
Даже Samsung 55 нс память со скрипом пролазит по временным характеристикам.


А 20МГц ATMEGA с внешней памятью в природе существуют?

Сообщение отредактировал I_AM_WINER - Jan 31 2007, 22:58
Go to the top of the page
 
+Quote Post
Spider
сообщение Feb 2 2007, 06:52
Сообщение #24


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



Цитата(I_AM_WINER @ Feb 1 2007, 01:55) *
А 20МГц ATMEGA с внешней памятью в природе существуют?

Ну у меня и АТМЕга128-16 на ура с 20Мгц пашет. Да это не правильно, но пашет ведь smile.gif
Go to the top of the page
 
+Quote Post
Spider
сообщение Mar 10 2007, 16:41
Сообщение #25


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



В общем проблема у меня. Ресетится устройство. Понятно что из-за переполнения. Вот что у меня после компилдяции:
Код
AVR Memory Usage
----------------
Device: atmega128

Program:   42940 bytes (32.8% Full)
(.text + .data + .bootloader)

Data:       5282 bytes (129.0% Full)
(.data + .bss + .noinit)

EEPROM:       66 bytes (1.6% Full)
(.eeprom)

Build succeeded with 0 Warnings...

Линкуется вот так:
Код
avr-gcc.exe -mmcu=atmega128 -Wl,-u,vfprintf -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff  -Wl,-Map=ppp.map at.o common.o fcs.o icmp.o ip.o main.o ppp.o tcp.o udp.o mmc.o logger.o time.o lcd.o ff.o    -lprintf_flt -lm  -o ppp.elf

имею внешнюю оперативку в размере 64к.
Делаю тест вот так:
Код
u16 SRAM_Test(void)
{
    unsigned short j;

    Reset_WD();

    for (j = 0; j < RAM_SIZE; j++) {
        _SFR_MEM8(j + EXT_MEM_START) = (unsigned char)(j);
        Reset_WD();
    }
    for (j = 0; j < RAM_SIZE; j++)
    {
        if (_SFR_MEM8(j + EXT_MEM_START) != (unsigned char)(j)) return j;
        Reset_WD();
    }

   return 0xffff;            // past it's test
}

В JTAG вижу, что в память всё пишеться и наверное даже читается ибо тест проходит.
Но блин когда начинаются обращения из кода типа:
Код
T_PPP            PPP;
....
memcpy_P((char*)&PPP.OUR_IP.ip32, OurIP, 4);
....

рано или поздно оно ресетится.
Помогите победить! ХЕЛП!
Go to the top of the page
 
+Quote Post
aesok
сообщение Mar 10 2007, 17:41
Сообщение #26


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(Alexey Belyaev @ Mar 10 2007, 16:41) *
Линкуется вот так:
Код
avr-gcc.exe -mmcu=atmega128 -Wl,-u,vfprintf -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff  -Wl,-Map=ppp.map at.o common.o fcs.o icmp.o ip.o main.o ppp.o tcp.o udp.o mmc.o logger.o time.o lcd.o ff.o    -lprintf_flt -lm  -o ppp.elf


Какая версия avr-ld? Или WinAVR?

Вместо "-Tdata=0x801100" попробуйте использовать "--section-start,.data=0x801100". И проверте в .map файле в каких адресах расположена секция .data

Анатолий.
Go to the top of the page
 
+Quote Post
zorromen
сообщение Mar 11 2007, 11:51
Сообщение #27


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 13-12-05
Пользователь №: 12 147



Привет...Вот собрал макет на меге162 16 МГц ... память взял с матери ... кеш бывший .. мне эти микросхемы отпаяли феном ... защелка 74НС573В1 ... память UM61256CK-20 ... короче 20 нс ... Это я уже 3 раз собираю этот макет ... раньше собирал на 70 нс ... Ни разу нормально неработала ни тада ни сейчас ... написал тестер памяти так постоянно вылетают ошибки ... причем каждый раз в разных местах ... уже все перепробывал всякие параметры использовал ...нехочет работать без ошибок ... Прозвонил все ... и смотрел осцилографом ... нормальные фронта ...
Сразу напрашивается пара вопросов...
1) Мож битая мега ...
2) Почему в студии в окошке мемори не показывает, то что я пишу во внешнее ОЗУ ...
3) Почему в студии не отображаются Static переменные ...
Go to the top of the page
 
+Quote Post
zorromen
сообщение Mar 12 2007, 11:41
Сообщение #28


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 13-12-05
Пользователь №: 12 147



Вчера решил проверить осциллографом сигналы ... выдрал буфер с памятью ... смотрюю сигналы есть там где они быть немогут 12..19 ноги буфера ... сигнал але там ... аказалось я позавчера все перепаял с флюсом БЛИЦ 18 рублей ... такой как мед и пахнет также))) ... Он аказывается токопроводящим ... зараза ... мне все и портил ... пришлось все смывать получше ... А ваще какой флюс брать нетокопроводящий?
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Mar 12 2007, 12:14
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(zorromen @ Mar 12 2007, 12:41) *
Вчера решил проверить осциллографом сигналы ... выдрал буфер с памятью ... смотрюю сигналы есть там где они быть немогут 12..19 ноги буфера ... сигнал але там ... аказалось я позавчера все перепаял с флюсом БЛИЦ 18 рублей ... такой как мед и пахнет также))) ... Он аказывается токопроводящим ... зараза ... мне все и портил ... пришлось все смывать получше ... А ваще какой флюс брать нетокопроводящий?


На точке опоры была такая ветка. Обсуждалось всё. smile.gif Мы тоже "новым флюсом" воспользовались. smile.gif Потом переделывали. И, что характерно этим флюсом меги8 паялись только в путь уже год. А как применили м2560 с ногами 0.5мм, то - не работает. Используем обычный канифольный. Там вообще по требованиям специальный нужен, - 20$ за 50г. Но, понятно, таких денег жалко.
Go to the top of the page
 
+Quote Post
Spider
сообщение Mar 13 2007, 05:27
Сообщение #30


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



Вот что видно в мапе:
Код
Memory Configuration

Name             Origin             Length             Attributes
text             0x00000000         0x00020000         xr
data             0x00800060         0x0000ffa0         rw !x
eeprom           0x00810000         0x00010000         rw !x
*default*        0x00000000         0xffffffff

Linker script and memory map

Address of section .data set to 0x800100
LOAD C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm128.o
                0x0080ffff                __heap_end = 0x80ffff


И ещё далее по тексту вот так:
Код
.data           0x00800100       0xcc load address 0x0000a6f0
                0x00800100                PROVIDE (__data_start, .)
*(.data)
.data          0x00800100        0xc at.o
.data          0x0080010c       0x1a common.o
                0x00800110                MainBufferWr_Rx
                0x0080010c                rtc
.data          0x00800126       0x48 main.o
.data          0x0080016e       0x20 ppp.o
.data          0x0080018e        0x2 tcp.o
                0x0080018e                TCP_Socket
.data          0x00800190        0x1 mmc.o
.data          0x00800191       0x2d logger.o
.data          0x008001be        0xa ff.o
.data          0x008001c8        0x4 C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(rand.o)
*(.gnu.linkonce.d*)
                0x008001cc                . = ALIGN (0x2)
                0x008001cc                _edata = .
                0x008001cc                PROVIDE (__data_end, .)

.bss            0x008001cc     0x13d6
                0x008001cc                PROVIDE (__bss_start, .)
*(.bss)
.bss           0x008001cc        0xc common.o
                0x008001d5                TimerIntCounter
                0x008001cd                UART0_RxBufferRd
                0x008001cf                UART1_RxBufferRd
                0x008001ce                UART0_RxBufferWr
                0x008001d7                LastResetReason
                0x008001d1                MainBufferWr_Tx
                0x008001d3                MainBufferRd_Rx
                0x008001cc                GPSModeSet
                0x008001d0                UART1_RxBufferWr
                0x008001d6                WatchdogCounter
.bss           0x008001d8        0x2 icmp.o
                0x008001d8                ICMP_Header
.bss           0x008001da        0x4 ppp.o
                0x008001da                CodeHeader
                0x008001dc                PPPHeader
.bss           0x008001de        0x4 tcp.o
                0x008001e0                TCP_TmpPort
                0x008001de                TCP_Header
.bss           0x008001e2        0x2 udp.o
                0x008001e2                UDP_Header
.bss           0x008001e4        0x2 mmc.o
.bss           0x008001e6      0x899 logger.o
.bss           0x00800a7f        0xc time.o
.bss           0x00800a8b        0x4 ff.o
*(COMMON)
COMMON         0x00800a8f        0x5 at.o
                0x00800a8f                AT
COMMON         0x00800a94      0x642 common.o
....


Что скажете? ХЕЛП!
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 13:11
Рейтинг@Mail.ru


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