Ik gebruik al een poosje een PIC18F4620 als een universeel werkpaard in verschillende applicaties vanwege z'n veelzijdigheid en omdat hij eenvoudig te programmeren is.

Recentelijk ben ik aan het experimenteren met een USB-interface chip van FTDI. Dit werkt leuk maar nu ben ik een multichannel highspeed ADC-box aan het ontwerpen en nu loop ik tegen het probleem aan dat de PIC (@10MIPS) niet snel genoeg meer is om de
ADC-chip aan te sturen en uit te lezen, de data te bufferen en
door te sturen naar de USB-chip.

Wat is een snellere vervanger voor de PIC18F4620?

Verlanglijstje:

- ongeveer 100MIPS
- gemakkelijke behuizing, bij voorkeur DIP
- intern RAM en ROM
- gemakkelijk te herprogrammeren (flash)

Alle adviezen zijn welkom.

Mvg,

Teuniz

100Mips is wel erg moeilijk voor een controller.

Is een FPGA niet een betere oplossing? Of een microcontroller met een FPGA voor high speed functionaliteit.

Een mogelijk systeem wat ik voor ogen zou hebben is een FPGA die snel de data in en uit zou sturen naar een groot RAM geheugen (Soort van DMA controller), dit allemaal onder controle van een microcontroller.

Een andere optie is gewoon een 60MIPS controller te nemen gebaseerd op de ARM core. De LPC2100 van philips zijn wel fijn en erg rap. Paar keer iets mee gemaakt, gemakkelijk te programmeren en intern ram en rom.

Probleem is van al deze oplossing dat ze niet in DIP te verkrijgen zijn. Voti.nl verkoopt wel ARM chips, met programmer en een converter printje naar DIP, misschien is dat een optie.

maar neen . 100 mips is geen probleem
een goeie ouwe 8051 bijvoorbeeld.

8051f120. loopt 100 mips op zijn sokken en kan ook nog eens harware vermenigvuldigen , delen en heeft een MAC aan boord voor als je complexe berekekenigen moet doen.
en de A/D en DAC's zitten er al in. en je hebt ook nog een 64 digitale io pinnen. ...

Er moeten vaak twee dingen gebeuren. Ten eerste zijn er wat "regel dingen" en daarna moet er data overgestuurd worden. Een PIC of AVR is heel prima in beiden, als er maar niet te veel data gestuurd hoeft te worden.

Als de data te veel wordt, kan je als eerste proberen om de data buiten de PIC (of avr) te houden. Dus: Kan je niet met een buffertje of zo zorgen dat de ADC direct op de ftdi-databus kan? En dan regelen dat de PIC dus de juiste read-write lijntjes van de FTDI en de buffers toggled.

Hoe snel, hoeveel bits per sample wil je halen?

Als je een serieel FTDI chipje gebruikt neem dan ook de handshake lijnen mee als je geen data wilt verliezen. FTDI heeft er een appnote over.

Bedankt voor de reacties.
Even wat meer info, het huidige ontwerp betreft een 4-kanaals ADC gebaseerd op de AD974 van Analog Devices, een 4-kanaals 16-bits ADC. Communicatie geschied via een SPI-bus. Aangezien isolatie noodzakelijk is heb ik opto's in de SPI-bus geplaatst. Hierdoor kan de klokfrequentie van de SPI-bus niet hoger zijn dan 2.5MHz. De interface met de USB-chip (FT245R van FTDI) is 8-bits parallel. De bemonsteringsfrequentie is 10KHz per kanaal. Dat genereert dus 80KB/sec.

Is overclocken mogelijk ?
Op 48 MHz heb ik weinig problemen gehad, en 80KByte/seconde klinkt niet onmogelijk.
De 24F reeks is natuurlijk 16 of 40 MIPS, maar dan moet de code aangepast worden.

Bij 100 mips of hoger kom je al snel uit bij ARM9/ARM10/ARM11 of DSP. Mischien is dit wat http://www.sparkfun.com/commerce/product_info.php?products_id=8228. Veel van deze micrcontrollers gebruiken externe geheugen. Ik ben bang dat jij mogelijk je eisen zult minderen. Eventueel kan je ook voor de lpc237X of lpc236x serie kiezen. Deze draaien op 72MHz.

AT91SAM9263 220 MIPS @ 200MHz.

http://www.atmel.com/dyn/resources/prod_documents/doc6249.pdf
http://www.atmel.com/dyn/resources/prod_documents/6249s.pdf

Helaas BGA behuizing. Er zullen nog wel meer zijn die zo snel draaien. Anders een AVR overclocken op 40MHz=40MIPS, zou wel eens kunnen werken.

De kans dat je 100 mips of meer in een DIL socket zal vinden is uiterst klein. Alles wat snelheid vraagt zit tegenwoordig in SMD vorm en het wordt zeker prettig bij BGA's.

Nu of je die 100 mips echt nodig hebt is natuurlijk iets anders. En laat nu net uw bootleneck die spi bus zijn.

Nu in uw geval zou ik kiezen voor een 16/18/20/24 bit AD converter met en gemultiplexte ingang en bus aansluiting.

Kies dan een microprocessor die genoeg pinnen heeft om de ganse bus te vormen en je gaat uw 100 mips niet nodig hebben.

Oh enne, er bestaan tegenwoordig microprocessrors met USB 'built in' en dat is natuurlijk te prefereren natuurlijk.

Inter ram en rom?
ROM zal geen enkel probleem zijn en RAM zit er wel bij maar gewoonlijk weinig. Van een paar honderd bytes tot 1K/2K soms 4K maar dan is de kous af.

Gemakkelijk programmeren kan eigenlijk via elk systeem op voorwaarde dat er een flash geheugen beschikbaar is en ISP of JTAG aansluiting. ISP is het simpelste, JTAG laat tevens toe van in circuit te debuggen. Bij chips die 'fuses' gebruiken kan je via JTAG ook de fuse instelling wijzigen.

Atmel AVR's zijn misschien wel uw beste vriend.

[Bericht gewijzigd door Benarty op ]