| Микроконтролери и електроника 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 (свързано с предния въпрос)?? |
|
| Автор: | 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-битови половинки на се връзват заедно към младшата част на шината на процесора:
при което шината отново трябва да вържеш: А1 на процесора, А0 на паметта, и т.н. Адреса А0 с права логика отива на LB, и с инверсна логика - на UB всички останали сигнали се връзват нормално. Т.е. при това връзване отива 1 инвертор |
||||||||||
| Автор: | velio [ Чет Авг 17, 2006 10:23 am ] |
| Заглавие: | |
Абе знаех си аз че не е проста работа... Да видим дали съм разбрал. Идеята е да се ползва памет с 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 ] | |||||||||
| Заглавие: | ||||||||||
Точно същото си мислех и аз. Дори съм го сложил на схемата вече. Ще прекарам управляващите сигнали през него, а съм сигурен че ще се използва цялото - има какво да се сложи вътре... Ако объркам нещо - лесно се променя - не е като нова ревизия на платка... Производителност се гони, още повече че ще ползвам не толкова бърза памет - 55 или 70ns, тъй че 16 бит са задължителни в моя случай... Ок, действам, пък като възникнат въпроси пак ще питам 10х |
||||||||||
| Автор: | 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) се чете следното. Кое е вярното???
|
|||
| Автор: | 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 ] |
| Заглавие: | |
Идея си нямам. Тука имаме три платки и на трите джъмпера не е сложен (т.е. има го но само на едното краче). Много се дразня на такива решения - дето уж имат смисъл, но само при всяко трето пълнолуние, и то ако се пада в петък... |
|
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|