Expanduino_I

Tvoříte zajímavý projekt? Pochlubte se s ním.
Pravidla fóra
Vkládejte prosím jen HOTOVÉ projekty, které chcete představit ostatním.
Uživatelský avatar
gilhad
Příspěvky: 832
Registrován: 07 bře 2018, 11:22

Expanduino_I

Příspěvek od gilhad » 03 zář 2023, 21:13

Není to úplně hotové, ale už to něco dělá ...

TL;DR: 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 (a podobným)

Obrázek


Stránky: http://8bit.gilhad.cz/6809/Expanduino/Expanduino_I.html
Poznámky, Plány a Errata
Galerie z finální fáze oživování

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 (a podobným).

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 :arrow: http://8bit.gilhad.cz/6809/Expanduino/Expanduino_I.html a :arrow: 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 ;)

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í jsem se nakonec přece jen někam dokopal :D

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

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

(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 )

Expanduino_I (klikací)
Obrázek

Galerie z finální fáze oživování (klikací)
Obrázek

Errata, Poznámky a Plány (klikací)
Obrázek



A 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.

Uživatelský avatar
kiRRow
Příspěvky: 1266
Registrován: 07 kvě 2019, 07:03
Bydliště: Opava

Re: Expanduino_I

Příspěvek od kiRRow » 06 zář 2023, 10:36

Co k tomu říct ... je to bomba a je to klenot :) jen tak dál :)

Uživatelský avatar
gilhad
Příspěvky: 832
Registrován: 07 bře 2018, 11:22

Re: Expanduino_I

Příspěvek od gilhad » 06 zář 2023, 10:42

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.
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)

Uživatelský avatar
gilhad
Příspěvky: 832
Registrován: 07 bře 2018, 11:22

Re: Expanduino_I

Příspěvek od gilhad » 12 zář 2023, 21:38

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á)

Uživatelský avatar
Caster
Příspěvky: 431
Registrován: 11 zář 2019, 09:02

Re: Expanduino_I

Příspěvek od Caster » 13 zář 2023, 16:27

Cením si tvého vývoje. Trochu mi ale uniká k čemu dnes používat 6809/6502 :o , když jsou dostupné moderní MCU 8-).

Uživatelský avatar
gilhad
Příspěvky: 832
Registrován: 07 bře 2018, 11:22

Re: Expanduino_I

Příspěvek od gilhad » 13 zář 2023, 18:47

Prostě si plním dětské sny, dokud ještě můžu.

Samozřejmě bych mohl vzít jako základ třeba Arduino s atmega328, nebo modernější s Rpi jádrem, nebo nějakou 286, 386, 486, Pentium ... pak se kouknout, že mi na stole vlastně stojí AMD Ryzen 9 3900X s 32GB RAM ... a to je ještě výkonější ... a vlastně k ničemu, protože na to moc není co zajímavého psát a stavět ...

Tu 6809 jsem si koupil před Covidem, když s tím Malý přišel a teď jsem se k ní vrátil a nehorázně mě to baví.

Zatím si dělám rutiny na to, co bezprostředně potřebuju pro stavbu a ladění, ale už se mi pomalu blíží příkazová řádka a pak už to bude mít smysl vypálit do té 16kB EEPROM, co v ní je zatím jenom "Monitor". S tím, že tam bude zavaděč systému z Expanduina, (ať už z AT24C32, nebo SD karty - nejspíš ale volitelně) a pak se chystám využít toho, že 6809 má 2 zásobníky a zkusit si na ni napsat nějaký malý FORTH - a možná v něm udělat i alternativní "BIOS" pro tu 6809.

Prostě si hraju, to co dělám je rozdělené do spousty malých provázaných kroků, tak mám každou chvíli nějaký viditelný úspěch a další výzvu :lol:

Tady je vyloženě cílem sama cesta a potěšení z ní :D

Uživatelský avatar
Caster
Příspěvky: 431
Registrován: 11 zář 2019, 09:02

Re: Expanduino_I

Příspěvek od Caster » 13 zář 2023, 21:42

V pohodě ;) . Já se zabývám něčím praktičtějším, pracuji na mikrolokátoru GPS/LoRaWAN zašitý či zalit v plastovém obojku pro sledování domácích mazlíků a to hlavně koček. Vzhledem k přepodkládané výdrži více než 3 měsíce (poloha 1x za hodinu) minimalizuji spotřebu zapnutím GPS modulu u-Blox ZOE-M8Q (4,5 x 4,5 mm) jen při načtení GPS souřadnic, pokud budou k dispozici. Jinak se přibližná poloha určí pomocí triangulace signálu LoRaWAN. Nemohu použít klasickou patch GPS anténu, ale drátový dipól zašitý kolem celého obojku, který ale dává slabý výstupní signál a pro jeho zpracování GPS modulem ho musím zesílit vlastním zasilovačem.

Aktuálně jsem se pustil do vyřešení SPI komunikace s GPS modulem, kdy budu připravená data na zaslané příkazy a zachycený signál GPS indikovány na dvou pinech GPS modulu pomocí IRQ. Klasicky chrlí GPS modul nepřetržitě proud dat a parser je z nich filtruje. To ale žere proud. U mě budu GPS modul uspán a probuzen jen 1x za hodinu s tím, že do minuty musí zachytit GPS signál. Když se mu to nepodaří, pošlu do LoRaWAN prázdnou zprávu ze které bude možné určit přibližnou polohu. Jádro systému tvoří ATSAMR34 (MCU a LoRaWAN). Jedna ze starších testovacích verzí na bázi chipu S76G. Zabudovaný GPS SONY si neporadil ze slabým signálem z drátové dipólové antény. Velkou výhodou bylo, že šlo systém "naprogramovat" co má dělat jen pomocí několika AT příkazů. Zádrhel byl ale v tom, když nezachytil GPS signál, tak se zasekl ve smyčce a odmítl se uspat po 1 minutě a nešlo odeslat prázdný signál pro LoRaWAN triangulaci. Chip S76G byl také příliš "veliký" 13 x 11 mm a přestali ho vyrábět.

Uživatelský avatar
gilhad
Příspěvky: 832
Registrován: 07 bře 2018, 11:22

Re: Expanduino_I

Příspěvek od gilhad » 13 zář 2023, 22:10

Taky hezké :)
Já mám z domácích mazlíčků jen Kočičku, ale ta, když něco potřebuje, tak prostě vytáhne mobil a zavolá mi. A na obojky si taky nepotrpí :lol:
Ale je fajn vědět, že už jsou i takovéhle technologie dostupné a přitom jak dost malé, tak i dost přesné :)

Uživatelský avatar
gilhad
Příspěvky: 832
Registrován: 07 bře 2018, 11:22

Re: Expanduino_I

Příspěvek od gilhad » 14 lis 2023, 02:20

  • 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ů

Uživatelský avatar
Diego
Příspěvky: 187
Registrován: 23 črc 2017, 09:43
Kontaktovat uživatele:

Re: Expanduino_I

Příspěvek od Diego » 14 lis 2023, 04:14

Pěkná práce :!:
https://arze.cz - ARduino Zapojení Elektronika

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host