Fontos klub információ
Important club information
Welcome, Guest. Please login or register.


Author Topic: HW készítés (Read 134005 times)

Offline lgb

  • EP addict
  • *
  • Posts: 3531
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
    • http://lgb.hu/
Re: HW készítés
« Reply #330 on: 2014.March.27. 21:14:43 »
Quote from: Povi
Na, ezt nem is tudtam, hogy az SD kártya SPI-t használ... :-) Azt meg ugye a szinte a legegyszerűbb 8 bites PIC-ek is tudják alapból, kvázi ipari szabvánnyá vált jelenleg.

Ahogy mondani tetszik. En mondjuk inkabb AVR parti vagyok, mint PIC, de igen. Ha utana keresel sok kapcsolast talalsz is, ahol egy PIC vagy AVR van SD kartyaval osszekotve. A problema max a jelszint kulonbseg szokott lenni: ha a mikrokontroller 5V-rol megy, mivel az SD kartyanak 3.3V kell (bar vannak kartyak ami tobfele tapfeszen is mennek, de itt 2.7V es hasonlok ertendok, semmi esetre sem 5V!) tapfeszben, es nyilvan annak megfelelo jelszint az SPI buszon is. Ezt itt a forumon is par tobbszor ecseteltem, ha van egy SPI busz illesztod EP-hez, akkor ratehetsz - elvileg - egy rakas SPI-os dolgot, SD kartyaval kezdve, az ethernet vezerlon egeszen pl a SPI buszos FPU-ig, mert olyan is van :-D

Ami a lenyeg: amennyire tudom, egyes (?) SD kartyaknak van sajat protokoljuk is ugymond (ami egyaltalan nem SPI), de egyreszt ennek specifikaciojat nem szoktak reklamozni (nem is "ingyenes"), masreszt nem is feltetlen egyseges, viszont elvileg gyorsabb lehet, azert van (az mas kerdes, hogy egy mai SD kartya tud mondjuk sacc-per-kabe 20MHz SPI clock-ot, ami azert ket megabyte/sec feletti atviteli sebesseget jelenteni, nem hinnem, hogy egy EP-hez ez keves lenne, hehe). SPI-t viszont elvileg mind tud, egyszerubb az ember dolg, SPI ugyis ismeros itt/ott.

Itt van mindjart egy szep pelda, ahol egy Atmel ATiny 8 labu (!) mikrokontrollerrel csinal SD kartyarol kozvetlenul WAV lejatszast. Kapcsrajz is van, ami egyszeruen pofatlanul egyszeru, lathato, hogy az SD kartya tenyleg csak SPI buszra van kotve kozvetlenul, semmi faxni! Az egesz cucc (MCU is) 3.3V-rol megy, igy jelszint problem sincs, a hangot meg valojaban PWM-el oldjak meg vmi "szokasosabb" D/A helyett. Szerintem zsenialisan egyszeru a fenti project, szep munka! :)
« Last Edit: 2014.March.27. 22:16:56 by lgb »

Offline Povi

  • EP addict
  • *
  • Posts: 1913
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Chrome 33.0.1750.154 Chrome 33.0.1750.154
    • View Profile
    • http://povi.fw.hu
Re: HW készítés
« Reply #331 on: 2014.March.28. 09:32:37 »
Quote from: lgb
En mondjuk inkabb AVR parti vagyok, mint PIC, de igen. Ha utana keresel sok kapcsolast talalsz is, ahol egy PIC vagy AVR van SD kartyaval osszekotve. A problema max a jelszint kulonbseg szokott lenni: ha a mikrokontroller 5V-rol megy, mivel az SD kartyanak 3.3V kell (bar vannak kartyak ami tobfele tapfeszen is mennek, de itt 2.7V es hasonlok ertendok, semmi esetre sem 5V!) tapfeszben, es nyilvan annak megfelelo jelszint az SPI buszon is. Ezt itt a forumon is par tobbszor ecseteltem, ha van egy SPI busz illesztod EP-hez, akkor ratehetsz - elvileg - egy rakas SPI-os dolgot, SD kartyaval kezdve, az ethernet vezerlon egeszen pl a SPI buszos FPU-ig, mert olyan is van :-D

Ami a lenyeg: amennyire tudom, egyes (?) SD kartyaknak van sajat protokoljuk is ugymond (ami egyaltalan nem SPI), de egyreszt ennek specifikaciojat nem szoktak reklamozni (nem is "ingyenes"), masreszt nem is feltetlen egyseges, viszont elvileg gyorsabb lehet, azert van (az mas kerdes, hogy egy mai SD kartya tud mondjuk sacc-per-kabe 20MHz SPI clock-ot, ami azert ket megabyte/sec feletti atviteli sebesseget jelenteni, nem hinnem, hogy egy EP-hez ez keves lenne, hehe). SPI-t viszont elvileg mind tud, egyszerubb az ember dolg, SPI ugyis ismeros itt/ott.

Itt van mindjart egy szep pelda, ahol egy Atmel ATiny 8 labu (!) mikrokontrollerrel csinal SD kartyarol kozvetlenul WAV lejatszast. Kapcsrajz is van, ami egyszeruen pofatlanul egyszeru, lathato, hogy az SD kartya tenyleg csak SPI buszra van kotve kozvetlenul, semmi faxni! Az egesz cucc (MCU is) 3.3V-rol megy, igy jelszint problem sincs, a hangot meg valojaban PWM-el oldjak meg vmi "szokasosabb" D/A helyett. Szerintem zsenialisan egyszeru a fenti project, szep munka! :)
Velem a PIC "jött szembe" pár évvel ezelőtt, amikor MIDI vezérlőt akartam építeni a régi szovjet analóg elektromos orgonámhoz. Az AVR-t (még) nem ismerem közelebbről, de ahogy nézem az utasításokat, eléggé hasonló a PIC-hez. Ami miatt jobb lenne most az AVR, az, hogy az Ardunino is azt használja, és az most nagyon elterjedt és támogatott :-) Ja, meg PICKit2-t nagyon olcsón tudtam venni egy haveromtól, szóval adott volt minden a PIC-ezéshez... :-) De ez már nagyon off-topic, lehet, jobb lenne egy külön microkontroller topicot létrehozni, ha van rá igény.

A waw lejátszó nagyon kemény... :-) Itt is nagyon jól látszódik, hogy a hardvert mennyivel egyszerűbb létrehozni, mint programot írni hozzá... :-)
*** Speicherplatz zu klein

Offline Z80System

  • EP addict
  • *
  • Posts: 3937
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 33.0.1750.154 Chrome 33.0.1750.154
    • View Profile
Re: HW készítés
« Reply #332 on: 2014.March.28. 10:47:28 »
Quote
Itt is nagyon jól látszódik, hogy a hardvert mennyivel egyszerűbb létrehozni, mint programot írni hozzá...
Hát vagy pedig a példában ami nehéz a hardver készítésben, azt már az alkatrészek magukba foglalják, az meg egy mellékes körülmény hogy néhány dróttal vki össze is kötötte őket.

A progit meg ugye 0 -ról kell írni, ezért tűnik nehezebbnek ...

Ha valaki a hw -nak nekiugrana tranyókból ... na az lenne olyan nehéz mint az sw.
« Last Edit: 2014.March.28. 12:13:50 by Z80System »
Z80 System

Offline lgb

  • EP addict
  • *
  • Posts: 3531
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
    • http://lgb.hu/
Re: HW készítés
« Reply #333 on: 2014.March.28. 12:12:05 »
Quote from: Povi
Velem a PIC "jött szembe" pár évvel ezelőtt, amikor MIDI vezérlőt akartam építeni a régi szovjet analóg elektromos orgonámhoz. Az AVR-t (még) nem ismerem közelebbről, de ahogy nézem az utasításokat, eléggé hasonló a PIC-hez. Ami miatt jobb lenne most az AVR, az, hogy az Ardunino is azt használja, és az most nagyon elterjedt és támogatott :-) Ja, meg PICKit2-t nagyon olcsón tudtam venni egy haveromtól, szóval adott volt minden a PIC-ezéshez... :-) De ez már nagyon off-topic, lehet, jobb lenne egy külön microkontroller topicot létrehozni, ha van rá igény.

Ja, mert leirhatom, hogy konkretan milyen erveim vannak az AVR mellett, de szerintem itt tenyleg nincs ertelme, meg amugy is: ha valakinek PIC tetszik, ahhoz ert, akkor minek problemazok en itt :)

Viszont egy jobban temaba vago dolog: amikor eloszor felvetettem, hogy SD kartya kene EP-hez, en AVR-ben gondolkodtam. A project ott akadt el (azon kivul, hogy elvi sikon mar elakadt, meg amugy is lusta ember hireben allok), hogy mikeppen illesztem az AVR-t az EP-hez (az gyerekjatek, hogy az AVR-hez az SD kartyat ...), ui hiaba nyomom meg pl 20MHz-es orajellel szegeny mikrokontrollert, az meg mindig nehezkes ilyen sebessegnel is, hogy pl a Z80-tol erkezo RD (vagy WR)-t pontosan akkor fogadja, es "ne veszitse el", vagy akkor kene egy kulso latch, es vmi "handshake" protokol stb, amit viszont mar tulbonyolitottnak ereztem (bar oszinten: nem vagyok MCU guru, az is lehet, hogy egyes MCU-k tudnak ilyet mar beepitve .......). A most keszult megoldasban az a szep, hogy nincs ilyen gondja, hisz nem egy CPU-n/MCU-n futo programot hasznal (ami lassu lehet ilyen buszos idoziteseknel mar ...), hanem egy celaramkort, az mas kerdes, hogy ezt egy CPLD-ben valositottak meg, es nem diszkret alkatreszekkel. A CPLD/FPGA vilaggal viszont meg nem vagyok koszonoviszonyban :(


Quote
A waw lejátszó nagyon kemény... :-) Itt is nagyon jól látszódik, hogy a hardvert mennyivel egyszerűbb létrehozni, mint programot írni hozzá... :-)

Ja, _HA_ mar kesz egy olyan altalnos hw, amiben van CPU mag, SPI busz, stb stb, akkor persze konnyu (azt nem neked kell csinalni!), vegulis itt vezetekekkel osszeforrasztod kb, mas alkatresz nem nagyon van benne :) SW oldal sem nehez amugy, ha valaki mar megirt pl egy adott reszt es mint kesz "modult" te csak felhasznalod, nem erzek nagy kulonbseget itt sw es hw kozott ...
« Last Edit: 2014.March.28. 12:39:49 by lgb »

Offline Povi

  • EP addict
  • *
  • Posts: 1913
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Chrome 33.0.1750.154 Chrome 33.0.1750.154
    • View Profile
    • http://povi.fw.hu
Re: HW készítés
« Reply #334 on: 2014.April.01. 19:21:04 »
Quote from: lgb
Viszont egy jobban temaba vago dolog: amikor eloszor felvetettem, hogy SD kartya kene EP-hez, en AVR-ben gondolkodtam. A project ott akadt el (azon kivul, hogy elvi sikon mar elakadt, meg amugy is lusta ember hireben allok), hogy mikeppen illesztem az AVR-t az EP-hez (az gyerekjatek, hogy az AVR-hez az SD kartyat ...), ui hiaba nyomom meg pl 20MHz-es orajellel szegeny mikrokontrollert, az meg mindig nehezkes ilyen sebessegnel is, hogy pl a Z80-tol erkezo RD (vagy WR)-t pontosan akkor fogadja, es "ne veszitse el", vagy akkor kene egy kulso latch, es vmi "handshake" protokol stb.
Nem tudom, az AVR-nél van-e ilyen, de a PIC-nél van PSP üzemmód, ami úgy tűnik, megoldást jelentene a Z80-hoz illesztéshez.
Itt van egy általános leírás róla:
http://www.t-es-t.hu/elokep/pic/felhkk/kk/sz1401.htm

És egy példa konkrétan a Z80 illesztéséhez:
http://www.t-es-t.hu/elokep/pic/felhkk/kk/sz1405.htm#01

Így lehetne egy SPI porttal kibővíteni az EP-t, sajnos a PIC nem tudja egyszerre a I2C-t és az SPI (persze lehet, hogy van olyan típus, ami igen, amivel én dolgoztam ott választani kell, hogy vagy ez, vagy az). Sajnos nem vagyok otthon a mikroszámítógépek belső felépítésével, hogy hogyan is kéne konkrétan az EP buszbővítőjéhez illeszteni a PIC-et, hogyan látná azt a Z80 (gondolom portokon keresztül, de gondolom kéne még valami címválasztó áramkör is?). De ez az PSP mód talán pont azt tudja, amit te írsz problémának, hogy hogyan is legyen illesztve a Z80-hoz a MCU.
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 1913
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Chrome 33.0.1750.154 Chrome 33.0.1750.154
    • View Profile
    • http://povi.fw.hu
Re: HW készítés
« Reply #335 on: 2014.April.01. 19:24:01 »
Quote from: lgb
Ja, mert leirhatom, hogy konkretan milyen erveim vannak az AVR mellett, de szerintem itt tenyleg nincs ertelme, meg amugy is: ha valakinek PIC tetszik, ahhoz ert, akkor minek problemazok en itt :)
Érdekel, csak nem tudom, fárasszuk-e vele itt a többieket.
*** Speicherplatz zu klein

Offline lgb

  • EP addict
  • *
  • Posts: 3531
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
    • http://lgb.hu/
Re: HW készítés
« Reply #336 on: 2014.April.06. 19:28:35 »
Quote from: Povi
Érdekel, csak nem tudom, fárasszuk-e vele itt a többieket.

PSP uzemmod az cool, nem vagyok azert nagy MCU magus, de tetszik, ilyenrol nem tudtam se AVR-en, se PIC-en amugy, hogy oszinte legyek. Ha mar at lettunk mozgatva masik topic-ba, itt talan kevesbe off-topic a tema, es nem farasztunk mindenkit feleslegesen. Tehat: anno, amikor eloszor gondoltam, hogy csinalok barmit MCU-val, nezegettem sokaig, termeszetesen ket fo alternativat talaltam AVR vs PIC. Amiert nekem az AVR jott be: egyreszt sokkal nyiltabb, regebb ota van egy rakas nyilt forrasukodu software ra, maga a gcc is fordit C-t pl AVR-re, stb. Mig PIC eseten elegge "uzleties" a megkozelites, pl C compiler normalis kb penzert van, vagy legalabbis nem open source. OK, lehet, kozben ez valtozott ... Meg lehet, nem is annyira C-re kell nyomulni :) Viszont nekem a programozas (SPI-al) is egyszerubben tunt, az elso kiserletem AVR-rel PC parhuzamos portra par drot forrasztasaban allt, es azzal remekul mukodott is (ok, lehet PIC-nel se lett volna bonyolultabb?).

Ami azonban konkret architekturalis szempontbol bejott: az AVR tenylehesen 8 bit RISC. A PIC (legalabbis a 24-es sorozat elottiek, ha jol remlik) nem igazan, elegge furanak tunt, van az a WREG vagy mi, nem lehet szabadon regisztereket hasznalni, ossze-vissza lapozgatni kell a memoriat stb. AVR-nel (legkisebbnel is) egyben latni a memoriat, nincs lapozgatas, van 32db register, ahol nehany specialis kiveteltol eltekintve (register relativ 16 bit cimzes stb) kb barmelyik regisztert hasznalhatod, nincs egyetlen "fo akkumlator" mint PIC eseten az a WREG. Illetve sok (legtobb) utasitas tenylegesen 1 orajelciklus. Na itt van egy kis kavarodas: PIC-nel is ezt irjak sok helyen hogy egy orajelciklus, csak nem trivialis megtalalni a specifikacioban hogy ott egy utasitasciklusrol beszelnek, ahol az tobb "valodi" orajelciklus! Ez kb hasonlo mint Z80-on az M es T cycle viszonya. AVR-en viszont egy orajelciklus alatt valoban egy "fizikai" orajelciklust ertenek. Azaz azonos orjalen az AVR joval gyorsabb, egyszerubben programozhato (32db register, nincs lapozgatas, egy darab kulcsfontossagu regiszter aka WREG), illetve tobb open source cuccos van ra.

Na tomoren kb ennyi. Ez a PSP mod viszont tenyleg  cool a PIC-en ....

Offline Povi

  • EP addict
  • *
  • Posts: 1913
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Chrome 33.0.1750.154 Chrome 33.0.1750.154
    • View Profile
    • http://povi.fw.hu
Re: HW készítés
« Reply #337 on: 2014.April.06. 20:06:04 »
Quote from: lgb
maga a gcc is fordit C-t pl AVR-re, stb. Mig PIC eseten elegge "uzleties" a megkozelites, pl C compiler normalis kb penzert van, vagy legalabbis nem open source. 

Ami azonban konkret architekturalis szempontbol bejott: az AVR tenylehesen 8 bit RISC. A PIC (legalabbis a 24-es sorozat elottiek, ha jol remlik) nem igazan, elegge furanak tunt, van az a WREG vagy mi, nem lehet szabadon regisztereket hasznalni, ossze-vissza lapozgatni kell a memoriat stb. AVR-nel (legkisebbnel is) egyben latni a memoriat, nincs lapozgatas, van 32db register, ahol nehany specialis kiveteltol eltekintve (register relativ 16 bit cimzes stb) kb barmelyik regisztert hasznalhatod, nincs egyetlen "fo akkumlator" mint PIC eseten az a WREG. Illetve sok (legtobb) utasitas tenylegesen 1 orajelciklus. Na itt van egy kis kavarodas: PIC-nel is ezt irjak sok helyen hogy egy orajelciklus, csak nem trivialis megtalalni a specifikacioban hogy ott egy utasitasciklusrol beszelnek, ahol az tobb "valodi" orajelciklus! Ez kb hasonlo mint Z80-on az M es T cycle viszonya. AVR-en viszont egy orajelciklus alatt valoban egy "fizikai" orajelciklust ertenek. Azaz azonos orjalen az AVR joval gyorsabb, egyszerubben programozhato (32db register, nincs lapozgatas, egy darab kulcsfontossagu regiszter aka WREG), illetve tobb open source cuccos van ra.

Na, ezt nem is gondoltam volna, hogy a C fordító léte dönt... :-) Mondjuk én nem értek a C-hez, de bonyolultabb dolgokat nyilván egyszerűbb lenne abban csinálni, mint assembly-ben (pl. robot vezérlése). Viszont idő-kritikus dolgokat meg inkább assembly-ben lehet írni.

A WREG ugyanaz, mint a Z80-nál az akkumulátor.

Viszont ami érdekes a PIC-nél, és nehezen szoktam meg, hogy a memóriacímeken lévő byte-ok egyben a regiszterek is (file-register-nek hívják). Tehát ha pl. van egy 368 byte-os RAM-om, akkor az olyan mintha lenne 368 db általános célú regiszterem is.

A lapozás tényleg elég bonyolult, de gondolom ez amiatt van, mert 14 bitesek az opcode-ok, és abba nem fér bele az utasítás és a cím is egyszerre, pl. a CALL és GOTO utasítás esetén 11 bit a cím, 3 bit maga az utasítás, de simán lehet 2kB-nál nagyobb is a programmemória.

Órajel: úgy van, ahogy írtad, mert 1 utasítás minden esetben 1 utasításciklus, de az 4 órajelciklussal egyenlő. Viszont a feltételes utasítások kivételével (ami 2 ciklus, ha hamis a feltétel), itt minden utasítás 1 ciklus (4 órajel ciklus) ideig tart. Furcsa is volt az elején, hogy még Z80-os beidegződésekkel kódoltam, hogy gyorsabb legyen a kód, de itt mindegy. :-)
*** Speicherplatz zu klein

Offline lgb

  • EP addict
  • *
  • Posts: 3531
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
    • http://lgb.hu/
Re: HW készítés
« Reply #338 on: 2014.April.06. 20:29:42 »
Quote from: Povi
Na, ezt nem is gondoltam volna, hogy a C fordító léte dönt... :-) Mondjuk én nem értek a C-hez, de bonyolultabb dolgokat nyilván egyszerűbb lenne abban csinálni, mint assembly-ben (pl. robot vezérlése). Viszont idő-kritikus dolgokat meg inkább assembly-ben lehet írni.

Nem csak az dont, az is. En csinaltam kevert dolgokat is, csak assembly-ben, meg csak C-ben is. Igaz semmi igazan komoly dolgot ... Es ugye nekem az is fontos, hogy windows-os baromsagok nem erdekelnek, szoval legyenek linux tool-ok ala. Mivel windows-t nem hasznalok, soha nem is hasznaltam, nem is fogok. A C fordito persze csak egy pelda volt, van sok mas tool is, ahol erezheto, hogy AVR_re van ingyenes, raadasul open source, windows es unix-ok ala ugyanugy letezo stb megoldas, mig PIC-nel sok esetben joval behataroltabbak a lehetosegek.

Quote
A WREG ugyanaz, mint a Z80-nál az akkumulátor.

Igen, de ha mar egy tok uj architekturat tanul meg az ember, es valaszthat (PIC/AVR) akkor nyilvan az tetszik, ahol nincs kb egyetlen kituntetett regiszter, hanem 32db szabadon hasznalhato :) Nyilvan Z80-nal (vagy pl 6502-nel is) adott a nem RISC CPU-k jellegzetessege, a kintuntetett regiszter, amit szokas akkumlatornak nevezni, valoban.

Quote
Viszont ami érdekes a PIC-nél, és nehezen szoktam meg, hogy a memóriacímeken lévő byte-ok egyben a regiszterek is (file-register-nek hívják). Tehát ha pl. van egy 368 byte-os RAM-om, akkor az olyan mintha lenne 368 db általános célú regiszterem is.

AVR-nel is elerheted elvileg a (adat) memoria "reszekent" a regisztereket, ha nagyon akarod. Csak ott nem igazan van erre igeny, mivel van 32db "valod" register, es legtobb opcode tudja hasznalni mindet, ami azert eleg szokott lenni ....

Quote
A lapozás tényleg elég bonyolult, de gondolom ez amiatt van, mert 14 bitesek az opcode-ok, és abba nem fér bele az utasítás és a cím is egyszerre, pl. a CALL és GOTO utasítás esetén 11 bit a cím, 3 bit maga az utasítás, de simán lehet 2kB-nál nagyobb is a programmemória.

Hat igen, AVR korszerubb, eleve a program memoria (flash) 16 bites (egy opcode elfoglalhat egyetlen 16 bites word-ot vagy kettot), es 64K cimtartomanyt lenne elerheto a legegyszerubb AVR-n is (ha lenne neki annyi egyaltalan ...).

Quote
Órajel: úgy van, ahogy írtad, mert 1 utasítás minden esetben 1 utasításciklus, de az 4 órajelciklussal egyenlő. Viszont a feltételes utasítások kivételével (ami 2 ciklus, ha hamis a feltétel), itt minden utasítás 1 ciklus (4 órajel ciklus) ideig tart. Furcsa is volt az elején, hogy még Z80-os beidegződésekkel kódoltam, hogy gyorsabb legyen a kód, de itt mindegy. :-)

Na igen de AVR_nel, mivel "igazi" RISC, a legtobb utasitas 1 orajelciklus _valojaban_, tehat elvileg itt negyszer gyorsabb mar eleve ... Amelyik utasitas tovabb tart ugymond (pl ugras stb) az is pl csak 2 orajelciklus, tehat meg igy is gyorsabb mint a PIC leggyorsabb utasitasa.

Persze, amugy azert nem teljesen fair a dolog, mert IMHO (bar nem neztem utana) a legtobb kulonbseg abbol fakad, hogy az AVR joval ujabb, igy koreszerubb design. AFAIK PIC-nel is van a 24-es sorozat, ami mar joval tobb hasonlosagot mutat az AVR-rel, es performanciban is kb hasonlo.

Ez az egesz nalam amugy ugy indult el, hogy voltak mindenfele leirasok a neten, ahol irta tobb ember is, hogy PIC-rol AVR-re tert at, mert a PIC tul lassu volt 1-2 feladathoz, mig AVR-rel siman ment. Tipikusan ilyen pl hogy egy atlagos ilyen MCU-val AVR eleg gyors, hogy sw-bol generalj VGA signalt (!),  ami egy sima VGA monitorra kotheto. Ennek vannak uber cool valtozatai is, pl egy csavo csinalt egy demot, amiben hang, kep stb van es egy darab AVR (es messze nem is a legnagyobb!) van, imho nagyon cool (ennek van sima PAL tv-s valtozata is asszem)!

http://www.linusakesson.net/scene/craft/

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13623
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
    • http://enterprise.iko.hu/
Re: HW készítés
« Reply #339 on: 2014.April.06. 20:52:23 »
100%-ig kompatibilis Nick chipet lehetne ezzel a cuccal csinálni?

Offline lgb

  • EP addict
  • *
  • Posts: 3531
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
    • http://lgb.hu/
Re: HW készítés
« Reply #340 on: 2014.April.06. 21:07:03 »
Quote from: Zozosoft
100%-ig kompatibilis Nick chipet lehetne ezzel a cuccal csinálni?

Ezzel biztos nem ... Eleve ezek a "low-end" AVR-ek mondjuk 8-28 labu cuccok, ami boven nem lenne eleg. Igaz, vannak nagyobb labszammal (pl 40 DIP-ben, vagy meg tobb nem dip-ben), amde a nagyobb baj imho az, hogy egy mikrokontroller - szerintem - nem erre valo egyszeruen. Elkepzelheto, hogy vmi SMD nagyobb AVR-rel lehetne, de erre joval inkabb megfelel egy CPLD vagy egy FPGA. Ha emlekszel, ez kb uaz a dilema, amit mar eloadtam SD kartya illesztes kapcsan is regen: hiaba gyors az AVR (vagy egy MCU altalaban) ugy magaban, gond van, ha egy rendszerbe kell beinteglralni, ahol necces az idozites. Erre a celra egy altalanos CPU (hiszen egy MCU magja is az) helyett alkalmasabb egy erre a celra tervezett konkret logikai halozat, amiben ugyan esetleg memoria is van (pl regiszterek, beolvasott LPB ertekek stb), maga a Nick is ilyen. A CPLD/FPGA vegulis ez tudna, csak te alakitod ki benne a konkret halozatot. MCU hasznalata inkabb ott indokolt, ahol tenyleg egy altalanos celu CPU-ra van szukseg nemi integralt RAM-al es program memoriaval valamint I/O-val. Ha ennel specialisabb, akkor celfeladatra jobb a PLD-k vilaga.

Amugy a Nick2-n mar gondolkodtam, az a baj, hogy a PLD-khez meg vegkepp zold vagyok :( Raadasul kene integralni RAM-ot is kulon hozza. Miert? mert ha pl VGA kimenetet akarunk hozza (en ebbol indulnek ki ...), ott ugye mas a frissitesi frekvencia erosen. Most az valoszinu nagyobb kompatibilitasi problemaval jarna, ha siman a VRAM-bol mas timing-el olvasnank ... A megoldas tehat kb az lenne, hogy a Nick helyettesito tovabbra is a TV PAL signalnak megfelelo idozitessel olvas, es egy belso bufferbe helyezi a megjelenitendo kepet (ott mar sima framebuffer pixel alapon 8 bit / pixel), aztan ezt olvassa a VGA signal generator voltakeppen. Ez azert is erdekes, mert innentol eleg konnyu plusz funkciokat hozzaadni, hogy pl a Nick kompatibilis LPB/LPT olvasas es kepfelepites mellett pl biztositana mas lehetoseget a belso framebufferhez valo hozzafereshez, de ez elegge messzire vezetne, es ez mar erosen nem Nick filozofia. Ami regalisabb, es mar beszeltunk rola: x2 (vagy nagyobb) Nick byte/slot olvasasi mod, esetleg ajanlanam a Spectrum attribute mode-ot, igy Spectrum hw emu nelkul is egyszerubb lenne az elet, csupan annyi kene, hogy kicsit maskepp ertelmezi az attrib adatot egy beallitas hatasara ... Stb.
 
Ami AVR temaban megis erdekes lehetne itt: FPSLIC nevu cucc. Ez egy FPGA es egy AVR MCU egyben. Ez azert is jo, mert amugy az FPGA-knak van egy olyan tulajdonsaga, hogy a CPLD-tol elteroen "elfelejtik" a tartalmukat bekapcsolaskor, igy azt fel kell tolteni (akkor miert nem CPLD? mert azok meg viszonylag egyszerubbek es kisebb dolgokra jok egy FPGA-hoz kepest), ha mar van ott MCU vele egybeintegralva, ez azonnal megoldja ezt a kerdest, es meg kozben is hasznalhato az FPGA mellett!!
« Last Edit: 2014.April.06. 21:21:16 by lgb »

Offline Povi

  • EP addict
  • *
  • Posts: 1913
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Chrome 33.0.1750.154 Chrome 33.0.1750.154
    • View Profile
    • http://povi.fw.hu
Re: HW készítés
« Reply #341 on: 2014.April.06. 21:23:35 »
Quote from: lgb

Tipikusan ilyen pl hogy egy atlagos ilyen MCU-val AVR eleg gyors, hogy sw-bol generalj VGA signalt (!),  ami egy sima VGA monitorra kotheto. Ennek vannak uber cool valtozatai is, pl egy csavo csinalt egy demot, amiben hang, kep stb van es egy darab AVR (es messze nem is a legnagyobb!) van, imho nagyon cool (ennek van sima PAL tv-s valtozata is asszem)!

http://www.linusakesson.net/scene/craft/
Ezt a demót ismertem én is, csodálkoztam is, hogy tud 20MHz-en szoftverből VGA jelet generálni, de így, hogy azonos órajelen 4x gyorsabb, mint a PIC, már érthető, persze így is nagy teljesítmény volt megírni szerintem :-) Mert amiket én számolgattam, ott kb. az jött ki, hogy 20 Mhz-en hajtva (8 bites 16f sorozatú PIC) kb. 160 pixel széles videójelet (ami ugye csak 50Hz a VGA 60-jával szemben) lehetne előállítani. És akkor még nem csinált semmit, csak statikus képről van szó, se zene, se semmi.

Meg ami az AVR mellett szól, de ezt már talán írtam is, hogy az Ardunino is ezt használja, és ahhoz tényleg rengeteg támogatás van, meg nyílt forráskódú dolgok, és olcsó kiegészítők. Persze azokat lehetne PIC-hez is kötni, csak meg kell írni a szoftvert hozzá, ami egyébként AVR-hez meg már alapból megvan.
*** Speicherplatz zu klein

Offline lgb

  • EP addict
  • *
  • Posts: 3531
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
    • http://lgb.hu/
Re: HW készítés
« Reply #342 on: 2014.April.06. 21:45:01 »
Quote from: Povi
Ezt a demót ismertem én is, csodálkoztam is, hogy tud 20MHz-en szoftverből VGA jelet generálni, de így, hogy azonos órajelen 4x gyorsabb, mint a PIC, már érthető, persze így is nagy teljesítmény volt megírni szerintem :-) Mert amiket én számolgattam, ott kb. az jött ki, hogy 20 Mhz-en hajtva (8 bites 16f sorozatú PIC) kb. 160 pixel széles videójelet (ami ugye csak 50Hz a VGA 60-jával szemben) lehetne előállítani. És akkor még nem csinált semmit, csak statikus képről van szó, se zene, se semmi.

Az mind1, imho itt a demoban se tud mast csinalni, max h/v retrace alatt van ideje barmire, egy scanline "hasznos" (ertsd: tartalom kijelzesere hasznalt) ideje alatt az idozites pontossaga miatt massal nem tud foglalkozni. Aztan van meg a trukk, amit azota sokan kihasznaltak: a hardware SPI buszt hasznalja arra hogy pl 8 bitet kikuldjon egymas utan egyetlen utasitassal, ha eleg ket szin (1 bit / pixel) 8 bixelen belul, akkor ez azert durva gyorsitast tesz lehetove. Ezen meg anno gondolkodtam, hogy csinalok ket kulso latch-el tarolot, amit feltolt 8 pixelenkent, aztan SPI buszon nyomja ki a pixeleket, ahol a 0/1 ertek a ket latch ertek lesz, ezzel meg elfogadhato sebesseggel kb attribute modot valositottam meg. Csak ennyi RAM nincs egy AVR-on igazan :) Ui en ilyen sajat epitesu 6502 es hasonlo CPU-t hasznalo szamitogephez hasznaltam volna, hogy legyen vmi kijelzesi lehetosege ... De ugye ATmega8-nak pl van 1K ram-ja, az frambuffernek kisse keves, kulso RAM-al meg azonnal nem lehet megfelelo sebesseggel megoldani ezt maris :( Ertem ezt ugy, hogy meg text only kijelzessel (charset a flash-bol!) is eleg karcsu 1K RAM .... 40*25-os felbontas mellett marad 24 byte kb, ami talan a stack-re eleg, de akkor ennyi (es a fenti attribute, szin otletre messze nem maradt RAM). Ha meg mindig text-only-ban nagyobb felbontas es szin es kene akkor pl 80*25 -re tipikusan 4K RAM kene, amilyen AVR ugyan van, de mar nem olyan elegans, hogy olcso, low-end AVR-el is tok jo (azert is irtam a kulso latch-eket, mert alacsony labszamu, olcso AVR-ben gondolkodtam ahol 8 I/O line latna el kb minden feladatot, latch-ek fele, es a CPU fele is az egyetlen kapcsolat).

Nade ez lassan mar itt is off-topic lesz, mivel erosen nem EP :) Kene egy MCU topic talan kulon.
« Last Edit: 2014.April.06. 21:49:53 by lgb »

Offline Povi

  • EP addict
  • *
  • Posts: 1913
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Chrome 35.0.1916.114 Chrome 35.0.1916.114
    • View Profile
    • http://povi.fw.hu
Re: HW készítés
« Reply #343 on: 2014.June.04. 06:39:29 »
van-e olyan 74138-hoz hasonló áramkör, ahol az aktív jel ugyanúgy LOW, a többi kimenetet viszont Z (nem pedig HIGH). Vagy hogyan lehetne ezt megoldani?
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 1913
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Chrome 35.0.1916.114 Chrome 35.0.1916.114
    • View Profile
    • http://povi.fw.hu
Re: HW készítés
« Reply #344 on: 2014.June.04. 07:00:03 »
amit találtam, hogy a 74138 kimeneteire rákötök 2db 74125-ös quad bus buffert, úgy, hogy egy bithez tartozó bemenet és enable lábakat összekötöm. Így L -> L és H -> Z lesz...
*** Speicherplatz zu klein