проблемы с одновременной работой XRAM и UART

сегодня наконец впаял 32К внешней памяти, железка полностью готова, можно приступать к написанию встроенного Форта

сейчас бьюсь с проблемой -- не могу заставить одновременно работать UART и XRAM, вот исходник, может кто поможет:

; test UART output

;.include "/mega8515.def" .include "8515def.inc"

.equ MCUCR8515 = $55 .equ XRAMADDR = $FFFC

; enable XRAM

lds r20,MCUCR8515 ori r20,$80 sts MCUCR8515,r20

; set UART 115200 8N1

ldi r20,0b00001000 ; \ UCR=xxxRTxxx out UCR,r20 ; / ldi r20,8 ; \ UART.speed=115200 out UBRR,r20 ; /

zzz:

lds r20,XRAMADDR ; \ read & incr XRAM inc r20 sts XRAMADDR,r20 ; /

wait: ; \ for (;!UART.ready;); sbis USR,UDRE rjmp wait ; / out UDR,r20 ; UART.send = r20

rjmp zzz

программа начинает нормально работать или при установке XRAMADDR на встроенную память (при этом внешняя память не используется), или если закомментировать строку out UDR,r20 (при этом внешняя шина начинает работать)

ощущение, что в контроллере как-то связаны выводы RD, WR и TxD

Reply to
Dmitry Ponyatov
Loading thread data ...

Пpивет Dmitry! Dmitry Ponyatov --> All ( Fri Mar 10 2034, 21:34 )

DP> сегодня наконец впаял 32К внешней памяти, железка полностью DP> готова, можно приступать к написанию встроенного Форта

А поподpобнее можно?

-= Брест. Павел Гришин =-

... Слон - это муха, сделанная на тpанзистоpах

Reply to
Pavel Grishin

DP> сегодня наконец впаял 32К внешней памяти, железка полностью DP> готова, можно приступать к написанию встроенного Форта

PG> А поподpобнее можно?

ATmega8515-16PI, кварц на 16 МГц, MAX232CPE, 74HC573N, UT62256CPC, 74HC04 на включение банки памяти в адреса 0x0000..7F00

внутри собираюсь сделать интерпретатор на базе стековой форт-машины, подробное описание в

formatting link

память виртульной машины в массиве, код и данные в одной куче, три стека (данных, возвратов для команд call/ret, и циклов со счетчиком)

из памяти по указателю Ip выбирается опкод команды

assert(Ip<Msz); op=M[Ip++]

и по этому опкоду запускается функция, которую можно назвать сишным микрокодом команды

большая часть команд состоят только из одного байтового опкода, некоторые -- с

16-битным параметром, есть еще префикс строки со счетчиком (первый байт данных

-- длина строки)

вся целочисленная арифметика и передача параметров между функциями (в Форте обзываются "слово") выполняется через стек данных, для адресов возвратов из вложенных вызовов используется отдельный специализированный стек

мелкие графические демки лежат на

formatting link

Reply to
Dmitry Ponyatov

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.