Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: UART Мультикор`a
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
Daedal07
Уважаемые разработчики! Столкнулся с проблемой при попытке запуска UART`a в посимвольном режиме. В регистре-конфигураторе не выставляется бит посимвольного режима, держится бит "режим FIFO". Пробую запустить так. Настраиваю предделитель из 80 МГц и получаю 8 МГц на делитель, далее довожу до 9600 Бод. Разрешаю прерывание при опустошении передающего регистра, и оно "замирает" навсегда! При попытке записать в регистр слово-в нём оно не отображается,флаг прерывания не сбрасывается. На ПК я ничего,конечно же, не вижу...Кто сталкивался с подобным? 07.gif
729
Цитата(Пётр Толкачёв @ Jun 25 2008, 10:36) *
Уважаемые разработчики! Столкнулся с проблемой при попытке запуска UART`a в посимвольном режиме. В регистре-конфигураторе не выставляется бит посимвольного режима, держится бит "режим FIFO". Пробую запустить так. Настраиваю предделитель из 80 МГц и получаю 8 МГц на делитель, далее довожу до 9600 Бод. Разрешаю прерывание при опустошении передающего регистра, и оно "замирает" навсегда! При попытке записать в регистр слово-в нём оно не отображается,флаг прерывания не сбрасывается. На ПК я ничего,конечно же, не вижу...Кто сталкивался с подобным? 07.gif

Если можно, то поподробнее напишите, пожалуйста, какие коды в какие регистры записываются (в том числе и разрешения прерывания).
Обработчик прерывания собственный, как я думаю, ибо в "фирменном" ПО его просто нет, хоть и декларирован. Вы его хорошо отладили?
Daedal07
Цитата(729 @ Jun 25 2008, 14:19) *
Если можно, то поподробнее напишите, пожалуйста, какие коды в какие регистры записываются (в том числе и разрешения прерывания).
Обработчик прерывания собственный, как я думаю, ибо в "фирменном" ПО его просто нет, хоть и декларирован. Вы его хорошо отладили?

Код в качестве примера,по-этому особого прикладного смысла не имеет.Обработчик прерывания не привожу-он лишь возвращает режим user в Status`e и отправляет на метку "sendData",раз в 10 символов и на "circle_". 05.gif
"
.text
lui $2,0xb82f
li $3,0x10081 # clock=8x10MHz
sw $3,0x4008($2)# to CSR
li $3,0x10
sw $3,0x4000($2) # UART MASKR
li $8,0xa001
li $3,9
sw $3,0x3014($2) # SCLR - предделител.частота с 80 до 8 МГц
li $3,0x80
sw $3,0x300c($2) # LCR - разрешаю доступ с регистрам DLL и DLM
li $3,0x34
sw $3,0x3000($2) # DLL - делитель равен 52-из таблицы мануала,для получения 9600бод
sw $0,0x300c($2) # LCR - разрешаю доступ к THR и iER
li $3,2
sw $3,0x3004($2) # iER - прерывание по отсутствию данных в передающем регистре THR
sw $0,0x3008($2) # !попытка выставить посимвольный режим.Флаг "режим FIFO" не сбрасывается.
#----------------------
li $7,0x60
circle_:
li $10,10
la $4,toPC
sendData:
lb $5,($4)
sb $5,0x3000($2) # загрузка байта в THR
mtc0 $8,$12 # разрешаем прерывания после загрузки байта и непустом THR
waitTransmitt:
lb $6,0x3014($2) # смотрим LSR, флаг THRE и TEMT.
andi $6,0x60
bne $6,$7,waitTransmitt # если они не выставлены-передатчик не пуст.Ждём,опрашивая циклично.
nop
addi $4,$4,4
addi $10,-1
bne $10,$0,sendData
nop
j circle_
.data
toPC:
.word 0,1,2,3,4,5,6,7,8,9


Картинки с регистрами в режиме эмуляции в студии приложить не могу-полетела плата 0226-EM(1892ВМ5Я). У Вас при работе с отладочником конвертер питания с 3,3В на 2,5В из стоя не выходил?
З.Ы.У Вас примерчиков не найдётся на UART(на С или asm),так,чтобы для компа софтина какая была написана на приём/передачу? Пока разбираюсь только,на примере быстрее бы получилось.. help.gif
729
Цитата(Пётр Толкачёв @ Jun 30 2008, 23:08) *

Написал Вам в личку.
Stas
Цитата(Пётр Толкачёв @ Jul 1 2008, 01:08) *
Картинки с регистрами в режиме эмуляции в студии приложить не могу-полетела плата 0226-EM(1892ВМ5Я). У Вас при работе с отладочником конвертер питания с 3,3В на 2,5В из стоя не выходил?
З.Ы.У Вас примерчиков не найдётся на UART(на С или asm),так,чтобы для компа софтина какая была написана на приём/передачу? Пока разбираюсь только,на примере быстрее бы получилось.. help.gif


А Вы смотрели какие пульсации идут по питанию на этой плате при полной загрузке процессора (~1 В !!), время нарастания фронта питания? На моей плате еще качество пайки стабилизаторов изумительное, видимо школьников на сборку нанимают. Я сразу заменил стабилизаторы напряжений питания...

А зачем к плате цеплять отладчик - он там на Xilinx'e сделан. А разъем с подписями - это видимо для фирменного контроля, смотрите схему... У нас тоже был сооблазн туда отладчик зацепить.
Daedal07
Цитата(Stas @ Jul 2 2008, 12:51) *
А Вы смотрели какие пульсации идут по питанию на этой плате при полной загрузке процессора (~1 В !!), время нарастания фронта питания? На моей плате еще качество пайки стабилизаторов изумительное, видимо школьников на сборку нанимают. Я сразу заменил стабилизаторы напряжений питания...

А зачем к плате цеплять отладчик - он там на Xilinx'e сделан. А разъем с подписями - это видимо для фирменного контроля, смотрите схему... У нас тоже был сооблазн туда отладчик зацепить.


При полной нагрузке не смотрел,не нагружал просто я его полностью,но верю,что не всё гладко там.. 07.gif по поводу замены стабилизаторов-идея конечно хорошая,но пока не рискнул,плата на гарантии,при наличии на складе-обменяют. По поводу "отладчик"а-имелось ввиду отладочная плата-я называю "отладочником" её. А Вы,как я понял, про JTAG.Его я тоже,конечно, цеплял,проверял его работоспособность.Работал,если конечно перемычку,которая рядом с ПЛИСиной снять. smile.gif Знаю, что встроенный JTAG на плате есть.Внешний пригодится,когда свою плату сделают.На схему уже смотреть не могу.. smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.