Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

STR710 EMI - обърках се...
http://mcu-bg.com/mcu_site/viewtopic.php?f=2&t=2774
Страница 1 от 2

Автор:  velio [ Сря Авг 16, 2006 4:44 pm ]
Заглавие:  STR710 EMI - обърках се...

Не мога да разбера различните конфигурации на този модул. А0 доколкото разбирам не се ползва при 16 битова памет??? За какъв дявол са обаче два /WE... Ако ползвам например K6X4016T3F /LB и /UB къде да ги дяна??? Има ли режим в който въпреки че е 16бит паметта се чете на два пъти по 8 (свързано с предния въпрос)?? :? :oops: :roll:

Автор:  Balkana [ Сря Авг 16, 2006 8:42 pm ]
Заглавие: 

Значи положението е следното:

двата WE са необходими за да може шината да различава байтови операции по младшия и старшия байт при запис, защото запис на половинката дума трябва да не съсипва другата половина. При четене строба е един, а процесора сам игнорира частта която не го интересува.

Паметта която искаш да свържеш не става да се върже директно без логика - тя има отделни enable за всяка своя половина, които сработват като разрешение и при четене и при запис.

За да свържеш паметта коректно се налага да се направи логика с неизползвания адрес А0, и всичките останали сигнали за управление на паметта: WE0, WE1 и RD, от които да изработиш LB и UB. Ако не гониш бързодействие от РАМ-а който привързваш, най-лесно е както казваш да се включи 8-битов РАМ, и чип-селекта, който го избира, да се конфигурира в 8-битов режим. В този случай, минаваш без никаква междинна логика. Недостатъка е че при 32-битова операция с паметта (най-честия случай, понеже сметалцето е 32-битово) шината ще прави 4 последователни цикъла, с прилежащите им waitstates; при 16 битова операция - съответно 2 последователни цикъла.


16-битова памет на 2 х 8 може да работи по следния начин:
например долната спомената от тебе памет - 2-те 8-битови половинки на се връзват заедно към младшата част на шината на процесора:

Код:
Процесор  Памет-младша  Памет-Старша
D0        D0            D8
D1        D1            D9
D2        D2            D10

и т.н.


при което шината отново трябва да вържеш: А1 на процесора, А0 на паметта, и т.н.

Адреса А0 с права логика отива на LB, и с инверсна логика - на UB

всички останали сигнали се връзват нормално. Т.е. при това връзване отива 1 инвертор

Автор:  velio [ Чет Авг 17, 2006 10:23 am ]
Заглавие: 

Абе знаех си аз че не е проста работа... :x

Да видим дали съм разбрал.
Идеята е да се ползва памет с 16 битова шина за да бъде по-бърз трансфера. Обаче трябва да се направи така, че да е възможно маскирането на младшия и старшия байт, защото има и побайтови операции??

Гледах схемата на развойната платка. Там проблема е решен просто - ползвали са две 8 битови памети, всяка свързана към собствен /WE. Обаче освен че заема повече място, е и по-скъпо.
На други платки наистина съм виждал 16 битова памет + допълнителна логика...

Няма ли някъде по-подробно описание на тоя блок (поне времедиаграми на различните случаи - тези в мануала на STR710 май не изчерпват въпроса) или трябва да се чете в дебелите книжки за АРМ? Мисля че схванах "сюжета" ама все пак...

Автор:  Balkana [ Чет Авг 17, 2006 8:39 pm ]
Заглавие: 

Точно тъй, така е - 16-битова за производителност. Разделните WE са точно заради това - защото софтуера може да иска и има пълното право да модифицира само 1 байт от 16-битовата полудума.

По подробно описание мисля няма да намериш. Поне аз не чувствам нужда от повече информация от текста и няколкото времедиаграми в user manual-а.

Ако трябва, обаждай да помагам още. Тъй или иначе и аз съм взел 16-битова бърза памет, и се каня да я вържа към туй чудо, и мисля да поставя между паметта и процесора едно CPLD - например XC9536XL - струва около 1$ и не оскъпява кой-знае колко. Би могъл да използваш и SMD едногейтови елементи за логиката, тъй като тя е проста. Все пак, ако гониш производителност, добре е да се върже на 16-те бита; тъй или иначе шината работи с поне +1 допълнителен цикъл чакане при четене (user manual-a на страница 25).

Автор:  velio [ Пет Авг 18, 2006 9:47 am ]
Заглавие: 

Цитат:
и мисля да поставя между паметта и процесора едно CPLD - например XC9536XL


Точно същото си мислех и аз. Дори съм го сложил на схемата вече. Ще прекарам управляващите сигнали през него, а съм сигурен че ще се използва цялото - има какво да се сложи вътре... Ако объркам нещо - лесно се променя - не е като нова ревизия на платка...
Производителност се гони, още повече че ще ползвам не толкова бърза памет - 55 или 70ns, тъй че 16 бит са задължителни в моя случай...

Ок, действам, пък като възникнат въпроси пак ще питам
10х

Автор:  velio [ Сря Авг 23, 2006 12:39 pm ]
Заглавие: 

Пиша тук, за да не отварям нова тема.
В схемата на JTAG-a има следната простотия (на картинката). Изобщо на виждам смисъла й....

Прикачени файлове:
jtg.gif
jtg.gif [ 14.26 KiB | Прегледано 3060 пъти ]

Автор:  Nikola Kirov [ Сря Авг 23, 2006 12:55 pm ]
Заглавие: 

Може да си го реализираш както си искаш,важното е когато ти слезе ресета в 0 да ти слезе в 0 и /JRST.
Но имай пред вид че R92 i C79 ти дават закъснеие. тоест JRST ще се активира по късно. а при деактивирането ще слязат в 0 почти едновременно защото транзистора разрежда C79 веданага. В вериагата намаш токоограничаващ резистор.

Автор:  Balkana [ Сря Авг 23, 2006 7:15 pm ]
Заглавие: 

И аз се чудех върху таз верига; в края на краищата я повторих така както е дадена, предполагам че е зор за синхронизация на TRST и RST. с транзистори SMD не заема място. Моя съвет е да си я поставиш както я дават, иначе може да загубиш дебъгването.

Автор:  Nikola Kirov [ Сря Авг 23, 2006 8:00 pm ]
Заглавие: 

Споко,не е капризно. На моята платка за експеримента махах T1 и на мястото на колектора му връзвах един диод към ресета. Съвсем нормално се дебъгваше.
Най удачно решение за случая мисля че е един P-N-P транзистор емитера на който да е където сега е колектора на Т2/JRST/,базата директно на RESET а колектора на маса. C79 за този случай трабва да го направиш 15 или 22 nF.
3 резистора и един транзистор по малко от оригиналното решение.

Автор:  velio [ Чет Авг 24, 2006 12:33 pm ]
Заглавие: 

Аве гледам тука пише, че /CS0 е 16bit access only. Това значи ли че не може да се пише побайтово (/we0 /we1 и 16 бит памет) или просто че може да се връзва само 16 бит памети?

Автор:  velio [ Чет Авг 24, 2006 1:31 pm ]
Заглавие: 

В продължение на темата за JTAG-a, на едно друго място (STR71x Hardware Development - Getting Started.pdf) се чете следното.

Кое е вярното???

Прикачени файлове:
Коментар на файл: Notes:
1. In order for JTAG and Chip Reset to be synchronized the J4 jumper must be fitted.

jtg1.gif
jtg1.gif [ 27.83 KiB | Прегледано 3077 пъти ]

Автор:  Nikola Kirov [ Чет Авг 24, 2006 1:43 pm ]
Заглавие: 

Кое те притеснява тук

Автор:  velio [ Чет Авг 24, 2006 4:09 pm ]
Заглавие: 

Всъщност ми се струва че това второто е по вярно.
При първото винаги има връзка между двата ресета. При второто - само като се тури джъмпера.

Автор:  Nikola Kirov [ Чет Авг 24, 2006 4:20 pm ]
Заглавие: 

Да втората е по удачна.

Кога ще ти се наложи да го махаш тоя джъмпер? Аз поне не видях причина да го слагам и на моята платка тази верига си е постоянно включена.

Автор:  velio [ Чет Авг 24, 2006 4:33 pm ]
Заглавие: 

Идея си нямам. Тука имаме три платки и на трите джъмпера не е сложен (т.е. има го но само на едното краче).
Много се дразня на такива решения - дето уж имат смисъл, но само при всяко трето пълнолуние, и то ако се пада в петък... :evil:

Страница 1 от 2 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/