OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 27.04.2024, 09:45

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 9 ] 
Autor Zpráva
PříspěvekNapsal: 01.09.2023, 02:07 
Offline
Kecálek
Uživatelský avatar

Registrován: 18.06.2023, 18:37
Příspěvky: 109
Bydliště: Pražák z Prahe, žádná náplava :)
Has thanked: 20 times
Been thanked: 27 times
Příloha:
Poznámka: Expanduino_I - náhled vyrenderovaný v KiCadu
Expanduino_I-nahled-small.png
Expanduino_I-nahled-small.png [ 725.02 KiB | Zobrazeno 3120 krát ]

Stránky: http://8bit.gilhad.cz/6809/Expanduino/Expanduino_I.html
Poznámky, Plány a Errata
Pro počítače: OMEN Kilo a Bravo
MCU: Arduino Pro Micro (Atmega32U4)
Expanduino je rozšiřující deska, která poskytuje 3 8-bitové obousměrné komunikační kanály + 1 8-bitový řídící a 8-bitový stavový pro snadné připojení dalších zařízení k SBC 6809 a 6502

Na rozdíl od například Z80, 8086 a tak podobně nemají 6809 ani 6502 žádné vstupně/výstupní porty a ke všemu přistupují stejně jako k paměti - prostě čtou a zapisují byty jako obvykle, a pokud se "náhodou" strefí na nějaké zajímavé místo, tak se začnou dít věci - například fungovat periferie :D
Aby taková periferie s nima fungovala, tak musí v plné rychlosti (třeba 2MHz) dekódovat adresu na adresové sběrnici, zjistit, zda je signál pro čtení nebo zápis a podle toho na datovou sběrnici vystavit data, nebo je z ní přečíst, než ten signál zmizne.
Některé periferie jsou na to přímo stavěné, jako třeba MC68B50 ACIA (sériová linka) a musí se jim pomoct jenom s dekódováním adresy, zatímco jiné na to stavěné nejsou vůbec a musí se jim nějak pomoct hodně a udělat to za ně všechno (RTC, I2C senzory, SPI zařízení, SD karty ...).

Na druhou stranu například takové Arduino má v sobě elektroniku pro I2C, SPI a tak přímo zabudovanou a je pro něj spousta modulů na připojení a knihovan na jejich ovládání, takže jako interface by bylo celkem šikovné. Akorát teda absolutně neustíhá zareagovat na na signály ze sběrnice a včas tam nachystat, nebo přečíst data.

Takže Expanduino mezi nimi tvoří most. Pro 6809 odchytává 9000h-9003h paměť v obou směrech a pro Arduino představuje 8 SPI registrů (4 pro čtení, 4 pro zápis) a navíc eviduje, kdo k danému zdroji přistoupil jako poslední a kdo je teda další na řadě, aby s ním něco dělal. A pokud se k němu oba chovají aspoň trochu slušně, tak si můžou běžet různými rychlostmi a pracovat různým způsobem sobě přirozeným a o nic se nestarat.

Teď už mám za sebou prví kolo návrhu, plošňák mi dorazil, osadil jsem většinu čipů a opravil pár chyb, které jsem v návrhu udělal a tak se s tím chci taky někde chlubit 8-)

Ty stránky http://8bit.gilhad.cz/6809/Expanduino/Expanduino_I.html Poznámky, Plány a Errata průběžně upravuju a doplňuju, takže už začínají dávat smysl i někomu jinému, než jenom mě, a bude ještě líp ;)

A tady taky o tom budu postupně psát víc a uvítám jak pochvaly, tak kritiku, tak nápady na vylepšení a další připomínky :dcod:

_________________
Spousta věcí chodí líp, když se zapne ...
http://micro-corner.gilhad.cz/, http://8bit.gilhad.cz/ a mnohé další


Nahoru
 Profil  
 
PříspěvekNapsal: 01.09.2023, 12:02 
Offline
Pan Štábní

Registrován: 11.11.2013, 10:29
Příspěvky: 1202
Has thanked: 367 times
Been thanked: 304 times
Pises:
Citace:
GAL16V8 taky zmiňuje minipro pro ovládání MiniPRO TL866xx series of chip programmers (ale ještě ne T48 a T56 - BACHA na to)
ale v seznamu T48_List_V12.59 podporovanych cipu je: ATF16V8B a taky GAL16V8, tak by to melo fungovat. Jen nevim, jestli je to v linuxu jinak.

_________________
Sharp MZ-800++, MZ-1500++, MZ-2500++, SM-B-80T, MK-14_replica, HP-85, ZX-80+replica, ZX81, ZX-Spectrum+replica++, PMI-80+replica, SAM coupe++, PMD-85-2A+3, Didaktik-M, SORD-M5, TI-57, TI-59+PC-100, TI99/4A, ZetaV2+ppp, ZX-uno, Petr


Nahoru
 Profil  
 
PříspěvekNapsal: 01.09.2023, 14:26 
Offline
Kecálek
Uživatelský avatar

Registrován: 18.06.2023, 18:37
Příspěvky: 109
Bydliště: Pražák z Prahe, žádná náplava :)
Has thanked: 20 times
Been thanked: 27 times
Já jsem našel tohle https://gitlab.com/DavidGriffith/minipro/ pro ovládání té "vypalovačky" - a tam výslovně píšou
Citace:
Native support for Linux, BSD, and other flavors of Unix.
Compatibility with Minipro TL866CS, TL866A, and TL866II+ from Autoelectric (http://www.autoelectric.cn/en/tl866_main.html)
More than 13000 target devices (including AVRs, PICs, various BIOSes and EEPROMs)

a tady ta T48 zmíněná není
a taky jsem "někde" kdovíkde na nějakém fóru našel zmínku, že to s T48 nechodí (což může znamenat cokoli od toho, že jí to nepodporuje až po totálně vyčvachtaný konektor u dotyčného), ale protože mám vlastně jen ty ATF16V8BQL a zatím neplánuju kupovat něco dalšího, tak to radši budu brát konzervativně, že když se tím autor nechlubí, tak když budu něco kupovat, tak radši jen to, co má výslovně vyjmenované, pokud to pro mě neznamená žádný problém.

Určitě tu ATF16V8B podporuje spousta "vypalovaček", ale ten zniňovaný program minipro, na který se odkazovalo dost lidí, podporuje těch vypalovaček jen pár. Takže když jsem to hledal, tak jsem zvolil tu jednodušší a jistější cestu a přidal si tam varování, protože na alíku se najde spousta vypalovaček na výraz TL866, ale spousta z nich má v nadpisu taky to T48 a podle fotky to je T4á, tak pokud by mě někdo zkoušel sledovat, tak aby nenarazil. (A nebo si udělal vlastní průzkum, a zařídil se po svém, kdoví, třeba tam zítra autor hodí další update a bude to podporovat. Ale stejně možné je to, že na to už v životě nešáhne.)

_________________
Spousta věcí chodí líp, když se zapne ...
http://micro-corner.gilhad.cz/, http://8bit.gilhad.cz/ a mnohé další


Nahoru
 Profil  
 
PříspěvekNapsal: 03.09.2023, 14:36 
Offline
Kecálek
Uživatelský avatar

Registrován: 18.06.2023, 18:37
Příspěvky: 109
Bydliště: Pražák z Prahe, žádná náplava :)
Has thanked: 20 times
Been thanked: 27 times
Tak jsem se přez různé schválnosti osudu, jako vyhřívací chipy, spálené páječky, chybějící chipy, pozitivní a negativní logika a mnohé další efekty speciální nakonec přece jen někam dokopal :D

Tady je pár fotek z poslední fáze ladění a kutění :welcome: http://8bit.gilhad.cz//6809/Expanduino/Expanduino_I_galerie.html :welcome: - včetně několika přilehlých přípravků a mezivýrobků :beer:

Teď už zbývají jen takové maličkosti, jako si napsat firmware na míru, aby to umělo RTC, práci se soubory :fdd: a tak podobně, napsat si nějaký OS, nebo aspoň slušný monitor :comp: a už si budu moct začít hrát se svým retrocomputerem :gun: :gunjozo: ... teda, až si na to napíšu nějaké ty hry ... :hang:

(A taky chci dopsat dokumentaci a někam vystavit ty různé meziprogramy a testovadla, která jsem k tomu všemu vybudoval ... ale i ta nejdelší cesta začíná prvním krokem a ten jsem dnes dokončil :like: )

Expanduino_I
Obrázek

Galerie
Obrázek

_________________
Spousta věcí chodí líp, když se zapne ...
http://micro-corner.gilhad.cz/, http://8bit.gilhad.cz/ a mnohé další


Nahoru
 Profil  
 
PříspěvekNapsal: 05.09.2023, 16:00 
Offline
Kecálek
Uživatelský avatar

Registrován: 18.06.2023, 18:37
Příspěvky: 109
Bydliště: Pražák z Prahe, žádná náplava :)
Has thanked: 20 times
Been thanked: 27 times
Tak mě frankenstein-chip potrolil, když si trhnul nohou (od napájení) a pak z něj padaly nesmysly. Ale přišel jsem mu na to a zatrhnul (přiletoval) mu to a už seká dobrotu. :hammer:
A taky dorazily normální chipy, takže přišel o postavení jedináčka :)
A už jsem naučil 6809 si od Expanduina vyžádat přesný čas.
A změřil jsem rychlost, kterou dokážou cpát data do HW, bez testů, zda se smí a zda někdo poslouchá (Arduino R: 18.000 B/s W: 18.500 B/s; 6809: 96.900 B/s - ano, je to v bytech za sekundu) tedy s plným handshakem bude Expanduino_I asi 2x pomalejší, než ACIA - to není zlé, vzhledem k tomu, co všechno může zařizovat, ale komunikaci spíš tedy přez tu ACIA ... programy v sekci zdrojáky na Expanduinu (Teda ono tam je ještě dost dalšího systémového bordelu, jako vybírání kanálu, spousta digitalWrite a tak, takže kdybych to chtěl optimalizovat na kost, tak by to ještě asi šlo dost, ale to teď není priorita)

_________________
Spousta věcí chodí líp, když se zapne ...
http://micro-corner.gilhad.cz/, http://8bit.gilhad.cz/ a mnohé další


Nahoru
 Profil  
 
PříspěvekNapsal: 12.09.2023, 18:10 
Offline
Kecálek
Uživatelský avatar

Registrován: 18.06.2023, 18:37
Příspěvky: 109
Bydliště: Pražák z Prahe, žádná náplava :)
Has thanked: 20 times
Been thanked: 27 times
Výrazně jsem zjednodušil přidávání nových příkazů a je to fajn.
Taky jsem začal psát přístup k SD kartě, ale tam jsem narazil - examply mi chodí na breadboardu, po drobné úpravě kodu (ohledně přístupu k SPI) i v desce, ale už se tam nevejdou s ovládacím softwarem (zabráno víc než 100% flash = paměti pro program)
Teď už jsem ty examply nějak základně ořezal o spoustu zbytných věcí, stejně jako ten Expanduino systém a problém pořád trvá (Global variables use 1959 bytes (76%) of dynamic memory, leaving 601 bytes for local variables. Maximum is 2560 bytes.) a jakýkoli pokus o použití SD pak vede k tomu, že se zásobník potká s haldou a nějak se to vysype (často až po vypsání obsahu karty, nebo tak něco).
Tak jsem vyměknul a objednal Arduino nano Every, které má místo 32 kB flash celých 48 kB a místo 2.5 kB RAM rovnou 6 kB a tam už se to bude muset vejít bez řečí. Jen ještě budu muset udělat konverzní desku ála F-chip pro ty Arduina, mají jiný půdorys a počet nohou. (V Expanduino_II už bude upravený pro Every v základu)
(Přemýšlel jsem ještě o Blue Pill, kterých mám doma taky pár, ale 3V3 logika by s 5V nedělala dobrotu a konverze by byla složitá)

_________________
Spousta věcí chodí líp, když se zapne ...
http://micro-corner.gilhad.cz/, http://8bit.gilhad.cz/ a mnohé další


Nahoru
 Profil  
 
PříspěvekNapsal: 14.11.2023, 03:14 
Offline
Kecálek
Uživatelský avatar

Registrován: 18.06.2023, 18:37
Příspěvky: 109
Bydliště: Pražák z Prahe, žádná náplava :)
Has thanked: 20 times
Been thanked: 27 times
    Rozchodil jsem EEPROMwriter pro Mega Shield 01 a okopíroval si OMEN Kilo 8kB EEPROM na novou 32kB (a ta stará chcípla). Takže můžu přepínat Bank 0 a 1.
    Rozchodil jsem EEPROMcopy pro OMEN Kilo, takže můžu kopírovat z jedné banky do druhé. (a až to vylepším o zadávání čísel tam a zpět, tak budu moct vypalovat i cokoli z RAM)
    Rozchodil jsem Emulator6809 a můžu si emulovat KiloExp.EEPROM :) RESET mi funguje :)
    Mám nový boot do EEPROM, sice ještě nic moc nedělá, ale píše písmenka :)
    Expanduino_I v.00.00.01 (Nano Every/Micro Pro) zdetekuje Expanduino_I a vypíše jeho verzi. Main loop umí reboot, komentář a help :) 1164 B celkem z toho asi 300 B textů

_________________
Spousta věcí chodí líp, když se zapne ...
http://micro-corner.gilhad.cz/, http://8bit.gilhad.cz/ a mnohé další


Nahoru
 Profil  
 
PříspěvekNapsal: 07.12.2023, 04:42 
Offline
Kecálek
Uživatelský avatar

Registrován: 18.06.2023, 18:37
Příspěvky: 109
Bydliště: Pražák z Prahe, žádná náplava :)
Has thanked: 20 times
Been thanked: 27 times
Tak už mi to chodí - teda aspoň Castor je ve stavu, kdy se dá nazvat plně funkčním alespoň na nejzákladnější úrovni

Například se dá do něj nabootovat, relokovat ho do RAM a tam z něj do ROM vypálit update.
(A to i přez to, že ta EEPROM zlobí a zápisy do ní nejsou spolehlivé, takže je nutno je opakovat, dokud se neuchytí správně. A aby se moc neošoupala, tak se vypaluje jen to, co je jinak (po bytech))

Z expanduina (pokud ho najde) si stáhne a spustí soubor /BOOT.HEX
Až to Expanduino bude umět, tak podobně bude moct spustit cokoli.
Umí to číst RTC a taky nastavit čas.
Umí načíst a spustit IHEX ze vstupu, nebo expanduina.
Umí vypisovat paměť, zavolat kód z libovolné adresy, porovnat dva bloky paměti, smazat RAM (přepsat daným bytem)

Start:

Kód:
--==### CASTOR ###==--
v.0.1.0-r3 / master
07.12.2023 01:44:51
Address range: C000 - D8D8 (Total 18D8 ROM)
+++0000+
## Expanduino_I v.00.00.03 (Nano Every)
# Expanduino detected
 (Channel set to 1 )
Boot
*BOOT
Main Loop
> ### Expanduino_I v.00.00.03 (Nano Every)

> :20 2200 ################################ ;)
> :20 2220 #####=########################## ;)
> :20 2240 ################################ ;)
> :20 2260 #######=######################## ;)
> :20 2280 ################################ ;)
> :20 22A0 ################################ ;)
> :20 22C0 ################################ ;)
> :1A 22E0 ########################## ;)
> :00 2200  ;)



písmenko A přepíná AutoExec
Kód:
> a Autoexec is now allowed

> exec pending:

Hello World!

Welcome back in Loop
>




Help obsahuje nápovědu takřka ke všemu (a ještě dumpne registry a spol)
Kód:
> ?
Regs: A: 3F; B: 00; CC: 59=eFhINzvC; DP: 00; X: CAF2; Y: C19F; S: 7FAC; U: 7FAC; W: 1000; V: 8C9E;
 PC[CAF5]: 27 05 17 F8 E0 20 EB 17 F8 C1 39 17 FB 0C ^ 17 F5 BA 30 8D 08 4C 17 F8 BD 30 8D 0A 99 17 F8;
 St[7FAC]: C1 9F C0 00 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 00 01 00 22 00 01 90 00 04 90 01 03 00 03 90 00 08 90;

--==### CASTOR ###==--
v.0.1.0-r3 / master
07.12.2023 01:44:51
Address range: C000 - D8D8 (Total 18D8 ROM)
 Help:
Q, q - quit Castor (Reboot computer)
R, r - return to calling program
C, c - call address
> - Relocate to new RAM place
D, d - dump memory
: - IHEX (type 0 & 3 ( & 1))
# - the rest of line is Comment (and so ignored)
* - the rest of line is StarCommand for Expanduino
^ - send 1 byte ControlCommand to Expanduino
| - SetAltChannel for communication with Expanduino
A,a - SwapAutoexec for IHEX etc.
F, f - SwapFastIHEX - fast=only RAM
` - Test (do not use)
~ - Diff memory to memory
K - KillROM (do not use)
Z, z - Zero - clear RAM to 00 (or any value)
?, H, h - this help
SYSTEM_Autoexec_allowed:  Yes
SYSTEM_FastIHEX_allowed:  No
LOOP.exec.pending:  No
LOOP.exec.addr: 2200
Expanduino detected:  Yes
>



Obrácený apostrof zavolá SWI, SWI2 a SWI3 (SW interrupty) jako test a ty skutečně projdou kudy mají
Kód:
> ` TEST

Regs: A: 60; B: 00; CC: D1=EFhInzvC; DP: 00; X: D2D8; Y: C19F; S: 7F9E; U: 7FAC; W: 1000; V: 8C9E;
 PC[C04B]: 00 1D 12 20 1E 12 12 17 05 BA 3B 17 05 B6 ^ 3B 17 05 B2 3B 17 05 AE 3B 17 05 AA 3B 17 05 A6;
 St[7F9E]: D1 60 00 10 00 00 D2 D8 C1 9F 7F AC CC 0C C1 9F C0 00 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 00 01 00 22;

Regs: A: 60; B: 00; CC: D1=EFhInzvC; DP: 00; X: D2D8; Y: C19F; S: 7F9E; U: 7FAC; W: 1000; V: 8C9E;
 PC[C057]: 05 B6 3B 17 05 B2 3B 17 05 AE 3B 17 05 AA ^ 3B 17 05 A6 3B 17 05 A2 3B 10 CE 7F B0 30 8C 99;
 St[7F9E]: D1 60 00 10 00 00 D2 D8 C1 9F 7F AC CC 0E C1 9F C0 00 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 00 01 00 22;

Regs: A: 60; B: 00; CC: D1=EFhInzvC; DP: 00; X: D2D8; Y: C19F; S: 7F9E; U: 7FAC; W: 1000; V: 8C9E;
 PC[C05B]: 05 B2 3B 17 05 AE 3B 17 05 AA 3B 17 05 A6 ^ 3B 17 05 A2 3B 10 CE 7F B0 30 8C 99 34 10 86 00;
 St[7F9E]: D1 60 00 10 00 00 D2 D8 C1 9F 7F AC CC 11 C1 9F C0 00 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 00 01 00 22;

>



Taky má vlastní stránku http://8bit.gilhad.cz//6809/Castor.html, která časem rozkošatí :D

_________________
Spousta věcí chodí líp, když se zapne ...
http://micro-corner.gilhad.cz/, http://8bit.gilhad.cz/ a mnohé další


Nahoru
 Profil  
 
PříspěvekNapsal: 25.02.2024, 04:15 
Offline
Kecálek
Uživatelský avatar

Registrován: 18.06.2023, 18:37
Příspěvky: 109
Bydliště: Pražák z Prahe, žádná náplava :)
Has thanked: 20 times
Been thanked: 27 times
Chystám se udělat trochu větší projekt, zahrnující i nějaká ta Arduina (http://comp24.gilhad.cz/Comp24-specification.html) , ale je toho moc naráz, tak zatím postupuju menšími kroky


Obrázek


Podařilo se mi rozchodit 6309 počítač na breadboardu, zatím jen ve verzi OMEN kilo (ale se samotnýma hodinama pro ACIA 1.843MHz a samotnýma 3.686MHz pro CPU (krystal 14.7456MHz))



CPU běží na 3.686MHz (na breadboardu mi 4MHz už neběžely stabilně, vždycky se to po chvilce nějak seklo, na PCB to možná bude lepší, bez té spousty drátů). Oproti poloviční frekvenci OMEN kila to už zvládne přerušení a práci s buffery i při plné rychlosti přenosu (115.200 bps). Dva chipy dole jsou VIA a PIA a teprve čekají na svou šanci, až je zapojím.


Kapesní osciloskop Xscope není součástí celé konstrukce, ale jen zbytek po debugování. (Nekmital mi krystal pro sériový port ACIA, několik drátků bylo o dírku vedle, nebo nedostatečně doražených/uvolněných během stavby a testování a tak. Klasika.)


USB-Serial převodník bude PL2303, budu z něj muset ještě nějak vytáhnout řízení toku dat. Z ACIA by to chtělo vytáhnout teda taky, což sice nepůjde, ale půjde to ošetřit jinak, až zprovozním další hardware.


Nahrál jsem novou verzi firmware, zatím jen do RAM, schválně, co to udělá :)

Běží to, kontrolní součty sedí, tahle etapa se podařila dotáhnout do cíle :)

Screenshot nahrané vyšší verze Castora (aneb, když to dokáže načíst 6.5kB program přez IHEX, tedy i s kontrolními součty, tak to asi jede dost spolehlivě pro další pokusy)

Obrázek

Píšu si o tom, s více obrázky, například tady: http://mix.gilhad.cz/Blog/Blog.html#breadboard-base

_________________
Spousta věcí chodí líp, když se zapne ...
http://micro-corner.gilhad.cz/, http://8bit.gilhad.cz/ a mnohé další


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 9 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 14 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz