Question about custom BOB for a 7i92
The inmux stuff is for a possible 2nd revision but it probably wouldn't be a good idea to run a 2nd revision without testing the first.
Using 4x ADC101S021, they don't have a data input.
Tried to pick something as basic as possible for the onboard analog inputs since they won't work anyway unless my friend delivers a component.
I can at least start configuring a hal file and all the rest for the stuff that should just work.
I don't suppose the hm2 sources are still available? It looks like LinuxCNC archived the repo, I didn't see any 7i92 in there anyway. Looks like Eyefinity has a free license so I wouldn't mind taking a crack at it if I can figure it out. I've done it several times on a hm2 Altera port in MK but I think MK dumbed that whole thing down a bit, or maybe Quartus is just super easy to figure out.
All I found was some talk here and there about the 7i65. I'm trying to see if without having a hal component available yet if there is some way to verify that the 7i92 is grabbing data from the ADCs and maybe mess with the CS pins. Not sure if Andy is looking at this thread but it would be good to have some kind of guidance for my friend who is planning on writing the component.
Right now all I have is this in my hal file. I can't figure out what functions need to be added or if the functions are exposed by the component rather than the bspi driver. The BSPI pins do show up in the terminal when loading but that's about all I can see
loadrt [KINS]KINEMATICS loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS loadrt hostmot2 loadrt hm2_eth board_ip="10.10.10.10" config="num_encoders=0 num_pwmgens=2 num_stepgens=6 num_bspis=1" setp hm2_7i92.0.pwmgen.pwm_frequency 1000 setp hm2_7i92.0.pwmgen.pdm_frequency 6000000 setp hm2_7i92.0.watchdog.timeout_ns 5000000 loadrt pid names=pid.x,pid.y,pid.z,pid.a,pid.b addf hm2_7i92.0.read servo-thread addf motion-command-handler servo-thread addf motion-controller servo-thread addf pid.x.do-pid-calcs servo-thread addf pid.y.do-pid-calcs servo-thread addf pid.z.do-pid-calcs servo-thread addf pid.a.do-pid-calcs servo-thread addf pid.b.do-pid-calcs servo-thread addf hm2_7i92.0.write servo-thread setp hm2_7i92.0.dpll.01.timer-us -50 setp hm2_7i92.0.stepgen.timer-number 1
Also, I came across this when I was looking for info:
I have a different machine that could benefit from being able to read an input pin and less importantly write an output pin as fast as possible running a 7i96. Would this actually be useful? I'd assume this has to exist in a faster thread than the servo, like a base thread?
hm2_<BoardType>.<BoardNum>.read_gpioRead the GPIO input pins. Note that the effect of this function is a subset of the effect of the .read() function described above. Normally only .read() is used. The only reason to call this function is if you want to do GPIO things in a faster-than-servo thread. (This function is not available on the 7i43 due to limitations of the EPP bus.)
The line driver I'm using for general outputs has a 400ma or so safe limit but no built in current protection. I'd be inclined to use PTCs or something but I can't find anything practical for ~30v @ 400ma......any suggestions?