Page 5 of 23

Re: ZXevolution + RS-232

PostPosted: 03 May 2011, 19:57
by CHRV
newart wrote:31250 поддержана?

Вопрос меня ацки озадачил ;) ...
Посчитать коэфициенты - тоже мне предлагаете ?

Воще в классике такой скорости нет есть 28800, 38400 и т.п.

Re: ZXevolution + RS-232

PostPosted: 03 May 2011, 20:19
by newart
CHRV wrote:Воще в классике такой скорости нет есть 28800, 38400 и т.п.

Добавте плиз. Это скорость для миди.

В ZXMC оно включается таким образом: (0xF8EF)=5;(0xF9EF)=0

Re: ZXevolution + RS-232

PostPosted: 03 May 2011, 20:23
by lvd
не знаю что за миди, но 11059200 не делится нацело на 31250. Оно в 16550 включается? Подозреваю, что нет.

Re: ZXevolution + RS-232

PostPosted: 03 May 2011, 21:01
by CHRV
Отрывок из описания на мультикарту Камиля:

Code: Select all
#F8EF – REG_DIV_L, #F9EF – REG_DIV_H (Регистры делителя скорости)
===================================================
Доступ к регистрам осуществляется при DLAB = 1. Значение делителя определяется по формуле DIV = 115200/SpeedInBaud, где SpeedInBaud – требуемая скорость в бодах. Например, для скорости 9600 бод, получим значение 12 (#000C), таким образом, старшая часть делителя будет равна нулю (REG_DIV_H = #00), а младшая часть делителя будет равна 12 (REG_DIV_L = #0C).


т.е. при значении 5 будет скорость 115200/5 = 23040бод. На ZXEvo будет такая же скорость как и на мультикарте...

Или Камиль сделал специальную прошивку?

Re: ZXevolution + RS-232

PostPosted: 03 May 2011, 21:11
by CHRV
lvd wrote:не знаю что за миди, но 11059200 не делится нацело на 31250. Оно в 16550 включается? Подозреваю, что нет.

Посмотрел доку на МИДИ, написано что не со всеми РС232 картами работает (только с теми которые поддерживают нестандартные скорости).
В принципе можно сделать такую скорость но при коефициенте например (0xFF, 0xFF)...

Re: ZXevolution + RS-232

PostPosted: 03 May 2011, 21:13
by newart
CHRV wrote:Или Камиль сделал специальную прошивку?

Да.

Re: ZXevolution + RS-232

PostPosted: 03 May 2011, 21:16
by lvd
CHRV wrote:только с теми которые поддерживают нестандартные скорости

Называется "анальное огораживание" (ц) трупософт :-D

А можно в аврке сделать более дробный делитель, и как-то заюзывать его через доп/неисп регистр? Не выход ли это?

Re: ZXevolution + RS-232

PostPosted: 03 May 2011, 21:25
by CHRV
lvd wrote:А можно в аврке сделать более дробный делитель, и как-то заюзывать его через доп/неисп регистр? Не выход ли это?

Можно, например установить старший бит DLM, а остальное подробный делитель по стандарту AVR...
Ща налабаю и тестовую суда запул...

Re: ZXevolution + RS-232

PostPosted: 03 May 2011, 21:37
by нолька
lvd wrote:А можно в аврке сделать более дробный делитель, и как-то заюзывать его через доп/неисп регистр? Не выход ли это?

добавить 1 бит в каком нибудь порту, который учетверяет (или удваивает) скорость. он есть в доке на атмегу

Re: ZXevolution + RS-232

PostPosted: 03 May 2011, 21:53
by CHRV
Вощем сделал расширенный режим для установки сокрости.
Включается если установлен старший бит DLM.
Соотвественно коэффициент передается в 7битах DLM и DLL.

Рассчитывается коэффициент по следующей формуле:
Code: Select all
<коэф Int16> = ((F_CPU/16)/<скорость в бодах>)-1
где F_CPU = 11059200 (для ZXEvo)


для скорости 31250:
((11059200/16)/31250)-1 = 21
т.е. значения DLM = 0x80, DLL = 0x15

тестовая прошивка туто:
zxevo_fw.bin
(41.63 KB) Downloaded 789 times