Programmeerbare centrale unit

@Shiptronic,

Ja ik heb ook analoge 180MHz audio video voor een 16X16 matrix das weer wat anders.
Ik heb in het verleden nog wel eens wat geleverd aan NOS bestaat nu niet meer samen met de grass valley.

Groet Henk.

Everything should be as simple as possible, but not simpler.
Arco

Special Member

Het hangt ook af van wat je met die USB poorten doet. Aangezien PID/VID steeds veranderen, kan het zijn dat er ook een nieuwe driver moet worden geinstalleerd.

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

Mijn excuses voor de wat omslachtige omschrijving. Het is mijn eerste maal op een forum en moet duidelijk nog wat bijleren ;) Hieronder een betere uitleg, of moet ik misschien een nieuwe post aanmaken?

Wat is de opdracht:

De opdracht is het automatiseren van de programmatie van displays op een lopende band in een fabriek.
Iedere type display heeft namelijk een ander programma nodig, ieder verschillend programma bevindt zich op een andere USB stick
In totaal zijn er 31 soorten displays en dus ook 31 verschillende USB sticks.

Mijn realisatie:

A.d.h.v. RFID wordt herkend welk type display zich op de band bevindt, dit is verbonden met een PLC.
Afhankelijk van welk type display zich op dat moment op de band bevindt zal de PLC via 5 outputs een bepaalde code uitsturen (O of 1), indien geen display op de band worden alle 5 de outputs op 0 gezet.
Aangezien de spanning bij een logisch hoog niveau 24V is zullen we dit met een optocoupler omvormen naar 5V.
We zullen dus in totaal 31 USB’s met de print verbinden met elk een verschillend programma.
Afhankelijk welke code de PLC dus uitstuurt moet 1 van deze 31 USB’s geselecteerd worden.
Dit zullen we doen door multiplexers in cascade te schakelen.
Iedere USB heeft ook een power control nodig om er zo voor te zorgen dat enkel de USB die we nodig hebben aangeschakeld wordt, dit zou anders veel te veel stroom vragen.
Voor de multiplexers hebben we in totaal 5 enables (iedere MUX 1) nodig en 2 x 3 selects.
Voor de power control hebben we 31 enables nodig.
Dit zijn in totaal dus 41 uitgangen die de CU nodig heeft.

Mijn vraag is nu wat ik, hiervoor het beste kan gebruiken?

Arco

Special Member

Het is nog steeds een onduidelijk verhaal helaas... ;)
Je hebt 31 USB sticks, die je met 31 monitors wilt verbinden? Dan valt er toch niks te switchen?
(of wil je een 31x31 matrix om willekeurige verbindigen te kunnen leggen?)

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

Er moet altijd slechts 1 USB geselecteerd worden die dan via de multiplexer doorverbonden wordt met de PLC

Shiptronic

Overleden

Tja het simpelst lijkt me toch om een paar extra I/O bij die bestaande PLC te prikken en van 5 I/O naar 32(40) te gaan, komt er een nieuw type bij prik je er gewoon weer en USB stick bij.

Maar waarom niet alles op 1 opslag medium, aan de hand van het rfid signaal word de juiste file geselecteerd?

[edit] aan een 1 uit 32 decoder zou je ook genoeg hebben, waarom zou je de boel willen kunnen programeren, een USB stick van positie wisselen lijkt me dan handiger.

[Bericht gewijzigd door Shiptronic op vrijdag 4 november 2016 18:18:52 (22%)

Wie de vraag stelt, zal met het antwoord moeten leren leven.
Arco

Special Member

Moet inderdaad toch makkelijk allemaal op 1 USB stick passen? (gewoon dan de juiste file selecteren)

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

Mijn voorstel om tot een leerproces te komen: Regel een arduino. Die heeft standaard iets van 5 analoge inputs (kan je ook digitaal gebruiken), en 13 digitale pennen. Daarvan zijn er twee voor de communicatie met de PC, dus hou je er 11 over.

Zorg dat je de boel inleest, en correct uitstuurt, maar nu slechts voor die 11 van de 31 uiteindelijk benodigde auitgangen.

Als dit uiteindelijk werkt heb je een "aruidno mega" nodig. Daar zitten meer inputs en outputs op. Kan je zomaar 31 dingen direct aansturen.

Maar wat jij met usb sticks wil doen, valt ook nog wat op aan te merken. Hoe wilde je dat gaan doen?

Als IK een beetje goedgok, zijn de devices die geproduceerd worden in staat om hun firmware van USB stick te halen (via de "default boot firmware" die er al in zit). Moet er wel de juiste stick in geduwd worden. Nu hebben ze een gast, die kijkt, ziet dat er een type 5 monitor langs komt, en dan pakt ie stickje vijf uit de bak duwt hem er een paar seconden in en voila! getest en geflashed! Dit is fout gevoelig.
Dus: meerdere filenamen wordt hem niet. ALLE devices werken met "boot.bin".

Een "nette" oplossing zou bijvoorbeeld zijn om een STM32F405 te nemen, Die zich als 1 van 31 USB-devices te laten voordoen.... Oh, wacht!

Raspberry pi Zero (of A+) dan kan je met python je 5 inputs uitlezen, en afhankelijk van de combinatie de "pretendeer USB stick te zijn met als file.... " en dan 31 images van de USB sticks op de SD kaart hebben....

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

rew,

na 2 pagina's lijk jij de juiste probleemstelling te hebben gevonden.

nu nog de oplossing:

- je kan kijken of je het apparaat via het netwerk kan flashen. stuur het type naar een windows PC via OPC server en schrijf een flashtool.
- je kan een embedded controller pakken die USB slave is (REW's oplossing)
- vraag aan de ontwikkelaar om de bootloader te herschrijven zodat je wel verschillende files kan gebruiken
- vind een usb stick die via netwerk of via iets anders te beschrijven is. bijvoorbeeld een schijf met eSATA En USB. wel gevoellig voor fouten als je steeds dezelfde file overschrijft, maar een SSDtje kan dat wel een paar jaar aan)

(je kan natuurlijk ook de firmware files via FTP naar een android telefoon kopieren of zo'n WIFI SD kaart).

deze behuizing heeft 2 aansluitingen. je leest de TAG in, koppelt de eSata aan je windows PC, schrijft de juiste file, daarna plug je USB in en gaan. nadeel is dat je goed moet aan/afkoppelen (mounten) anders raakt je file op den duur beschadigd.
https://www.alternate.nl/p/230x230/t/ICY_BOX_IB_290StUS_B__Externe_behuizing@@t2ur80_1.jpg

[Bericht gewijzigd door Progger op zaterdag 5 november 2016 15:02:10 (23%)

GMT+1

Wees eens wat realistischer in jullie denken en schrijven. :p
Denken jullie nu serieus met wat jullie schrijven, kan doorgaan als een stageproject?
Iemand die dag en nacht met controllers bezig is zou ik zeggen ok, maar toch geen student die zo'n vraag stelt voor een stageproject.

Dat hij dat maar eens voorlegt aan zijn begeleider, hopelijk staat er geen geweer in de buurt... :)

LDmicro user.

Nou, dat met de raspberry pi is voor een MBO student die een "howto" kan lezen en een "inleiding programmeren" heeft gehad in een dag te doen.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
High met Henk

Special Member

hmm is toch wele en pittige opdracht hoor REW.
maar idd wel doenbaar voor iemand in de elektronica.

Enige wat je moet doen is: deze input = dit filtje klaarzetten en erin rammen.
Probleem zit hem in het USB slave maken voor mij.

[Bericht gewijzigd door High met Henk op zaterdag 5 november 2016 15:59:33 (12%)

E = MC^2, dus de magnetische compatibiliteit doet kwadratisch mee???

het punt is dat de oude methode was: type opzoeken en stick uit lade pakken.

dus oplossing: schakelen tussen 30 sticks.

maar als je de oplossing weg laat en puur naar het probleem kijkt zijn er veel meer oplossingen, waarvan ik er een paar heb genoemd.

ik zou dus een goede probleemanalyse maken voor hij verder gaat zoeken naar 30 usb poorten schakelen. (want dat kan ook gewoon met diezelfde PLC en en een zooi relais, daar is geen print voor nodig.)

als hij een probleemstelling heeft kan hij de oplossingen in kaart brengen en kiezen welke binnen zijn kennisniveau/budget/vaardigheden ligt.

[edit]

HmH, de vraag is ook of dat werkt, ik weet niet of die repeaters transparant zijn of als hub werken. niet iedere firmware kan met hubs overweg.

[Bericht gewijzigd door Progger op zaterdag 5 november 2016 16:54:49 (11%)

GMT+1
High met Henk

Special Member

De vraag is dus eigelijk niet een

programmeerbare centrale unit

Maar een

Centrale programmeer-unit

Vraag is wel iets met afstand van usb. Dat is redelijk beperkt. Meen 5m. Je kunt met repeaters wel verder maar e.e.a. wordt kostbaar en kwetsbaarder.

E = MC^2, dus de magnetische compatibiliteit doet kwadratisch mee???

Op 5 november 2016 15:39:11 schreef rew:
Nou, dat met de raspberry pi is voor een MBO student die een "howto" kan lezen en een "inleiding programmeren" heeft gehad in een dag te doen.

Aan 50E per uur en 10 uren werk + BTW dan zou ik als firma u direct inhuren voor dit project ;)

LDmicro user.

Even googlen: Hier is de howto.

https://learn.adafruit.com/turning-your-raspberry-pi-zero-into-a-usb-g…

code:


#!/bin/sh
#
# getcode (C) BitWizard B.V. 
#
# get code on GPIO pins. 
# Set the pins here that hold the binary code for the image to present.
pins="1 2 3 4 5"
t=""
for i in $pins ; do
 t=`gpio read $i`$t
done
# als je de image namen graag in decimaal hebt:
echo "ibase=2; $t " | bc
# als je de image namen graag in binair hebt:
# echo $t

code:


#!/bin/sh
#
# change_images (C) BitWizard B.V. 
#
modprobe dwc2
#
last=0
while true; do
  cur=`getcode`
  if [ $cur -ne $last ] ; then
     if [ $last -ne 0 ] ; then
       rmmod g_mass_storage
     fi
     if [ $cur -ne 0 ] ; then
       modprobe g_mass_storage file=/images/img$cur.bin stall=0
     fi
  fi 
  sleep 0.1
done

Funny stuff: Die dwc2 moet je volgens de howto via de preload/commandline/boot.txt whatever laten laden. Omdat eea nog niet werkt op dat moment, gaat een host lopen proben, krijgt geen antwoord, (de mass_storage module kan nog niet werken als het root FS nog niet gemount is en zo), en geeft het op. Door de module pas te laden als je "up and running" bent werkt het wel.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

De code zegt mij wel iets, maar een RPI programmeren is mij teveel.
Ik heb er één cadeau gekregen maar die zit nog in het doosje.

Ben toch onder de indruk van uw inzicht maar of de TS daar iets aan heeft is een andere vraag.
Misschien kan hij hierop verder bouwen.
In ieder geval beter dan een Arduino of losse IC's

Toch wel jammer dat dit allemaal niet bestond toen wij jong waren, wij moesten het doen met een 6205 en 1k ram.
Ik had toen ook veel projecten kunnen maken voor op het werk maar onze mogelijkheden waren te beperkt.

LDmicro user.

Toen ik googlede op 6205 microprocessor, dacht google hetzelfde van wat ik al dacht: typefout voor 6502.

[Bericht gewijzigd door rew op zondag 6 november 2016 08:27:10 (86%)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Sorry, 'k word al wat ouder ;)

LDmicro user.

Don't worry. Heb ik ook last van. :-)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Hallo iedereen,

Ik zou voor mijn project een USB communicatie moeten omvormen naar I2C, hiervoor zou ik gebruik willen maken van een FTDI chip zoals bijvoorbeeld de FT4232H.
Indien ik in de datasheet kijk zie ik dat dit met deze chip mogelijk is aangezien deze USB kan omvormen naar zowel I2C, SPI, UART, RS232.
De chip heeft een hele boel aansluitingen maar ik versta niet zo goed voor wat deze allemaal dienen.
Hoe moet deze chip het best aangesloten worden?

Alvast bedankt

Arco

Special Member

In de datasheet staat toch een aansluitvoorbeeld?

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

Inderdaad maar als ik me niet vergis is er geen schema voor I2C als uitgangscommunicatie te bekomen of vergis ik mij hier in?

Mag weg

[Bericht gewijzigd door pierreke101 op dinsdag 14 februari 2017 16:24:28 (96%)

Hallo iedereen,

Voor een project waarmee ik mee bezig ben zou ik volgens mij gebruik moeten maken van de USB2514B component maar ik versta de werking van deze component niet volledig.?
Voor mij project moet het mogelijk zijn om via mijn upstream device (PC) informatie te versturen naar mijn CU (dit zal dan bijvoorbeeld zijn, we wensen USB 8 te herprogrammeren) dan wordt USB 8 via een multiplexer naar buiten gestuurd en dan moet opnieuw via de PC deze USB stick hergeprogrammeerd kunnen worden. De PC moet eerst dus kunnen communiceren met de CU om te zeggen welke USB er naar buiten moet gestuurd worden adhv een multiplexer en daarna moet de PC met de USB zelf kunnen communiceren om deze te hergeprogrammeren.

Is het dan een goeie keuze om gebruik te maken van de USB2514B (B141488) of niet?

Alvast bedankt