ZXevolution + RS-232

ZX evolution software and hardware

Postby DimkaM » 16 Aug 2011, 14:45

УРА!!! RTS заработала.
Только почемута в инверсном режиме.

(прошивка не официальная, на базе rev.477, изменил только инициализацию пина PD5)

Code: Select all
--- avr/current/main.c
+++ avr/current/main.c
@@ -69,7 +69,7 @@
   DDRE  = 0b00000000; // PLL to 2X [E2=Z,E3=Z], inputs pulled up

   PORTD = 0b11111111; // inputs pulled up
-   DDRD  = 0b00000000;
+   DDRD  = 0b00100000;


   PORTC = 0b11011111;
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby DimkaM » 16 Aug 2011, 15:46

Чуток поправил запись в RS232RTS_PORT, теперь не инверсная.
Code: Select all
--- avr/current/rs232.c
+++ avr/current/rs232.c
@@ -228,12 +228,12 @@
      if ( data&(1<<1) )
      {
         //clear RTS
-         RS232RTS_PORT |= _BV(RS232RTS);
+         RS232RTS_PORT &= ~(_BV(RS232RTS));
      }
      else
      {
         //set RTS
-         RS232RTS_PORT &= ~(_BV(RS232RTS));
+         RS232RTS_PORT |= _BV(RS232RTS);
      }
      break;

прошивка не официальная, на базе rev.477
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby deathsoft » 16 Aug 2011, 21:37

SfS wrote:Чего в реальности наблюдается крайне редко. По крайней мере, за 8 лет разработки аппаратуры передачи данных, мне ни разу не встретился полноценный модем (GSM, ТЧ, Спутниковй), буфер которого не схавал бы за раз 1.5 - 2 кБайта.

Ага, с учетом того что даже в фидошных протоколах ZedZap и Hydra размеры пакета можно было ставить по 8 и 16кб.

Ну и еще, допустим у меня аппаратура вообще на микроконтроллере типа pic или avr начальных серий, там буфера нету овобще, ком порт сделан софтовый, буфер - на 1 байт (только для преобразования последовательных данных в параллельные) и как работают такие устройства? Правильно, тупо синхронно на 9600 и т.п. и недай бог устройство не успеет обработать принятый байт в реальном времени, сразу произойдет потеря данных ну и дальше устройство будет тупо принимать мусор, ну либо мудежка с запросами/ответами, но там тоже проблема есть с определением границ пакетов, где заголовок а где данные. В эзернете для этого спец преамбула существует и заградительные участки после каждого пакета.
User avatar
deathsoft
 
Posts: 358
Joined: 07 Apr 2007, 01:58
Group: Registered users

Postby SfS » 17 Aug 2011, 04:34

deathsoft wrote:Ага, с учетом того что даже в фидошных протоколах ZedZap и Hydra размеры пакета можно было ставить по 8 и 16кб.


А можно и не ставить :) При чём тут фидошные пакеты? Какое отношение они имеют к связи PC-ZX по нуль-модему? Для передачи пакеты всё равно бьются так как надо каналу. Например в Ethernet - 1500 байт и не более )))

deathsoft wrote:Ну и еще, допустим у меня аппаратура вообще на микроконтроллере типа pic или avr начальных серий, там буфера нету овобще, ком порт сделан софтовый, буфер - на 1 байт (только для преобразования последовательных данных в параллельные) и как работают такие устройства?


При чём тут ZX? Он есть "AVR начальной серии" и у него буфер 1 байт, как у тини?:) Кстати, я сумлеваюсь, что у тебя AVR начальной серии принимает непрерывный поток) Максимум - команду и параметр. С трудом могу представить, чтобы даже 2313 "замешкалось" на приприёме 3-4байт )) Практически я делал на тини софтовый ком. RTS_CTS не потребовался)

Я говорю не о "сферической передаче данных в вакууме", а о конкретном ZX. У которого есть память, который может вычищать буфер по прерыванию 50 раз в секунду и так далее. И который всего-то принимает пакеты, обрабатывает и шлёт подтверждения.

Не о "гигабитных картах", не о "авр начальной серии", которые я тоже программировал, кстати. Не о "непрерывном потоке. А только о ZX.
ZX-Phoenix.
Pentevo ZX-Evoluton Rev. B (зелёная)
SfS
 
Posts: 245
Joined: 24 Jun 2010, 08:07
Group: Registered users

Postby lvd » 18 Aug 2011, 00:33

Гздаде, кто пацкажет, как отлаживать прогу, которая работает с сериальным портом? Для отладки тцп-ип есть localhost, 127.0.0.1, tcpdump и так далее, тестирующую прогу с другого конца прикрутить не проблема, а для сериального порта (/dev/ttyS0, для ясности) что? Типа какой-нить эмулятор или пайп, чтоб с другого конца другая прога (тестировщик) или как-то так. Поклонникам гейца просьба не беспокоиться :)
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1786
Joined: 07 Apr 2007, 22:28
Group: Registered users

Postby SfS » 18 Aug 2011, 06:32

lvd wrote:Типа какой-нить эмулятор или пайп, чтоб с другого конца другая прога (тестировщик) или как-то так.


putty, minicom - это линуксовые терминалы:)

работают элементарно - устанавливаешь скорость-чётность-битность и всё.
жмеёшь букву на клавитуре - она тут же отпраляется в ком-порт.
приходить байт с ком-порта - тут же на экран вываливается :)

Ну или так:
- Установка режима (19200, нет управления потоком, режим чтение-запись для порта ttyS0):
sh# stty -F /dev/ttyS0 19200 -crtscts raw

Читает с порта и вываливает на экран (как текст, так и 16ричные символы):
sh# hexdump -C /dev/ttyS0

Пишет в порт всё что хочешь:
sh# printf "Formatted string %x\n" 1234

Всё - стандартные линуксовые проги.

Кстати - самый нормальный варинт - два переходника USB-COM, соединённые нуль-модемным кабелем. Если COM-портов нет, конечно живых.
ZX-Phoenix.
Pentevo ZX-Evoluton Rev. B (зелёная)
SfS
 
Posts: 245
Joined: 24 Jun 2010, 08:07
Group: Registered users

Postby lvd » 18 Aug 2011, 09:08

ну про терминалы понятно. Речь вот о чём -- есть прога, которая работает с сериалом. С другой стороны другая прога (может быть даже на пентеве). Но сначала, чисто для теста, хотелось бы с другой стороны прикрутить другую прогу. Заюзав вместо терминала какой-нить пайп или что-то вроде. Сделать аналог 2 усбкомов, соединённых между собой, только без них :)
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1786
Joined: 07 Apr 2007, 22:28
Group: Registered users

Postby SfS » 18 Aug 2011, 09:25

lvd wrote:ну про терминалы понятно. Речь вот о чём -- есть прога, которая работает с сериалом. С другой стороны другая прога (может быть даже на пентеве). Но сначала, чисто для теста, хотелось бы с другой стороны прикрутить другую прогу. Заюзав вместо терминала какой-нить пайп или что-то вроде. Сделать аналог 2 усбкомов, соединённых между собой, только без них


Понял! А я то, дурень, не про то подумал.
Нет, такой не знаю.. Увы.
ZX-Phoenix.
Pentevo ZX-Evoluton Rev. B (зелёная)
SfS
 
Posts: 245
Joined: 24 Jun 2010, 08:07
Group: Registered users

Postby DimkaM » 18 Aug 2011, 13:18

lvd wrote:Типа какой-нить эмулятор или пайп

Стукнул в аську любителю пингвинов, а он мне какуюта хрень ответил:
man pts
man openpty
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby SfS » 18 Aug 2011, 19:11

DimkaM wrote:man pts
man openpty


Это дока по псевдотерминалам. В принципе - можно создать устройство-эмулятор терминального. Но только ему пофиг не скорости. В остальном - почти COM-port.

Набери в google - "псевдотерминалы Linux", если интересно. Но, ИМХО, проще два USB-COM воткнуть и хоть заотлаживайся, чем городить непойми-что.
ZX-Phoenix.
Pentevo ZX-Evoluton Rev. B (зелёная)
SfS
 
Posts: 245
Joined: 24 Jun 2010, 08:07
Group: Registered users

PreviousNext

Return to Пентева - софт и железо

Who is online

Users browsing this forum: Google [Bot] and 1 guest

cron