Pic aansturen door USB

Hallo,

Wij heb een vraag wat betreft het aansturen van een pic door USB. We zijn beginners op dit gebied (programmeren gaat al wel goed), en zouden graag een simpel ledje aan en uit laten gaan door het toetsenbord te gebruiken. We hebben al op internet gezocht maar we lopen hier nu vast. Zouden jullie ons op weg kunnen helpen ?

Het pic'je dat we gebruiken is 16F628A.

Alvast bedankt!

Kijk eens naar de FT232 chip, deze kan aan de USB poort gehangen worden en simuleert een seriële bus. Je kunt ook een PIC met ingebouwde USB mogelijkheden gebruiken, zoals de 18F2550 of 18F4550, maar dat is een stuk lastiger.

Diverse projecten en experimenten: www.elexperiment.nl

bedankt voor de reactie, maar we zijn een belangrijk ding vergeten toe te voegen en dat is: we gebruiken een usb poort maar tussen de pic en usb poort moet nog een seriële omzetter.

Ik ben geen pic gebruiker maar bestaat toch wel zoiets software usb voor pic. Ik gebruik voor avr's altijd v-usb, kan je zo goed als elke avr van usb voorzien.

Dit lijkt hetzelfde te doen voor pic.
http://code.google.com/p/16fusb/

Edit/
Als je toch chip wilt gebruiken, neem dan geen ftdi, veel te duur. Koop pl2303HX of CP2012, die kosten fractie van wat fdti vraag voor haar chips die precies hetzelfde kunnen.

[Bericht gewijzigd door peter79 op vrijdag 29 november 2013 14:45:14 (28%)

bedankt voor de reactie, maar we zijn een belangrijk ding vergeten toe te voegen en dat is: we gebruiken een usb poort maar tussen de pic en usb poort moet nog een seriële omzetter.

Dan heb je dus alleen een level converter zoals de max232 nodig. In de 16f628 zit al een uart die je kunt gebruiken. Die sluit je met de RX en TX via de max232 levelconverter direct aan op je RS232 > USB converter.

[Bericht gewijzigd door Ex-fietser op vrijdag 29 november 2013 14:56:32 (34%)

EricP

mét CE

Edit/
Als je toch chip wilt gebruiken, neem dan geen ftdi, veel te duur. Koop pl2303HX of CP2012, die kosten fractie van wat fdti vraag voor haar chips die precies hetzelfde kunnen.

Dat is dus bijna het slechtste advies wat je kunt geven. Silabs maakt mooie dingen. Die converter valt daar niet onder. Die pl2303 is ook altijd gezeur. Zeker als je met VCP aan de gang gaat (en dat doen de meesten). Drama is compleet als je meerdere van die dingen aan USB hebt hangen. Het probleem is meestal drivers, maar ja, die heb je wel nodig. De enige die dat een beetje knap voor elkaar lijkt te hebben is FTDI.

Arco

Special Member

Het softwarematig implementeren van USB is absoluut ook af te raden. Implementatie met hardware USB heeft al 32kb geheugen nodig voor het USB framework.
Zeker op een klein picje als de 627 nooit aan beginnen (als het al fatsoenlijk zou lukken)
En een PIC met hardware usb kost ook geen drol meer...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Op 29 november 2013 14:54:24 schreef Ex-fietser:
[...]

Dan heb je dus alleen een level converter zoals de max232 nodig. In de 16f628 zit al een uart die je kunt gebruiken. Die sluit je met de RX en TX via de max232 levelconverter direct aan op je RS232 > USB converter.

Bedankt voor je reactie,

Wij hebben al een max232 converter tot onze beschikking.
We komen er alleen niet uit in welk programma en hoe we dan die commando's naar de poort moeten verzenden.

weten jullie hier nog wat op?

Alvast bedankt

Arco

Special Member

Met een USB <-> RS232 converter kun je de USB poort van je PC (via de speciale driver die erbij hoort) gewoon als een seriële poort gebruiken.

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Op 29 november 2013 15:01:47 schreef EricP:
[...]Dat is dus bijna het slechtste advies wat je kunt geven. Silabs maakt mooie dingen. Die converter valt daar niet onder. Die pl2303 is ook altijd gezeur. Zeker als je met VCP aan de gang gaat (en dat doen de meesten). Drama is compleet als je meerdere van die dingen aan USB hebt hangen. Het probleem is meestal drivers, maar ja, die heb je wel nodig. De enige die dat een beetje knap voor elkaar lijkt te hebben is FTDI.

Gaat hier nu om wat simple uart naar usb, niet over VCP, dus irrelevant voor dit advies. ;)

De rest waar jij het over hebt kan ik ontkrachten uit eigen ervaring, nooit geen last van met A, C en D versie van de pl2303HX, gebruik ze echt heel veel en ken ook andere de ze veel gebruiken. PL2303HX doet gewoon wat die moet doen. En heb hier standaard meerder dingen aan usb hub hangen, ook meerder pl2303HX, nergens last van, gebruik ze ook icm meerdere laptops.
Zitten prima drivers bij, windows herkend pl2303HX ook gewoon gelijk. Alleen de A versie dus niet out of the box onder win8, wel onder win7 en lager, maar daar is wel trucje voor.

http://www.airdevilaccessories.com.au/downloads/2050356/PL2303HXA+Wind…

Maar dat is allemaal irrelevant voor de huidige versie D. ;)
http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=156&pcid=41

Edit/

Op 29 november 2013 15:18:58 schreef Arco:
Het softwarematig implementeren van USB is absoluut ook af te raden. Implementatie met hardware USB heeft al 32kb geheugen nodig voor het USB framework.
Zeker op een klein picje als de 627 nooit aan beginnen (als het al fatsoenlijk zou lukken)
En een PIC met hardware usb kost ook geen drol meer...

V-usb kan je al op bijv. attiny85(0.5KB ram, 8KB flash) laten draaien en heb je nog ram over voor andere dingen, kan HID keybord ernaast nog implanteren en ADC data laten uittypen in kladblok.

Attiny heeft 500bye ram, wat jij met 32KB wilt doen is mijn niet duidelijk en ook echt niet nodig!! Ik zie niet waarom bij pic ineens 32KB nodig zou hebben waar we bij avr wegkomen met 0.5KB en dan hebben we nog over. <2KB flash is ook al zat. Waar haal je die wijsheid vandaan als ik vragen mag?

Kan zo snel niet vinden wat 16fusb nodig heeft, maar dat is volgens mijn vork/port van v-usb, dus denk ook iets in richting van 0.5KB ram.

Van de website, kijk eens naar welke PIC de TS heeft, juist ja. ;)
"The 16FUSB is a software implementation of the USB low-speed for PIC16F628/628A microcontroller. "

Arco

Special Member

Waarom zou je met een 627/28 gaan zitten knoeien, als een 'echte' USB controller nauwelijks meer kost?

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Wij hebben al een max232 converter tot onze beschikking.
We komen er alleen niet uit in welk programma en hoe we dan die commando's naar de poort moeten verzenden.

Aan de 16f628 kant moet je een stukje programma maken dat de de uart uitleest. Dat kun je ook overal vinden op het web. Als je in de 16f628 een kleine terminal server maakt dan kun je gewoon als op een command line commando's geven aan je 16f628.

Aan de pc kant kun je bijvoorbeeld een terminal programma gebruiken.

Vroeger had je programma's als procomm. tegenwoordig heb je daarvoor programma's als Putty ( http://www.putty.org/ ) voor.

Dat is standaard software dat bestaat voor vrijwel elk os. Linux, windhoos, android enz. Als je in plaats van dat usb > rs232 ding een bleuToooth > rs232 dingetje gebruikt kun je het met een terminal app zelfs draadloos van je smartphone doen.

http://www.pial.net/using-the-hc-05-bluetooth-rs232-serial-module-for-…
http://www.pial.net/wp-content/uploads/2011/04/bluetooth_hc05.jpg

Als je een omzetter met een FTDI chip gebruikt heb je geen MAX232 nodig, die chip stuurt gewoon TTL nivo dat je met vrijwel alle uC's kunt gebruiken.
Een uC met USB implementatie hoeft niet duur te zijn, je hebt al een 18F14K50 voor zo'n 3 - 4 euro.

Just find out what you like and let it kill you

Op 29 november 2013 17:02:35 schreef Arco:
Waarom zou je met een 627/28 gaan zitten knoeien, als een 'echte' USB controller nauwelijks meer kost?

Dat geeft wellicht de voorkeur ja, al heeft dat ook voor- en nadelen tegenover een losse usb naar serial chip. Maar dat alles is toch irrelevant aan de vraag van TS, hij heeft al PIC(zie start post), model geeft die ook netjes op. Dus geef ik zoveel mogelijk oplossingen, welke hij liefste heeft moet die zelf maar even bepalen of anders even doorvragen hier in topic. ;)