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

Mar 10, 2006 2 Replies

сегодня наконец впаял 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


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

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

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

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

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

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

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required