Minimig - Amiga 500 i en FPGA
- Illuwatar
- Inlägg: 2256
- Blev medlem: 10 november 2003, 14:44:27
- Skype: illuwatar70
- Ort: Haninge
- Kontakt:
Fick svar från Dennis angående FPGA-kärnans format, och det var som jag gissade att det skulle vara ".bin". För att vara på säkra sidan så har han lagt upp komplierade binärer på sin hemsida för både FPGA och PIC'en (den sistnämnda för 18LF252). Just nu så väntar jag på några 3.3V-versioner av MAX232 - innan jag har dessa kommer jag ingen vart med bygget.
- Illuwatar
- Inlägg: 2256
- Blev medlem: 10 november 2003, 14:44:27
- Skype: illuwatar70
- Ort: Haninge
- Kontakt:
Har byggt ihop en Xilinx Parallell Cable III och har lyckats få kontakt med FPGA'n på kortet. Det går bra att läsa ut ID och device-info, så jag antar att FPGA'n är vid liv och mår bra. DONE-pinnen är dragen till PIC'en, så iMPACT (programmeringsdelen hos Xilinx ISE) gnäller om detta. Får dessutom CRC-fel ibland vilket kan bero på min "fulkabel" (saknar allt vad skärmining heter) mellan Minimgen och själva adapterkretsen. Får göra en bättre vid något tillfälle men har inte högsta prioritet just nu. PIC'en skall ändå göra programmeringsjobbet och Dennis har fixat en verifierad fil, så får jag bara in koden i MCU'n borde det fungera.
Köpte mig ett Minimig v1.1 PCB för 150 kr inkl frakt. Fick det härom dagen. Har dock inte fått hem FPGA/68000 CPU/Minne. Men det mesta andra har kommit. Har börjat löda dit ytmonterade motstånd. Tar sin lilla stund utan pick-n-place och reflow-ugn.
- Illuwatar
- Inlägg: 2256
- Blev medlem: 10 november 2003, 14:44:27
- Skype: illuwatar70
- Ort: Haninge
- Kontakt:
Surdegen till PIC-processor fortsätter att fightas med mig. Lyckades göra ett simpelt program som tänder LED'en på PB4, men någon bootloader får jag inte igång. Kör nu hela PIC-delen på 5V, så det är inga problem att programmera och radera. Någon som har lite bra tips gällandes grunderna i PIC-programmering (bland annat hur fuse-registren bör ställas) och hur man kör serieporten (något simpelt, verifierat testprogram)? Hade denna design använt en AVR hade jag suttit och spelat Giana Sisters vid det här laget...
Dessutom, symbolen för 9-pol DSUB i Protel 2004 är baklängesnumrerad. Upptäckte detta när jag felsökte serieportskopplingen. Som tur var satte jag dit pinheaders för alla portar, så korten går att använda ändå. Skulle ha använt min egna symbol i stället...
Andax: För mig går det faktiskt fortare att handlöda 1206/0805 än hålmonterat. Det är flera moment som försvinner - bocka ben, vända på kortet, klippa av ben... får man bara till snitsen så är det inte så svårt. En bra pincett är dock obligatoriskt, annars blir det ett elände.
Dessutom, symbolen för 9-pol DSUB i Protel 2004 är baklängesnumrerad. Upptäckte detta när jag felsökte serieportskopplingen. Som tur var satte jag dit pinheaders för alla portar, så korten går att använda ändå. Skulle ha använt min egna symbol i stället...

Andax: För mig går det faktiskt fortare att handlöda 1206/0805 än hålmonterat. Det är flera moment som försvinner - bocka ben, vända på kortet, klippa av ben... får man bara till snitsen så är det inte så svårt. En bra pincett är dock obligatoriskt, annars blir det ett elände.
1. Stäng av allt vad write protect, read protect och code protect heter.
2. Se till att "low voltage program" är avstängd, annars händer mycket underliga saker om RB6 inte är låg.
3. Ställ in oscillatorn (HS funkar bra från ca 4 MHz).
4. Se upp med brown out detect så den inte står för lågt (eller stäng av den helt).
5. Power Up timer ska normalt sett vara aktiverad (väntar några ms innan programmet startar för att spänningen ska hinna stabiliseras)
6. Watchdoggen kan du nog stänga av för att slippa hantera den...
2. Se till att "low voltage program" är avstängd, annars händer mycket underliga saker om RB6 inte är låg.
3. Ställ in oscillatorn (HS funkar bra från ca 4 MHz).
4. Se upp med brown out detect så den inte står för lågt (eller stäng av den helt).
5. Power Up timer ska normalt sett vara aktiverad (väntar några ms innan programmet startar för att spänningen ska hinna stabiliseras)
6. Watchdoggen kan du nog stänga av för att slippa hantera den...
- Illuwatar
- Inlägg: 2256
- Blev medlem: 10 november 2003, 14:44:27
- Skype: illuwatar70
- Ort: Haninge
- Kontakt:
Tackar - detta ser ut som det jag har listat ut. Skall dock "utveckla" LED-testet till att blinka i en oändlig loop för att se som programmet verkligen körs eller om det nyper efter en kort stund. Skall även fixa en "öppen" 0-modemkabel så jag kan enkelt testa om serieporten på PC'n gnäller. Jag har upplevt att serieportar är lite olika när det gäller CTS/RTS/DTR/DSR.
Senast redigerad av Illuwatar 10 oktober 2007, 10:24:08, redigerad totalt 1 gång.
- Illuwatar
- Inlägg: 2256
- Blev medlem: 10 november 2003, 14:44:27
- Skype: illuwatar70
- Ort: Haninge
- Kontakt:
Nu blinkar LED'en på kortet, så då har jag fått alla fuse-bitarna på rätt plats. Det låter inte som något märkvärdigt, men är man upplärd på AVR så känns detta rätt så knasigt. Dessutom misstänker jag att Bumblebee har lite svårt med just fuse-bitdelen. Ofta så misslyckades verify på just detta. Så jag bytte till XWisp2 och där verkar det fungera bättre. Inga verify-fel på fuse-bitarna (och en LED som blinkar).
Nästa steg är då bootloadern. Får jag väl in denna och funktionen är som den skall kan jag gå vidare i bygget.
Nästa steg är då bootloadern. Får jag väl in denna och funktionen är som den skall kan jag gå vidare i bygget.
- Illuwatar
- Inlägg: 2256
- Blev medlem: 10 november 2003, 14:44:27
- Skype: illuwatar70
- Ort: Haninge
- Kontakt:
Problemet var simpelt men lätt att missa om man ser hur schemat ser ut. Pinne 5 i headern för serieporten hade glömts att koppla in till GND. En liten trådbit på ca 1 cm löste problemet.
Så när detta löste sig har det gått framåt. Bootloadern fungerar och jag kunde läsa in PIC-koden från Dennis. Lade en kickrom-fil och fpga-filen på ett SD-kort (Sandisk 512 MB) och tryckte i sladden. Via serieporten får man lite debuginfo så där kan man se om SD-kortet hittas och om filerna laddas in korrekt. Och det såg hur bra ut som helst.
Så nu har jag kommit till den punkt där jag får upp OSD-menyn (dessutom via kompositvideoutgången). Det verkar i alla fall som jag har fått till videoomvandlaren rätt. Och vanliga SD-kort fungerar fint (just detta för 98:- på Teknikmagasinet). Nu måste jag rota fram ett gammalt PS2-tangentbord och tillörande råtta.
Jag kommer dock få ett litet problem: jag har ingen skärm som klarar 31kHz/50Hz VGA. Alla jag har kräver minst 60Hz. Så det var en jädrans tur attt jag lade dit videoomvandlaren (en Original Minimig skulle varit oanvändbar för mig). Frågan är inte om man skulle göra en verison där man skippar VGA helt och lägger in en RGB->Component i stället. Någon som har ett bra schema på en sådan krets?
Så här ser boot-up sekvensen ut:
Så när detta löste sig har det gått framåt. Bootloadern fungerar och jag kunde läsa in PIC-koden från Dennis. Lade en kickrom-fil och fpga-filen på ett SD-kort (Sandisk 512 MB) och tryckte i sladden. Via serieporten får man lite debuginfo så där kan man se om SD-kortet hittas och om filerna laddas in korrekt. Och det såg hur bra ut som helst.
Så nu har jag kommit till den punkt där jag får upp OSD-menyn (dessutom via kompositvideoutgången). Det verkar i alla fall som jag har fått till videoomvandlaren rätt. Och vanliga SD-kort fungerar fint (just detta för 98:- på Teknikmagasinet). Nu måste jag rota fram ett gammalt PS2-tangentbord och tillörande råtta.
Jag kommer dock få ett litet problem: jag har ingen skärm som klarar 31kHz/50Hz VGA. Alla jag har kräver minst 60Hz. Så det var en jädrans tur attt jag lade dit videoomvandlaren (en Original Minimig skulle varit oanvändbar för mig). Frågan är inte om man skulle göra en verison där man skippar VGA helt och lägger in en RGB->Component i stället. Någon som har ett bra schema på en sådan krets?
Så här ser boot-up sekvensen ut:
Kod: Markera allt
Minimig Controller build 07-10-2007
by Dennis van Weeren
fatsize:242
fatno:2
fatstart:241
dirstart:725
direntrys:512
datastart:757
clustersize:16
MMC card found!
FPGA init is high
file found
FPGA bitstream file opened
************************************* (jag tog bort lite * för att spara plats)
FPGA bitstream loaded
FPGA configured
loading kickstart
file found
.......................... (betydligt fler prickar)
kickstart loaded