8051
{{{kuvateksti}}}
| }}8051
{{#if: | | }} {{#if: | | }}Tyyppi: | electronics |
Tekijät: | useita |
Aloitettu: | 2023 |
Tila: | version 1.0 |
GitHub: | [] |
URL: | [{{{url}}}] |
8051 kokeilu- ja kehitysalusta
Metropoliasta saadun lahjoituksen myötä hacklabille suunniteltiin ja toteutettiin 8051 kokeilulauta.
Ohessa kuvat käyttövalmiista kurssilaudasta:
8051 Paketti
Paketti sisältää siis
- Prosessorilaudan
- Näyttölevyn (näyttölevy ei ole pakollinen eikä välttämätön, mutta kuuluu pakettiin)
- Prosessorilaudalla on 2x20 pinninen koirasliitin ja näyttölevyssä 2x20 pinninen naarasliitin.
- Käytännössä tämä on laajennusväylä.
- Jos haluaa rakentaa useampia laajennuksia pinottavaksi, pitää liitimet olla pitkäpinnisiä (pitkäpinnisiä ei ole).
- Pitkäpiikkiseksi väyläliittimeksi sopii esim. tämä
- FTDI RS232-USB muuntimen (kiinakopio, näkyy toimivan). Valmis muunnin on halvempi kuin FTDI-piiri.
- USB-A - Mini-USB johto
Komponentit, jotka eivät ole putkissa, nauhassa tai laatikoissa (MCU,RAM,573-latch,PLCC32-kanta, Näyttö, FTDI) ovat KAKSI-kerroksisessa lokerikossa. Lokerikossa on myös FTDI-muuntimia. Lokerikko kannattaa avata varovasti ja sulkea huolella. Lattialle kipatut komponentit ovat ikäviä kerätä.
Ohessa kuvat lokerikon pääli- ja pohjakerroksesta. Pohjakerroksessa ovat pääosa liittimistä.
Tietenkin tarvitaan myös piirilevyt. Samassa laatikossa tullee olemaan myös valmiiksiohjelmoitu rommi.
Kokoamisohjeita
Piirilevyssä on hyvin merkittynä sinne kuuluvat komponentit. Hacklabilla saatavilla olevista komponenteista johtuen on valittava seuraavat vaihtoehdot:
- 7.5k vastus 10k vastusten tilalle.
- 560R vastus 470R tilalle
- 22pF konkat ovat itseasiassa lokerikossa 33pF, mutta sitä ei päältä huomaa. Ei vaikuta toimivuuteen.
- R14 ja R15 (10k) tilalle kannattaa laittaa 4k7, näissä pinneissä oli kynnysjänniteongelmia.
LEDit ovat varmaankin kinkkisimmät komponentit kolvata. Ne on sivulle näyttäviä ledejä, jolloin piiirlevyn voi myös koteloida ja saada ledit näkyviin. Näitä oli tuurilla labilla yksi kela.
Jos ei ole kokemusta pintaliitoskokoonpanosta, niin ensimmäinen kurssijakso on pintaliitoksista ja levyn kokoonpanosta. Kurssilta voivat kokeneetkin saada hyviä vinkkejä.
Näyttölevy
Näyttölevyn komponentteja ei ole koottu lokerikkoon, vaan näiden keräily on jätetty komponetti-wikin ja seinälokerikoiden käytön opiskeluksi ja tutustumiseksi.
Laajennukset
Laajennuksia tullaan tekemään muutamia ja muitakin kannustetaan tekemään omia keksintöjään.
- Ainakin on tulossa näppäimistö
- Protosuunnittelun asteella on monitoriin Breakpoint-HW, joka voinee vaatia muutaman iteraation, jotta saadaan ajoitukset kohdalleen.
- Ext.Ram osoitteisiin mapattua IO:ta on helppo tehdä
- Lisätiedoissa Application Notes löytyy AN425, jossa on I2C kontrollerin PCF8584 esimerkkitoteutus koodiajureineen.
Näitä PCF8584:ia löytyy labilta. Se on toteutukseltaan niin pieni, että sen voi sisällyttää vaikka jokaiseen levyyn. Osoitteen rajaus vaatii enemmän rautaa.
Tekniset dokumentit
Tekninen materiaali löytyy Depilin github-sivuilta: https://gitlab.com/Depili/80c51
Soveltuvat lahjoituksessa saadut komponentit ovat seuraavat:
1. 74HC573D SOIC20 8-bit osoite latch
2. CAT28F010NI-12 PLCC32 eeprom
3. AS6C6264-55SCN SOP28 8kx8 SRAM
4. P80C51FA-4A PLCC44 prosessori
5. 2x16 LCD-paneeli LR4422
Ohjelmistototeutukseen on päätetty käytettäväksi Paul Stoffregen:in PAULMON2 - monitoria. Viitteenä on myös vastaava piirikaavio. Paulin sivusto on hyvinkin mielenkiintoinen: PRJC.com
Muuta materiaalia:
- asl-current.tar.gz - ASL Assembler - Linux
- aswcurr.exe - ASL Assembler - Windows
- sdcc-4.4.0-amd64-unknown-linux2.5.tar.bz2 - Small Device C Compiler
- lcd_ex01.c esimerkkikoodi 8051:lle, kääntäjän testaukseen
- sdccman.pdf Ohje
- Kaikenlaista muuta
PAULMON2 - käyttöohje
Käyttöohjeet on koottu PAULMON2:n html-tiedoistoista ja lokalisoitu (viittaukset poistettu) omalla koneella käytettäväksi. Koottu HTML-dokumentti on tulostettu PDF-tiedostoksi. Käyttöohjeet sisältävät alkuperäisen ohjeistuksen, joten Hacklabin 8051-projektin muutokset eivät välttämättä (ellei niitä sinne editoida) sisälly.
Linkkejä:
Open source C-kääntäjä, Windows/Linux/Mac
PCA Cookbook, hyvä yleisesitys PCA:sta
Rauta
J3:lla ohjataan prosessorille näkyvää muistikarttaa. Pinnit oikosuljettu=HIGH ja avoin=LOW.
Osoite | Layout HIGH | Layout LOW | ||
---|---|---|---|---|
Progmem | Ext.Ram | Progmem | Ext.Ram | |
0000-1FFF | Rom1 | Ram1 | Rom2 P0 | Ram1 |
2000-3FFF | Ram2 | Ram2 | Rom2 P1 | |
4000-5FFF | IO.0 | Rom2 P2 | IO.0 | |
6000-7FFF | IO.1 | Rom2 P3 | IO.1 | |
8000-9FFF | Rom2 P0 | Rom2 P0 | ||
A000-BFFF | Rom2 P1 | Rom2 P1 | ||
C000-DFFF | Rom2 P2 | Rom2 P2 | ||
E000-FFFF | Rom2 P3 | Rom2 P3 | Ram2 | Ram2 |
- 2 x 128k rom; toiseen monitori (rom1), toiseen käyttäjän koodi (rom2). Näin käyttäjän koodia sisältävä rommi saadaan ohjelmallisesti kirjoitettavaksi.
- 2 x 8k ram: toinen aitoa rammia, toinen mapattuna sekä extrammiin että progmemiin, täten tänne voi kirjoittaa kokeilukoodia ilman rommiin kirjoittamista.
Laudan skema: 80c51_main.pdf
Laudan BOM: 80c51_main_BOM.pdf
Laudan layout: Layout 80c51_Layout.png
LCD-laajennuksen alustava piirikaavio: LCD piirikaavio
LCD-laajennuksen alustava layout: LCD layout