Beste uC guru's 
Voor mijn project wil een een uC gaan gebruiken. Nu heb ik al een globale beschrijving wat ik er van wil verwachten. Misschien dat jullie aan de hand van die "checklijst" mij een aanbeveling kunnen doen wat betreft het merk/type. Het zal of Atmel of PIC worden.
De checklist:
* De uC wordt voornamelijk als CPU gebruikt. Dit houdt in, dat ik een externe adres bus/databus wil hebben. Hierbij extra pennen welke ChipSelects zijn, welke intern in de uC uitgekodeert dienen te worden.
* Ondersteuning Serieel/USB en misschien UTP/TCP stack
* 3.3V
* JTAG standaard programming interface (TDI/TDO/TCK/TMS)
* DIP 40 behuizing
* Instructie set moet interrupts kunnen ondersteunen (ongeveer zoals de Z80 en gelijksoortige processoren dit hadden).
* Low power consumption
* Voldoende geheugen capaciteit, de te verwachten complexiteit van de firmware zou best wel eens 16KB op zijn minst in beslag kunnen nemen
* 16 bit interne adres bus, welke ook naar buiten gebracht kan worden.
* EEPROM geheugen om instellingen vast te kunnen houden.
* RAM /werk gegeugen ongeveer 8 - 16KB (kan ik evt. extern doen met D-rams)
De programmeertaal is voor mij niet van belang, dit mag zowel C als assembly zijn.
De structuur van mijn project is vrij eenvoudig: De diverse printen hebben allen een uC bus. De benodigde datalijnen (8bit) en adreslijnen. Eigenlijk kun je elke print als een IO chip zien (data bus, 1 of meerdere adreslijnen voor het selecteren van de registers, R/W signalen en een Chip Select)
Het is dus echt cpu bus georienteerd. Ik zal speciale functies zoals AD/DA converters niet gaan gebruiken, noch zal ik dergelijke features nodig hebben.
Dus afgaande op deze informatie.. welke uC en van welk merk zou kunnen bieden wat ik nodig heb?
B.v.d voor een duwtje in de juiste richting 
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
met 16k krijg je daar nooit van je leven een tcp/ip stack in . die dingen zijn 30 .. 40 k + de ram die je nodig hebt om je frames te kunnen bufferen : 1503 byte minimum voor 1 frame
en dan je ethernet driver ... of bedoelde je UDP (User Datagram Protocol) in plaats van UTP ( Unshielded twisted pair = ethernet ). ga je tcp over serieel lopen of over ethernet ?
hoeveel 'kick' heb je nodig ? met andere woorden wat ga je met dat ding doen ?
als je kick nodig hebt zou ik daar een F126 zetten van silicon labs. die heeft alles aan boord wat je zoekt ( 128 k flash , 2 k eeprom , 8 k ram , jtag trace/debug/program interface , ok er zitten wat a/.d en d/a op maar die heb je niet nodig , 2 full blown uarts. en het beest loopt 100 mips. tis een 8051 core. dat ding kan tenminste vermenigvuldigen en delen in hardware, iets wat die AVR en PIc niet kunnen. je hebt dubbeel DPTRS , hopen interrupt sources , interrupt priority is progrsammeerbaar en voor multitasking is het een droom want er zijn 4 registerbanken. een taskswitch is gewoon de registerbank switchen , geen gepriegel met stacks pushen en poppen, dingen saven of risico dat routines in elkaars vaarwater zitten rommelen
tzit wel niet in DIL ( wie gebruikt dat nu nog ...
) maar in 100 pin tqfp
...
Bedankt voor je reactie.
Ja, de geheugen capaciteit die ik aangaf was een schatting voor de eigen code, dus exclusief wat ik extra nodig zou hebben.
Het doel van het ding is het digitaal aansturen van de versterker die ik aan het bouwen ben. De gebruiker interface bestaat uit een grafisch display, een rotary encoder en twee drukknoppen (aan beide zijden van de rotary encoder).
De wens voor een TCP/IP stack is dan omdat ik de amp dan via een UTP netwerk kan aansturen/monitoren.
Tevens krijgt de amp een cpu bus slot op de achterkant, waar ik eventueel extra (toekomstige te ontwerpen) apparatuur aan kan gaan koppelen, zoals een digitaal gestuurde mixer/preamp (reeds gebouwd). Deze extra modules zullen als het ware als insteek kaarten werken voor de uC in de versterkerbak. Dus zodra ik de pre-amp aan zou sluiten via een flatcable, dat dus zijn ROM in het adresgebied van de uC geplugd word, waardoor weer extra menu opties aanwezig komen. Dus met de UI van de versterker kunnen dan ook alle aangesloten apparaten bediend worden. En dit eventueel weer met de computer d.m.v. TCP/IP.
Op die manier wil ik dus een remote te beheren audio systeem in elkaar gaan zetten.
Het ontwerpen van een print voor TFPQ verpakkingen is niet zo'n probleem, ik besteed de printen toch uit. Het zelf er op solderen zal wel een verschrikkelijk priegelwerk worden. En anders moet ik het remote aansturen maar vergeten..
De uC die je beschrijft, bevat wel alles wat ik nodig zou hebben om dit hele project modulair op te bouwen. Vooralsnog ben ik me alleen op de versterker aan het concentreren. Maar aangezien dit apparaat de 'master' gaat worden voor welke eventuele uitbreiding dan ook, wilde ik hier zeker veel aandacht aan besteden.
[Edit: ] En als ik het TCPIP gedeelte nu laat varen (of hiervoor een 'oude' isa kaart gebruiken (LOL), welke uCs zullen dan geschikt zijn? Ik weet niet of MicroChip controllers met JTAG heeft. Dit is wel een vereiste omdat ik ook Xilinx CPLDs gebruik, en wil alle programmeerbare chips via de JTAG bus doorlussen, zodat ik het apparaat niet uit elkaar hoef te halen om firmware updates te doen. Krijgt nl een JTAG firmware bus op de achterkant (din plugje of zo)
[Bericht gewijzigd door MagicBox op ]
Nog een vraag.. 'k ben nu aan het kijken naar de datasheet van die F126. Het ding ondersteunt het in-system debuggen via JTAG.
Ik kan er echter alleen niet uithalen of hij ook via JTAG is te programmeren. Debuggen en programmeren zijn twee wezenlijk verschillende dingen..
[Edit:] Heb 't al gevonden, en ja, kan ook via JTAG geprogrammeerd worden. Ik heb het idee dat die dingen van Silicon Labs best wel aan de dure kant zijn..
P.S. Ik ben nog nieuw op het gebied van uCs (echter niet wat cpu technieken betreft) en ben nu bezig een weg te banen door het bos van de duizenden types die er zijn 
De chips van Atmel lijken een eigen bus te hebben om ze in-system te programmeren alhoewel ze wel een jtag bus hebben voor het debuggen. De PICs lijken geen van allen met JTAG te werken..
[Bericht gewijzigd door MagicBox op ]
Nou, een hoop wijzer geworden van de datasheets.
Ik denk dat ik voor mijn toepassing het beste Atmel kan gebruiken, de ATmega32. Die kunnen ook allemaal met JTAG worden geprogrammeerd.
Ik geef dan wel de TCPIP communicatie op, maar RS232/USB is ook prima. En hij is in DIP40 te verkrijgen bij Conrad. Jammer dat ze niet de DIP40 versie van de ATmega64 hebben.
Die dingen zijn trouwens wel errug prijzig. Zouden die Atmels ergens anders niet goedkoper te krijgen zijn?
Op 16 juli 2005 22:33:42 schreef MagicBox:
Ik geef dan wel de TCPIP communicatie op, maar RS232/USB is ook prima. En hij is in DIP40 te verkrijgen bij Conrad. Jammer dat ze niet de DIP40 versie van de ATmega64 hebben.
Die dingen zijn trouwens wel errug prijzig. Zouden die Atmels ergens anders niet goedkoper te krijgen zijn?
€6,20 bij elektronica-onderdelen of anders bij futurlec voor $6,90 (~€6) (niet nederlands maar meestal binnen een week binnen voor $3 verzendkosten).
Wow bedankt voor de tip! Dat is een megagroot verschil in prijs zeg, en Futurlec heeft ook nog eens de ATmega128 met 64 pinnen wat nog wel goed te solderen is.
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
en als je nu toch al xilinx gebruikt .... waarom map je de Microblaze e rniet in ?
of schakel over naar altera. een NIOs 32 bit core erin , alle periferie erin ( Ethernet etc ) ze hebben complete tcp/ip stacks. je kan er zelfs direct linux op lopen.
de NIOs devkit heeft drivers aan boord voor grafische lcd's usb etheret en vele meer. alles volledig gratis.
Kijk naar Stratix 1 of stratix II
Roland van Leusden
It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.
Op 17 juli 2005 01:11:53 schreef madwizard:
[...]
€6,20 bij elektronica-onderdelen of anders bij futurlec voor $6,90 (~€6) (niet nederlands maar meestal binnen een week binnen voor $3 verzendkosten).
Kan nog goedkoper, www.aavrs.nl
ATMEGA32 € 5,28
Op 17 juli 2005 09:47:52 schreef free_electron:
en als je nu toch al xilinx gebruikt .... waarom map je de Microblaze e rniet in ?
De CPLDs die ik gebruik zijn de XCR3064 (44 pin PLCC) Ik heb er bij Xilinx 8 van besteld, daar dit formaat breed inzetbaar is voor eenvoudige interfacing. Ik gebruik ze dus eigenlijk om alle digitale/analoge pheriferie te vertalen naar een register set.
Neem nu b.v. de power controller welke ik op dit moment aan het maken ben. De inschakelvertragings relays / speaker relays, mainpower relays, powerbutton en leds, temperatuur detect ingangen en DC detect ingangen worden vertaald naar een eenvoudige register map met behulp van die xilinx cplds. Verder zit er nog een state-machine in die het aanzetten/uitzetten van de versterker gaat regelen. Door dit alles te vertalen naar een universeel 8bit data busje, kan ik mdus met een uC eenvoudig deze powercontroller benaderen, zonder dat ik rekening hoef te houden met poorten op de microcontroller. Het is ten slotte een uitbreidbare CPU bus.
Om Microblaze te gebruiken, zal ik naar dure, priegelige versies (SpartanII FPGAs) toe moeten gaan. Is erg prijzig, en verzendkosten zijn helemaal erg. Daarom had ik dus van die xcr3064s 8 tegelijk besteld. Die komen toch wel op.
Dit is de registermap van de xilinx die op het Pheriphial Control bordje komt (zie thread "Ideale ster")
gradtje
Ja... en toen ?
Is het niet beter om van een bestaand webserver-ding uit te gaan en deze dan zo uit te breiden dat je je versterker en alles ermee aan kunt sturen ?
WEB is wel leuker dan USB of serieel, omdat je dan met je laptop wireless op de bak kunt zitten 
gradtje
Ja... en toen ?
Mag je dit dan allemaal zomaar gebruiken, of moet je vor usb, tcp/ip etc licenties kopen ?
Op 17 juli 2005 09:47:52 schreef free_electron:
en als je nu toch al xilinx gebruikt .... waarom map je de Microblaze e rniet in ?of schakel over naar altera. een NIOs 32 bit core erin , alle periferie erin ( Ethernet etc ) ze hebben complete tcp/ip stacks. je kan er zelfs direct linux op lopen.
de NIOs devkit heeft drivers aan boord voor grafische lcd's usb etheret en vele meer. alles volledig gratis.Kijk naar Stratix 1 of stratix II
Op 17 juli 2005 10:56:13 schreef gradtje:
Is het niet beter om van een bestaand webserver-ding uit te gaan en deze dan zo uit te breiden dat je je versterker en alles ermee aan kunt sturen ?
WEB is wel leuker dan USB of serieel, omdat je dan met je laptop wireless op de bak kunt zitten
Web.. ethernet.. TCPIP, eigenlijk allemaal het zelfde. Ethernet om 't zaakje op mijn bestaand netwerk aan te sluiten. TCPIP om te communiceren.
Ik ben al verder wezen zoeken en er zijn complete moduultjes te vinden welke TCPIP <> RS232 brugjes zijn. Is wel prijzig, maar het neemt me een hoop werk uit handen.
Het bouwen is allemaal niet zo'n probleem.. het verkrijgen van losse onderdelen wel. Waar vind ik zo gauw RJ45 connector sockets? Waar vind ik RealTEK ethernet controllers? Dus misschien is zo'n converter moduultje wel de beste oplossing.
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
Op 17 juli 2005 11:10:39 schreef gradtje:
Mag je dit dan allemaal zomaar gebruiken, of moet je vor usb, tcp/ip etc licenties kopen ?[...]
bij altera niet.
de NIOs omgeving heeft dit alles aan boord royalty free ( gebaseerd op GCC en Gnu code )
Code is niet porteerbaar naar andere cpu ( of toch heel moeilijk ) je hebt hun NIOS processor nodig + hun IP cores maar die zitten erbij. de NIOS is een 'soft' processor. wat wil zeggen dattie in VHDL beschikbaar is. die processor wordt gemapt op ene gate array . je hebt een SOPC designer programma, daar klik je de functies aan die je nodig hebt en leg je de adress map vast. UARTs, ethernet , ram ,flash vanalles. JE definieert de memory map. De synthesiser schrijft dan de volledige VHDL code om al de blokken aan elkaar te lijmen en hij genereert de .h files voor de compiler. Er rolt een Project uit wat je met 1 klik compileert in Quartus en in de gate array kan duwen. Terzelfdertijd komt er een project uit in C/C++ met alle correct libraries geladen , gemapt op jouw hardware.
er zitten voorbeelden bij van een complete webserver die op een zelfgebouwde computer draait die op die manier gemaakt wordt.
www.altera.com ga naar download sen download Quartus II versie 5.0 ( 277 megabyte ) en NIOs devkit ( 340 megabyte ) en je kan aan de slag. Een Bord met een Stratix I of II erop en je bent vertokken.
@TS:
waarom in godsnaam een parallel bus intern? ooit al van I2C gehoord ? dat zou veeeeeeeel simpeler zijn.
voor je Io een PCF8574 en je kan zelf ook I2C slaves maken in je xilinx.
[Bericht gewijzigd door free_electron op ]
...
@TS:
waarom in godsnaam een parallel bus intern? ooit al van I2C gehoord ? dat zou veeeeeeeel simpeler zijn.
voor je Io een PCF8574 en je kan zelf ook I2C slaves maken in je xilinx.
Complexiteit. Parallel bus neemt wat meer draadjes in beslag, maar kost minder resources (control logica). Als ik een seriele interface zou willen ondersteunen in mijn CPLDs, kost dit dus meer resources. Complexiteit moet toch ergens liggen. Leg ik liever bij de bus zelf neer, dus vandaar parallel. Is tevens ook makkelijker uitbreidbaar.
Verder, het is een beproefde techniek 
Edit: vergat ik toch de hoofdreden: Rechtreeks mijn IOs in de memory/io ruimte van de uC mappen 
Op 17 juli 2005 11:17:29 schreef MagicBox:
[Op 17 juli 2005 10:56:13 schreef gradtje: Is het niet beter om van een bestaand webserver-ding uit te gaan en deze dan zo uit te breiden dat je je versterker en alles ermee aan kunt sturen ?
WEB is wel leuker dan USB of serieel, omdat je dan met je laptop wireless op de bak kunt zitten]Web.. ethernet.. TCPIP, eigenlijk allemaal het zelfde. Ethernet om 't zaakje op mijn bestaand netwerk aan te sluiten. TCPIP om te communiceren.
Ik ben al verder wezen zoeken en er zijn complete moduultjes te vinden welke TCPIP <> RS232 brugjes zijn. Is wel prijzig, maar het neemt me een hoop werk uit handen.
Het bouwen is allemaal niet zo'n probleem.. het verkrijgen van losse onderdelen wel. Waar vind ik zo gauw RJ45 connector sockets? Waar vind ik RealTEK ethernet controllers? Dus misschien is zo'n converter moduultje wel de beste oplossing.
Even voor de record: Web != ethernet != TCPIP != RS232
Je kunt prima TCP/IP over RS232 draaien. Als je b.v. een modem gebruikt om naar een ISP te bellen doe je niet anders. Probeer even niet alle termen door elkaar te halen.
Een RS232 verbinding naar de dichtsbijzijnde computer kun je gebruiken om deze computer als gateway te inzetten. Hoeveel traffic verwacht je eigenlijk, een paar Kbit / sec max?
En wil je ooit nog eens audio gaan streamen naar je versterker via TCP/IP dan heb je toch meer nodig dan een AVR. Aangezien je je keuze voor processor nog niet hebt gemaakt, ben ik het eigenlijk wel met Gradtje eens. Neem een Linksys wireless router. Daar is de source van publiek en kun je je eigen uitbreiding op maken. Hoef je ook niet meer te zoeken naar connectortjes en dergelijke. Die zijn trouwens de minste van je problemen volgens mij.
En verder doen Philips en anderen met hun midi setjes de besturing tussen de deelcomponenten al jaren met een i2c interface. Wellicht een idee voor het interne gedeelte van je versterker.
Op 17 juli 2005 13:48:55 schreef jojo:
[...]Even voor de record: Web != ethernet != TCPIP != RS232
Je kunt prima TCP/IP over RS232 draaien. Als je b.v. een modem gebruikt om naar een ISP te bellen doe je niet anders. Probeer even niet alle termen door elkaar te halen.
Een RS232 verbinding naar de dichtsbijzijnde computer kun je gebruiken om deze computer als gateway te inzetten. Hoeveel traffic verwacht je eigenlijk, een paar Kbit / sec max?En wil je ooit nog eens audio gaan streamen naar je versterker via TCP/IP dan heb je toch meer nodig dan een AVR. Aangezien je je keuze voor processor nog niet hebt gemaakt, ben ik het eigenlijk wel met Gradtje eens. Neem een Linksys wireless router. Daar is de source van publiek en kun je je eigen uitbreiding op maken. Hoef je ook niet meer te zoeken naar connectortjes en dergelijke. Die zijn trouwens de minste van je problemen volgens mij.
En verder doen Philips en anderen met hun midi setjes de besturing tussen de deelcomponenten al jaren met een i2c interface. Wellicht een idee voor het interne gedeelte van je versterker.
Voor de duidelijkheid: Ja, ik ben op de hoogte van het OSI model
En je hebt me net voorzien van een heel leuk idee! Ik had er namelijk nog niet aan gedacht om audio rechtstreeks naar de versterker te streamen. Dat wordt wel een los project.
Wat de verbinding tussen de verschillende apparaten betreft, is I2C een prima oplossing. Intern blijf ik gewoon een parallele CPU bus gebruiken vanwege eerder genoemde redenen.
Nog een opmerking..
Ik ben dit hele verhaal als hobby project in elkaar aan het zetten. Het moet allemaal dus wel enigsinds haalbaar zijn. Ballgrid FPGAs zijn allemaal hartstike leuk om mee te werken, maar niet echt practisch voor een iemand die geen SMD ontwikkel lab heeft op zijn hobby kamer 
De keuze voor de uC heb ik inmiddels wel gemaakt.
Dit gaat een ATmega128 worden in 64 pens behuizing. 'k doe er een los 8KB SRAM chipje bij (wat als snel video/bewerkings ram voor het grafisch LCD scherm gaat dienen). Achteraf ga ik de AD converters wel gebruiken, zij zullen de uitgangs spanning/stroom (is spanning over de source weerstanden meten) gaan meten zodat ik met wat rekenen het output vermogen realtime kan meten en tonen. En met extra programmeren tevens een limiter kan realiseren. De digitale volume controllers hebben peakdetect mogelijkheden. Verder nog wat leuke toeters en bellen er op zoals een level indicator voor het ingangs signaal e.d.
Dan blijft alles nog binnen de perken. Als ik later ooit nog TCPIP connectivity er op wil, dan maak ik wel een aparte 19" unit 1HE welke dit gaat regelen.
