nedoPC.org

Community for electronics hobbyists, established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 10 Dec 2024 11:30



Reply to topic  [ 94 posts ]  Go to page Previous  1 ... 3, 4, 5, 6, 7  Next
Hello world! 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23467
Location: Silicon Valley
Reply with quote
b2m wrote:
Shaos wrote:
А вот сколько процентов процессорного времени отдавалось на пропихивание текста в ВГ75? Главный проц вообще успевал что-то делать по основной программе?...

Так в РК-шке проц тормозится на время "пропихивания" текста. Это соответствует (ну почти) его работе по пропихиванию текста. Вот если бы у 8080 была команда OTIR, то и вообще бы не было никакой разницы. Ну почти.

Ну там ПДП всё-таки, а тут - 100% софтово…

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


23 Sep 2024 10:05
Profile WWW
Doomed

Joined: 10 Aug 2022 07:27
Posts: 416
Reply with quote
На минимальных, типа hello world и подобных, весьма сложно вести обмен со старшим братом. Загрузка например, отладка. Потому что нет UART, потому что софтово сложно высчитывать такты, потому что многое мешает. Ардуино популярно, доступно и недорого.
Идея в том, что бы запрашивать данные по требованию, а МК при этом их бы предоставлял. Нужно всего 3 пина.
Code:
// z80 <- Arduino serial  17:27 17.10.2023  OKF

#define NAME              "z80 <- Arduino serial"
#define VERSION           "0.3"
#define UART_BAUDRATE     19200

#define WAIT_TIME         0             //debug

//                        GND
#define   WAIT              2             //PORTD!
#define   DATA              3
#define   IOR               4

#define in(x)             DDRD  &= ~(1<<(x))
#define out(x)            DDRD  |= 1<<(x)
#define on(x)             PORTD |= 1<<(x)
#define off(x)            PORTD &= ~(1<<(x))
#define pin(x)            (PIND & 1<<(x))

#define di()              cli()
#define BAUD_SETTING      ((F_CPU / 4 / UART_BAUDRATE - 1) / 2)
#define con_begin()       (UBRR0H = BAUD_SETTING>>8, UBRR0L = BAUD_SETTING, \
                           UCSR0A = 1<<U2X0 | 1<<UDRE0, UCSR0B = 1<<RXEN0)
#define con_available()   (UCSR0A & 1<<RXC0)
#define con_read()        UDR0


void setup() {
  on(WAIT); out(WAIT);
  con_begin();
  di();
}


// выставим стартовый бит по запросу от CPU
inline void put_start() {
  while (pin(IOR));                     //ждём IOR
  off(WAIT);                            //тормозим CPU
  off(DATA);
  out(DATA);                            //выставляем старт бит
  _delay_ms(WAIT_TIME);
  on(WAIT);                             //запускаем CPU
  while (!pin(IOR));                    //ождаем снятия IOR
  in(DATA);                             //убираем старт
}


// биты данных по запросу от CPU
inline void put_data(uint8_t c) {
  while (pin(IOR));
  off(WAIT);
  c & 1 ? on(DATA) : off(DATA);         //выставляем данные аналогично старт
  out(DATA);
  _delay_ms(WAIT_TIME);
  on(WAIT);
  while (!pin(IOR));
  in(DATA);
}


// стоповый бит
inline void put_stop() {
  while (pin(IOR));
  off(WAIT);
  on(DATA);
  out(DATA);                            //стоп
  on(WAIT);
  while (!pin(IOR));
  in(DATA);
}


void loop() {
  if (con_available()) {
    uint8_t ch = con_read();
    put_start();
    for (uint8_t i = 0; i < 8; i++, ch >>= 1)
      put_data(ch);
  }
  put_stop();
}

При этом, со стороны z80 это может выглядеть так:
Code:
; serial from Arduino

PIN   equ   0      ;RX_PORT, D7 - data


; wait start bit
loop1   defl   $
   in   a,(PIN)      ;wait request
   ld   b,4
loop   defl   $
   djnz   loop

   rlca         ;d7
   jr   c,loop1

   ld   b,8      ;receive data
loop   defl   $
   in   a,(PIN)
   rlca         ;d7
   rr   c
   djnz   loop

loop   defl   $
   in   a,(PIN)      ;stop
   rlca         ;d7
   jr   nc,loop

   call   ConOut
   jr   loop1


28 Sep 2024 23:26
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23467
Location: Silicon Valley
Reply with quote
z80 <- Arduino serial это как-то через COM-порт?

Как физически выглядит подключение этих 3 проводов?

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


29 Sep 2024 13:18
Profile WWW
Doomed

Joined: 10 Aug 2022 07:27
Posts: 416
Reply with quote
Shaos wrote:
Как физически выглядит подключение этих 3 проводов?

1. Запрос от z80 (/RD & /IORQ).
2. Бит данных от МК (D7).
3. /WAIT от МК.


30 Sep 2024 00:19
Profile
Doomed

Joined: 10 Aug 2022 07:27
Posts: 416
Reply with quote
Shaos wrote:
z80 <- Arduino serial это как-то через COM-порт?

Что значит? Ардуино с ПК соединён через COM-порт, он и является посредником для z80. Особенность в том, что z80 не нужно выдерживать никакие времянки. Запросил - получил, типа.


30 Sep 2024 02:09
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23467
Location: Silicon Valley
Reply with quote
Ну можно по идее и без ардуино если не через COM, а через LPT с шелезякой общаться - дёргаешь нужными битиками программно со стороны PC и всего делов ;)

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


30 Sep 2024 04:41
Profile WWW
Doomed

Joined: 10 Aug 2022 07:27
Posts: 416
Reply with quote
Ну да. Только где сейчас COM или LPT? А USB всегда. И попробуй ты в Windows выдержать времянки! В любом случае USB-TTL нужен, а Ардуино по цене с ним равнозначен. Более того, ты с ним можешь накрутить и дополнительных фишек или нет?


30 Sep 2024 05:02
Profile
Doomed

Joined: 10 Aug 2022 07:27
Posts: 416
Reply with quote
А ещё, не знаю как там у вас в Штатах ("я не была"), а у нас особой дешевизной пользуются LGT8F328P и их производные. Которые и пошустрее и выводов имеют поболее, нежели у ваших хвалёных Атмелов.)


30 Sep 2024 06:43
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23467
Location: Silicon Valley
Reply with quote
Mondx wrote:
Ну да. Только где сейчас COM или LPT? А USB всегда. И попробуй ты в Windows выдержать времянки! В любом случае USB-TTL нужен, а Ардуино по цене с ним равнозначен. Более того, ты с ним можешь накрутить и дополнительных фишек или нет?
Ну PCI-Express платки до сих пор доставаемы - и COM, и LPT (у меня например в компе воткнуто) и линух их видит вот прям сразу...

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


30 Sep 2024 07:23
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23467
Location: Silicon Valley
Reply with quote
Mondx wrote:
А ещё, не знаю как там у вас в Штатах ("я не была"), а у нас особой дешевизной пользуются LGT8F328P и их производные. Которые и пошустрее и выводов имеют поболее, нежели у ваших хвалёных Атмелов.)
Я поглядел - например на амазоне "ваш хвалёный" LGT8F328P стоит десятку за штучку, а его "оригинал" ардуино-нано - пятнашку за 3 штуки (т.е. $5 за один)...

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


30 Sep 2024 07:38
Profile WWW
Doomed

Joined: 10 Aug 2022 07:27
Posts: 416
Reply with quote
"Мы по разному видим мир!"


Attachments:
Скриншот 30-09-2024 200605.jpg
Скриншот 30-09-2024 200605.jpg [ 195.93 KiB | Viewed 571 times ]
30 Sep 2024 10:11
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23467
Location: Silicon Valley
Reply with quote
Американский тариф на китайскую электронику в действии :)
Да и наверное дядюшка Ляо к вам поближе будет...

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


30 Sep 2024 20:22
Profile WWW
Doomed

Joined: 10 Aug 2022 07:27
Posts: 416
Reply with quote
У меня тут завалялась замечательная платка под названием WEMOS XI. А замечательна она тем, что у неё выведено аж 30 пинов. А тогда, с её помощью, очень легко получается эмулятор 2764. И даже 27256. Ну чем плохо то! И тот же вывод по UART делается без каких либо телодвижений. Думаю, просто песня для ретростроителей.)


Attachments:
wemosxi-2.jpg
wemosxi-2.jpg [ 26.22 KiB | Viewed 505 times ]
30 Sep 2024 23:33
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23467
Location: Silicon Valley
Reply with quote
Тоже типа ардуино?

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


30 Sep 2024 23:38
Profile WWW
Doomed

Joined: 10 Aug 2022 07:27
Posts: 416
Reply with quote
Ну да. А что смущает? Ты можешь использовать её как хочешь. В т.ч. и без Ардуино среды. Ничто не мешает.


30 Sep 2024 23:40
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 94 posts ]  Go to page Previous  1 ... 3, 4, 5, 6, 7  Next

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.