SerieNr. 000001

Jeg roder med noget USB host kode for en kunde og når jeg så alligevel var igang, var det faktisk nemmest at programmere en microcontroller så jeg havde noget at debugge med i den fjerne ende.

Og når jeg så alligevel var igang med at programmere en microcontroller med USB kunne jeg jo ligeså godt bruge det til noget nyttigt.

Med andre ord: Et USB interface til vores RC2000 hulstrimmel-læser.

Interface stikket på en RC2000 er et 38 polet EDAC multistik, kendt af lydfolk overalt og stadig et aktivt varenummer, efter 50 år.

Sådan et stik er jo stort, så man kan faktisk godt klemme en 28 bens DIL microcontroller derind, hvis man barberer den lidt tæt:

Illustration: Privatfoto

Printet holdes på plads ved at akslen for fingerskruen passerer lige hen over chippen.

Benene er klippet af chippen og den er loddet på printkoret i "SMD" stil.

Den flerfarvede ledning er så jeg kan downloade ny kode.

Det viste sig hurtigt nødvendigt, da min USB kode fik Mogens' SUSE kerne til at crashe med en NULL pointer deref (tsk tsk!)

Men idag lykkedes det og som alle de der har set det ved, findes der ikke noget mere imponerende syn, end en RC2000 der sparker hulstrimmel ud i rummet med fem meter per sekund.

PC'en var en fantastisk hardware-hacker venlig platform da den kom frem: veldokumenteret, åben og lige til at gå til.

Men først forsvandt ISA bussen og nu er både LPT og COM porten med hård hånd elimineret fra moderne hardware.

Hverken MCA, EISA, PCI eller noget der er fulgt efter er hacker-venligt, det kræver mere eller mindre en FPGA og VHDL code og så er vi ovre i surface-mount helvedet med 1109 ben, der kun kan loddes med en opvarmet og omhyggeligt tilspidset carbon-nanotube i absolut vacuum og vægtløshed.

Men nu har jeg fået hul på USB bussen, og selvom jeg hader den af et godt og velinformeret hjerte, kan den trods alt bruges både til nytte og skæmt.

Koden er i C, compileret med SDCC, kører på en PIC18F25J50 og ligner en seriel-port på en OpenSolaris, SUSE eller FreeBSD maskine og er naturligvis Open Source.

Hvad har DU hacket idag ?

phk

Kommentarer (14)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#5 C Frigaard

Og hvad bruger du som USB driver på PIC'en? Vel ikke Microchips USB pakke?

Jeg fandt en opensource pakke for nogle måneder siden som jeg tilpassede en PIC14K50 under SDCC.

Vi en rettet og buxfixet version liggende til download på vores hjemmeside (dog er jeg ikke selv istand til at finde den, suk!)

.carsten

  • 0
  • 0
#7 Poul-Henning Kamp Blogger

@Carsten[0]:

Jeg havde brug for en PIC18 med to serielporte i anden sammenhæng og endte med at have nogle 25j50 til overs fra det projekt.

Jeg har ikke leget meget med arduino endnu, jeg har en tendens til at være hurtigere med C kode end med at lære et nyt sprog, men jeg ser arduino som et enormt pædagogisk redskab.

@Carsten[1]:

Jeg fandt en delvis fungerende USB/HID implementering som Alexander Enzmann havde skrevet på basis af MicroChips kode, den har jeg hovedrenoveret, renset for woodoo og generaliseret.

Poul-Henning

  • 0
  • 0
#8 Rasmus Toftdahl Olesen

Hej PHK

Jeg kan glæde med at Arduino'en også kodes i C (faktisk C++) med en hulens masse defines for hukommelses adresser, det kode man skriver i deres editor bliver smidt ind i en funktion der bliver kaldt af main.

Hvis nogen er interesserede kan jeg bidrage med et CMake build script og lidt eksempler så man slipper for at skulle rode med deres editor (der er lidt bedaget).

  • 0
  • 0
#9 Carsten Sonne

Jeg har ikke leget meget med arduino endnu, jeg har en tendens til at være hurtigere med C kode end med at lære et nyt sprog, men jeg ser arduino som et enormt pædagogisk redskab.

Aurodino er baseret på ATmega168 & ATmega328. Der er intergreret en 8 bit AVR processor i ATmega microcontrolleren. Der findes, som Rasmus skriver, bl.a. C kompilerer til AVR. Jeg tænke du måske havde rodet med det.

Jeg har selv kigget lidt på TinyOS og Contiki, der begge understøtter ATmega controlleren.

  • 0
  • 0
#10 Kasper Revsbech

Hvis nogen er interesserede kan jeg bidrage med et CMake build script og lidt eksempler så man slipper for at skulle rode med deres editor (der er lidt bedaget).

Hej Rasmus. Jo tak. Jeg ved ikke om det er at reklamere for andre steder men sådan et script og eksempler vil passe meget fint i gruppen Selvgjort er Velgjort på ing.dk (Tænker at det går når det nu er samme mediehus).

  • 0
  • 0
#11 C Frigaard

Jeg fandt en delvis fungerende USB/HID implementering som Alexander Enzmann havde skrevet på basis af MicroChips kode, den har jeg hovedrenoveret, renset for woodoo og generaliseret.

Jeps, "Xander" USB versionen kan virke med PIC's, det er også den, jeg har fundet. Den er rodet, men kan virke. Jeg fik dog aldrig USB low-speed til at virke...

.c

  • 0
  • 0
#12 Poul-Henning Kamp Blogger

Jeps, "Xander" USB versionen kan virke med PIC's, det er også den, jeg har fundet. Den er rodet, men kan virke. Jeg fik dog aldrig USB low-speed til at virke...

Hmm, vi burde lige koordinere, det er dumt hvis vi begge sidder og kæmper med at rydde det samme stykke kode op...

Poul-Henning

  • 0
  • 0
Log ind eller Opret konto for at kommentere