nedoPC.org

Community of electronics hobbyists established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 22 Oct 2021 11:34



Reply to topic  [ 79 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next
NedoPC с CP/M на ATMega88 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Post 
HardWareMan wrote:
Поставь вот такую двухпортовую DRAM

Вроде как джентльмен решил от DRAM наоборот отвязаться и программу перепахал под это...
Ты ж сам говорил в новом "Спеце", что у СРАМ примерно 4-кратный запас по таймингам...

pwa75 wrote:
SPI юзает вывод на экран, поэтому его использовать нельзя.

Я может чего не понимаю... но ты имеешь ввиду аппаратный SPI в CPU, либо VPU, где выход на транзистор?

pwa75 wrote:
а вообще хотел вот так

Получается - по верхней схеме нехватает скорости у Меги, чтобы одновременно эмулить ВМ80 и ВГ75?
Как-то непонятно. Когда работает ПДП - ВМ80 и в оригинале не работает. У тебя там прерывания таймера
заведены под "циклы ПДП" и вывод через "ВГ75"?
Или ВМ80 не хватает со всем этим скорости заполнять "Видео-озу"?

------------------------------------------------------------------------------------------
Image
По поводу второй схемы - может я не прав и Мегу знаю не очень хорошо,
но я бы оставил СРАМ - как ты сделал, чтобы с ДРАМ не трахаться, да и
нет её у тебя наверняка, но подключение к шинам СРАМ я бы сделал совершенно
в параллель в обоих Мегах. И программно сделал бы вот как, раз уж мы
разделили ВМ80 и ВТ57/ВГ75: когда работает Мега=ВМ80, входы портов второй Меги=ВТ57/ВГ75
держим в 3-м состоянии или "на вход" чтобы не мешали. Когда пошел цикл
ПДП и вывода на экран - то по запросу ПДП, как у тебя на схеме, Мега=ВМ80
переходит портами в 3-е состояние или "на вход" чтобы не мешать и Мега=ВТ57/ВГ75
обращется к СРАМ самостоятельно. Возможно, с CS RD WR уточнить придётся...
Если они по спаду (низкий), то, мне кажется, надо их притянуть резюками к
плюсу - чтобы не было плавающего уровня, когда одна Мега отключилась от
СРАМ, а вторая - ещё не взяла управления...
С PIC так должно бы получиться - я не знаю, смогут ли так порты Меги.


07 Mar 2011 13:27
Profile
Novelist

Joined: 03 Mar 2011 12:51
Posts: 27
Location: Адлер
Reply with quote
Post 
Судя по поиску в efind.ru эту мелкосхему сложно найти, да и цена на нее уж больно кусачая от 630р за штуку.Пытаюсь делать проект который сможет повторить каждый.

Теперь по схеме. Изначально две меги были в параллель подключены к срам в параллель.Даже по плате это видно. Но чтото не получалось переводить мегу ВМ80 в 3е состояние. Всеравно чтото душило мегуВГ75. Чтения или вообще не было, или по шине данных читался один и тотже байт.
Quote:
Возможно, с CS RD WR уточнить придётся...

Вот помоему из за них проблема
В рк86 цикл пдп настроен так, что примерно на конце вывода всех восьми строк определенной строки был запрос на новую пачку байт для следующей строки. поэтому вм80 тормозился примерно каждую восьмую строку. В моем случае, когда все в одном флаконе, вывод на экран организован так. Каждую строку идет прерывание, и если строка не активная (ту которую не видно и т.д) то просто формируется строчный импульс и возврат. на это уходит примерно 20мкс, остальное время около 40мкс может работать эмуль вм80. но когда идет вывод активной строки, то вг 75 забирает около 50мкс времени , и эмулю ничего не остается. вот в этом все и тормоза.
Вот если это все разделить по разным процам то будет все супер.
а вобще по тв спецификациям 1строка это 64мкс , из них у нас 64*6=384 точки на 8мгц это 48мкс вот и думайте. Прерывание у меня настроено на 64мкс. В принципе запрос на смену данных у меня также делается каждую восьмую строку,поэтому при раздельных процах будет фактически полная эмуляция рк86

рс. А драмки у меня есть. Остались еще от старых симм модулей. Есть и 4х битные и 1но битные. Вот так


08 Mar 2011 11:28
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Post 
pwa75 wrote:
Но чтото не получалось переводить мегу ВМ80 в 3е состояние.

Мне трудно сказать про Мегу8515 - не работал с ней, только вчера даташит скачал,
но если нет 3-го состояния - на вход же можно перенастроить порты - это
тоже не будет мешать другой Меге.
pwa75 wrote:
Всеравно чтото душило мегуВГ75.

Ну это по месту смотреть надо - мегаВГ75 должна полностью сама работать
с памятью - и наоборот. Если они от одного задающего генератора, то проблем
не должно быть, мне так кажется.
Когда одна из Мег юзает память - вторая фактически должна быть от памяти
отключена.


08 Mar 2011 22:33
Profile
Novelist

Joined: 03 Mar 2011 12:51
Posts: 27
Location: Адлер
Reply with quote
Post 
Сегодня буду проверять эту теорию.сначала напишу маленький примерчик,который будет с портами работать .вечером отпишусь


09 Mar 2011 00:23
Profile
Novelist

Joined: 03 Mar 2011 12:51
Posts: 27
Location: Адлер
Reply with quote
Post 
Короче итог. Два процессора в параллель на одну срам не дружат.
Судя по в сему гадость идет по сигналу ALE. Все порты можно програмно перевести на вход, или в 3е состояние, а вот сигнал ALE нет. Он остается в низком уровне и не дает другому процу нормально общатся с памятью.Вывод один. или добавлять одну микросхему для програмного мультиплексирования сигнала ALE, или забросить эту систему с двумя процами к чертям :cry:. уже все это немножко бесить начинает


09 Mar 2011 12:25
Profile
Banned
User avatar

Joined: 20 Mar 2005 14:41
Posts: 2145
Location: От туда
Reply with quote
Post 
ЛОЛ. Чувак, судя по ДЩ ALE вырабатывается только при обращении к External RAM. Сложи их по ИЛИ и дело в шляпе (можно даже на диодах, но лучше все же элемент). Брутальный вариант: +1 латч. Но, ИМХО, не требуется.


09 Mar 2011 12:31
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Post 
HardWareMan wrote:
судя по ДЩ ALE вырабатывается только при обращении к External RAM. Сложи их по ИЛИ и дело в шляпе (можно даже на диодах,

Согласен. Но на диодах, похоже, не пойдёт для нулевого уровня ALE.
pwa75 wrote:
Он остается в низком уровне и не дает другому процу нормально общатся с памятью.

У него же вроде один ALE мешает другому? На диодах оно вроде так и
останется...
pwa75 - Не бросай! Тут пол-пинка осталось!


09 Mar 2011 14:44
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Post 
2_HardWareMan

У Меги XMEM - это аппаратный механизм.
Quote:
If the access is external, the XMEM interface will output address, data, and the control signals on the ports according to Figure 13 (this figure shows the wave forms without wait states). When ALE goes from high to low, there is a valid address on AD7:0. ALE is low during a data transfer. When the XMEM interface is enabled, also an internal access will cause activity on address-, data-, and ALE ports, but the /RD and /WR strobes will not toggle during internal access.

По ДШ оно так - но какого хера ALE у него после обращения в нуле торчит?
Ноль его - хрен подымешь в 1 так чтоб просто ...
чето тут додумать надо ...

pwa75 wrote:
Все порты можно програмно перевести на вход, или в 3е состояние, а вот сигнал ALE нет. Он остается в низком уровне и не дает другому процу нормально общатся с памятью.

Это потому что аппаратный XMEM не позволяет.
В PIC его нет, там всё "вручную" по пинам выставляется...

По ДШ получается, что одна Мега перестанет мешать другой при малых затратах по схемотехнике, если на этот момент в ней отключать XMEM
Quote:
The control bits for the External Memory Interface are located in three registers, the
MCU Control Register - MCUCR, the Extended MCU Control Register - EMCUCR, and
the Special Function IO Register - SFIOR.

или

Работа внешнего статического ОЗУ разрешается путем установки бита SRE в регистре MCUCR - вроде так...

В случае запрещения XMEM соответствующие порты становятся "нормальными" и их
можно переводить в 3-состояние или на ввод.
Если этот вариант не пройдёт - то городить далее схемный огород похоже смысла
действительно не имеет... :(


09 Mar 2011 16:11
Profile
Banned
User avatar

Joined: 20 Mar 2005 14:41
Posts: 2145
Location: От туда
Reply with quote
Post 
Напомню танкистам: ALE всегда выход и он не управляется программно. Здесь только смешивание двух сигналов по ИЛИ, или вешать еще одну защелку и управлять ихними ОЕ.


09 Mar 2011 21:50
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Post 
HardWareMan wrote:
Напомню танкистам: ALE всегда выход и он не управляется программно.

Я прочитал ДШ. А какого х... ALE застревает в нуле? Из ДШ этого вроде
как не следует. А отключить XMEM всё равно придётся:
pwa75 указывал - что адрес не меняется,а как ему меняться? Адресные шины
настроены на выход и в параллельном включении просто мешают друг другу,
если их как-то не отключать.
Каждая АТмега в режиме XMEM считает СРАМ аппаратно своей!


10 Mar 2011 06:26
Profile
Novelist

Joined: 03 Mar 2011 12:51
Posts: 27
Location: Адлер
Reply with quote
Post 
я делал все правильно, выключал внешнюю память через бит, все порты на вход, но как говорится не алё.
короче рассказываю. Действительно ale вырабатывается железно, и в 1 он прыгает только чтоб записать инфу в регистре. Я даже в ДШ нашол такую надпись, что даже при обращении к внутренней памяти на выводе ALE могут возникать несущественные всплески :o .
вот кусок из даты на НС573
When the latch-enable (LE) input is high, the Q outputs follow the data (D) inputs. When LE is low, the Q outputs
are latched at the logic levels of the D inputs.
значит так при 1 со входа идет на выход,при 0 зашелкивается. 0 там должен быть всегда, только положительный строб для записи. или я не прав ?
Ну так вот, начал я рисовать вот такую схему
Image
Но как всегда хорошая мысля приходит опосля , и я решил вот так
Image

а потом плюнул на все, и решил сделать програмное обращение к памяти.даже решил что так будет лучше,т.к. решается проблема чтения с нулевых адресов, что в моем случае очень существенно.
Image

завтра буду проверять,потом отпишусь[/b]


Last edited by pwa75 on 10 Mar 2011 11:59, edited 1 time in total.



10 Mar 2011 10:10
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Post 
pwa75 wrote:
завтра буду проверять,потом отпишусь

Ну тогда и обсудим, а то видишь, мне в ДШ даже не попалось, что
Quote:
даже при обращении к внутренней памяти на выводе ALE могут возникать несущественные всплески


Quote:
When the latch-enable (LE) input is high, the Q outputs follow the data (D) inputs. When LE is low, the Q outputs
are latched at the logic levels of the D inputs.

Ну он работает как типичный "прозрачный" регистр-защелка по твоему описанию. Жалко у него нет третьего уровня - а то бы им отключили...


10 Mar 2011 10:39
Profile
Banned
User avatar

Joined: 20 Mar 2005 14:41
Posts: 2145
Location: От туда
Reply with quote
Post 
ATMega8515.pdf, страница 23-24:
Quote:
When the XMEM interface is enabled, it will override the settings in the data direction registers corresponding to the ports dedicated to the interface. For details about this port override, see the alternate functions in section “I/O Ports” on page 56. The XMEM interface will auto-detect whether an access is internal or external. If the access is external, the XMEM interface will output address, data, and the control signals on the ports according to Figure 13 (this figure shows the wave forms without wait states). When ALE goes from high to low, there is a valid address on AD7:0. ALE is low during a data transfer. When the XMEM interface is enabled, also an internal access will cause activity on address-, data-, and ALE ports, but the RD and WR strobes will not toggle during internal access. When the External Memory Interface is disabled, the normal pin and data direction settings are used. Note that when the XMEM interface is disabled, the address space above the internal SRAM boundary is not mapped into the internal SRAM. Figure 12 illustrates how to connect an external SRAM to the AVR using an octal
latch (typically “74x573” or equivalent) which is transparent when G is high.

Так что, программный доступ действительно выход малой кровью. Главное, это арбитраж (у тебя же уже есть сигналы DRQ/DACK).


10 Mar 2011 11:33
Profile
Novelist

Joined: 03 Mar 2011 12:51
Posts: 27
Location: Адлер
Reply with quote
Post 
Кстати у НС573 есть вход ОЕ , он то и переводит этот регистр в 3е состояние. А арбитраж по любому будет, даже я скажу он уже есть. При обращении ВГ75 к памяти он устанавливает на выводе запрос ПДП, при котором ВМ80 по прерыванию отключается от памяти и переводит все выводы на вход.вот так
а про то что возникают всплески я вычитал из одной умной книжки на русском языке. Называется микроконтроллеры серии AVR .
Правда там описание было про AT908515

p.s поправил 2ю схему


10 Mar 2011 11:43
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Post 
pwa75 - тут вот какая мысль ещё... у тебя в одной Меге ВМ80 тормозил.
А где гарантия, что он сейчас быстрее заработает?
ВМ80 и ВГ75 вобщем-то не влияют на скорость друг друга. Только отбирают
доступ к памяти. Не случится так, что мы тут мучаемся-колбасимся а скорости
опять не хватит... Ты ж не поднимал тактовую Мегам?


10 Mar 2011 12:23
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 79 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next

Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  

Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.