Really I'm just looking to breadboard an encoder interface and level shifting circuits and get some feedback from MK as to how the GPIO is responding at this point
Awesome, thanks that gets one issue of me trying to figure out what's going on out of the way lol.
That's a good starting point because all I really need is one instance of each pin/interface type for now. I'm slightly confused about the .vhd file yet though. I get that it's the pin descriptor file, but when I go to layout the GPIO differently, is all that is required is for me to assign the pins in the new .vhd file. I'm not quite sure what to do with the vhd file either at the moment, does it got loaded from the hal file. Also any idea why halshow fails to load from the Axis GUI?
Also, I'm not 100% sure how the hm2 card bitfiles are configured for the encoder interface but I assumed the FPGA actually used 3 I/O pins for the encoder.
On the Mesa cards you swap jumpers to change from differential to single ended type encoder. In that case I figured they used a differential receiver chip to for differential encoders and bypassed it with the jumpers when using a single ended encoder.
I see that this .vhd file uses 2 I/O pins per channel for the encoder so I assume it is configured to accept the differential encoder directly. In the case of using a single ended encoder is it just a matter of using a single input per channel or would it need to be reconfigured?
I also assume all GPIO has pullups enabled on the FPGA, so they need to sink to change state?
The encoder core uses single ended inputs, differential encoder inputs I belive may be a built in HW feature on the Mesa boards.
Currently I have found out that using 220 ohm pullups to 3.3V works just fine.
It may be easier to test the encoder function without a GUI, try running these commands from a linux console (copy paste):
About using internal pull-ups in the fpga:The Cyclone V family only has a 25Kohm (weak) internal pull-up resistor that can be enabled:Not usable for this purpose I think.
The VHD files are VHDL code describing the logic inside the FPGA.
This code gets compiled by the vendor tool-chain and turned into a
configuration file used to program the FPGA.
You asked earlier about HM2 to support encoder interfaces. The HM2
driver already supports all the different types of logic currently
implemented in the FPGA, including encoder, stepgen, pwm, smart
serial, etc. To get an encoder to show up, just program the FPGA with
an appropriate configuration file and the HM2 driver will detect the
encoder instances.
OK, now I'm getting somewhereThe encoder core uses single ended inputs, differential encoder inputs I belive may be a built in HW feature on the Mesa boards.It is, I just wasn't sure how it was setup in the bitfile. I looked at a bitfile from mesa with 1x3 encoder inputs, so yeah, nothing changes there. I have a DIP package differential line receiver that I breadboarded up with the nano and the differential encoder and I'm able to get the encoder counting on the nano. I can't find my single ended cheapo encoder at the moment but that should be more straight forward anyway. I just realized the encoder you mentioned you ordered was the single ended version.
Currently I have found out that using 220 ohm pullups to 3.3V works just fine.That seems like a rather strong pullup. I've been testing 4.7k pullups/pulldowns since it's a pretty typical value for microcontrollers and they seem to work fine. It's possible that 4.7k might be a bit sluggish but I won't know til later. I'm seeing that the HM2 GPIO pins go true when pulled up and false when pulled down. The "not" pins are obviously there but it now seems a bit more intuitive to actually pull them down and use high logic to activate the inputs. I'm sure it's just the way hm2 is configured. Thoughts on that?
It may be easier to test the encoder function without a GUI, try running these commands from a linux console (copy paste):Halrun/halcmd works but I find Halshow to be a bit more intuitive since it's graphical and I can just load up a watchlist. I tried loading halshow in basically the same way you mentioned with the separate terminal instance after loading the RT components and threads and I get a segfault. My programmer buddy might be able to look into that but halcmd will work for now.
halshow
halsh: FATAL - 'MACHINEKIT_INI' missing in environment
Segmentation fault
Wonder which human readable file you are refering to as the bitfiles are the binaries (*.rbf) generated by quartus from the *.vhd and *.sv, *.v source files...
I'm no electronics expert... The datasheet for my single ended encoder says max 30 mA, so I figured 220 ohm at 3.3volts gives max 15mA or so...
If your FULL error message is:
Wonder which human readable file you are refering to as the bitfiles are the binaries (*.rbf) generated by quartus from the *.vhd and *.sv, *.v source files...Was talking about Mesa's .vhd files.I'm no electronics expert... The datasheet for my single ended encoder says max 30 mA, so I figured 220 ohm at 3.3volts gives max 15mA or so...That would be the current handling ability of the encoder's outputs, but all you have to do is drive an FPGA pin. That takes almost no current to do. Since you want to make sure that that FPGA pin has a defined state when it's not being driven you need to pull it toward one side with a resistor. If you use a strong pullup/down it requires more current to drive it toward the other side. The 15mA is being wasted through that resistor. 15mA isn't a big deal but if you have alot of I/O it'll add up.
If your FULL error message is:It literally just prints out "segmentation fault". I just tried it on one of my other Linuxcnc machines and if LinuxCNC is running, I can open a new terminal and cd to the halshow.tcl directory and ./ to execute it just as if I started it in the GUI. That doesn't work on this image even after using the export command you mentioned. I'll have to try updating the packages you mentioned and see if that helps.
I'm still trying to find some info on some of the "tags" used in the hm2 vhd files, I don't suppose this is documeted somewhere?
I see the "capsense" tags but I'm not sure what that is, something Cramps related?
Some of the Mesa PWM implementations are a 3 pin deal with an enable and direction pin. The MK configs only seem to use the "PWMAOutPin" per unit. Looking at a top level vhd file it appears that the PWMBDirPin, and PWMCEnaPin are there. I suppose it's just a matter of including these pins in that unit?
There is a NANOADCTag listed in the ModuleIDs but I haven't found any usage of it other than that. Is that just a placeholder or does it have an implementation?
Have you whached the presentation Charles linked to ?
The xxx_Cramps (quartus project) configs are the only current configs that provide ADC functionality straight into the Hal, the tags are there so that the hostmot2 soc hal driver can pick them up if needed.With the DE0_Nano_SoC board the (xxx_CRAMPS) ADC functionality works as it is supposed to, for some mystical reason this is not the case with my 2 DE!0_Nano boards, so I'm trying to debug this issue currently.
Even though you may have written this earlier (someplace else)I would be great for me if you can place a description or a link as to what you are aiming to accomplish, so that I then can come up with more presice answers pointing you in the right direction.
Have you whached the presentation Charles linked to ?Actually I've seen the presentation about twice before it was mentioned here. Just for reference, I'm not really trying to build the Quartus image right now I'm just trying to figure out the actual FPGA pin usage so I know how to interface it. My experience with Mesa cards is the AIO Eth cards like the 7i76e and 7i96. In those cases the actual pins are already hardware interfaced as in you wind up with a 6 pin differential encoder input, and 4 pin step gen outputs. Without looking at the vhd file, I probably would not have realized that it actually only uses 3 FPGA pins for the encoder and 2 FPGA pins for the stepgens.
The xxx_Cramps (quartus project) configs are the only current configs that provide ADC functionality straight into the Hal, the tags are there so that the hostmot2 soc hal driver can pick them up if needed.With the DE0_Nano_SoC board the (xxx_CRAMPS) ADC functionality works as it is supposed to, for some mystical reason this is not the case with my 2 DE!0_Nano boards, so I'm trying to debug this issue currently.As for the ADC I just realized where I was getting confused there. I didn't realize the ADC was an SPI interface (had to read the manual again). I thought they were direct connections to the FPGA. That explains why the ADC header doesn't appear as a separate 8 pin section in the vhd file.
Even though you may have written this earlier (someplace else)I would be great for me if you can place a description or a link as to what you are aiming to accomplish, so that I then can come up with more presice answers pointing you in the right direction.That's kind of difficult to say. Specifically I want to work up an interface board for the DE10 Nano that's more or less specific to my project machine. While I don't really need half of what I want to stuff in there, ultimately a little extra time on the schematic and a couple of chips and resistors is really all that extra functionallity costs.
Less specifically I've been working on a machine vision imaging system for some time now. It's kind of a niche thing so it's hard to explain it's actual purpose. This is like one of those probably never ending projects that have any rational reasoning behind it, other than I've had to teach myself quite a few different things every time I decided to do something different. First I built a raggedy "proof of concept" running on LinuxCNC/Mesa. Then I Converted a Small Mill to CNC once again running on LinuxCNC to prototype some more reasonable parts. After designing the whole thing I realized I wasn't super happy with all the bulk of the off the shelf components so I learned KiCAD and started whipping up PCBs. I built a a whole Glade GUI for it and a friend of mine has done all of the custom programming.It currently runs on a reasonably powerful x86 PC that I built to be small and use a DC-DC power supply so I can run the whole machine on a single 24v supply. What happens there is that I wind up needing More CPU than actually necessary because displaying the cameras uses quite a bit of processor and it leads to high jitter on a marginal PC. I've gotten on an ARM kick recently (I've got about 8 SBC's running all sorts of stuff, no Pi's though) and realized that if I can run Machinekit on something like the DE10Nano, I can keep the RT layer off the CPU that is connected to the camera's and there's the added bonus that the FPGA is built right into the same chip as the processor so that hardware becomes very small and low power. On top of that I no longer actually need a fast X86 at all. Image processing, without GPU acceleration spreads out very evenly along CPU cores so these newer 6 core ARM processors handle it pretty well. I picked up an Odroid N2 when it was released so it's not really wel developed under Linux but it still handled it pretty well
So yeah there's quite a bit of work to be done to get it running under MK but I figured I'd start by trying to make the DE10 useable as a hardware controller first.
When you are laying out your own custom DExx interface board, you don't have to stay restricted to allready made pinouts.
net limit-x-min <= hm2_[HOSTMOT2](BOARD).0.gpio.010.in_not |
> To unsubscribe from this group and stop receiving emails from it, send an email to > machi...@googlegroups.com <mailto:machinekit+unsub...@googlegroups.com>> .
builder@300dd4c4fceb:/work/HW/QuartusProjects/DE10_Nano_FB_Cramps$ Inconsistency detected by ld.so: dl-close.c: 762: _dl_close: Assertion `map->l_init_called' failed!
I had some errors starting MK. I copied the 3x24.dtbo
and dts and renamed it to match my config
and changed the firmware line in the dts to point to the new firmware. Then all it seems I had to do was modify the no-load.ini
to point to my firmware and instantiate the proper number of stepgens and encoders.
Looks like a good start until I get a chance to write a proper hal file
-
Did you mean compiled ?
The .dtbo file is compiled from the (renamed/edited).dts file via the dtc (device tree compiler) tool.So if you just renamed the .dtbo file it will stil configure the fpga with the "old" .rbf file.
the "no-load.ini" (Machinekit does not load firmware on startup) method masks this mistake as it requires you load your firmware via u-boot before the linux kernel starts up (to not get a blank screen or worse if mackinekit re-loads the firmware).
you need to change the u-boot variable bitimage:
(assuming you copied you new (st_fpga_soc_dc1.rbf ?) bitfile to /lib/firmware/socfpga) you can do:
sudo fw_setenv bitimage '/lib/firmware/socfpga/st_fpga_soc_dc1.rbf'
sudo reboot now
On the soc
and then watch for the flashing led :-)
machinekit@mksocfpga-nano-soc:/lib/firmware/socfpga/dtbo$ dtc -I dts -O dtb -o DE0_Nano_SoC_Cramps.st_fpga_soc_dc1.dtbo DE0_Nano_SoC_Cramps.st_fpga_soc_dc1.dtsError: DE0_Nano_SoC_Cramps.st_fpga_soc_dc1.dts:1.12-18 syntax errorFATAL ERROR: Unable to parse input tree
$ dtc -@ -I dts -O dtb -o DE0_Nano_SoC_Cramps.st_fpga_soc_dc1.dtbo DE0_Nano_SoC_Cramps.st_fpga_soc_dc1.dtsDE0_Nano_SoC_Cramps.st_fpga_soc_dc1.dts:8.29-27.19: Warning (unit_address_vs_reg): /fragment@0/__overlay__: node has a reg or ranges property, but no unit nameDE0_Nano_SoC_Cramps.st_fpga_soc_dc1.dts:18.59-26.27: Warning (unit_address_format): /fragment@0/__overlay__/hm2-socfpga0@0x40000: unit name should not have leading "0x"DE0_Nano_SoC_Cramps.st_fpga_soc_dc1.dts:4.20-28.11: Warning (avoid_unnecessary_addr_size): /fragment@0: unnecessary #address-cells/#size-cells without "ranges" or child "reg" propertyDE0_Nano_SoC_Cramps.st_fpga_soc_dc1.dts:21.33-58: Warning (interrupts_property): /fragment@0/__overlay__/hm2-socfpga0@0x40000:interrupt-parent: Bad phandle
However can you explain to me why you think you need the .dtbo ?
The .dtbo file is compiled from the (renamed/edited).dts file via the dtc (device tree compiler) tool.
So if you just renamed the .dtbo file it will stil configure the fpga with the "old" .rbf file.
the "no-load.ini" (Machinekit does not load firmware on startup) method masks this mistake as it requires you load your firmware via u-boot before the linux kernel starts up (to not get a blank screen or worse if mackinekit re-loads the firmware).
That's actually good to know. I don't think the framebuffer or at least the HDMI port will be necessary after I get the hardware sorted out. Do you know if VNC require an actual framebuffer? If I can access the desktop through VNC I would probably reconfigure without it when I'm done.
Now that I look at it, the reason I messed with a .dtbo file in the first place is because the .ini i modified contained the "CONFIG=xxx3x24.dtbo" line and that was throwing LinuxCNC errors until I renamed it. It's a bit confusing because the example FB .ini's still reference a .dtbo file is compiled from a .dts file that points to a non FB .rbf.
I just commented out that config line in the .ini and MK still seems to load up just fine, which is probably what I should have just done in the beginning. Should this line be removed, or commented out from the provided example MK no-load .ini's?
Where did you find the (no-fw-load.ini)example where that line was Not commeted out ?
(NANOADCTag, x"00", ClockLowTag, x"08", NANOADCAddr&PadT, NANOADCNumRegs, x"00", NANOADCBitMask),
using the 3.3v power is a good idea. I'm not particularly thrilled with the resistor dividers for various reasons so I'll have to go back to the drawing board on that. While I'm at it figure adding SSerial wouldn't be a bad idea. Wasn't really in the plans for this board but I'd probably kick myself if I didn't since My mill spindle has an 8i20 running on SSerial. Looks like there's examples in the repo so I'd assume it's working on SOCFPGA?
Looking at a 7i76e manual it's differential RS422 while the example configs suggest at the FPGA level it's a 2 pin RX/TX deal, is that right? One example shows a TX enable pin, but I don't think this is implemented on a board like the 7i76e which is all I'm trying to duplicate. Any insight on this?
Seems like all the infrastructure is in place, copy/overwrite the sserial tags into your pin custom file and compile the .rbf.
Looks like it will then auto probe the rs422 connected connected 8i20 on hm2 driver load.
RS-422 is always differential. It may be full duplex (which only
requires TX and RX) or half duplex (which adds a TX-Enable signal).
The 7i76 daughtercard requires two SSERIAL channels, one for the 7i76
itself (for the Field I/O signals), and one which gets exported via
the TB3 connector.
Both buses are full duplex and do not require a TX-Enable signal.
The SSERIAL communication between the FPGA and the 7i76 is via
standard digital logic levels. The 7i76 provides an RS-422
transceiver for the SSERIAL bus on TB3.
On Sunday, July 7, 2019 at 2:16:22 PM UTC-4, Charles Steinkuehler wrote:
There's good info in the data sheet for that part: http://www.ti.com/lit/gpn/thvd1451
...which is an RS-485 transceiver (RS-485 is the same electrically as
RS-422, but the driver can be switched off).
RS-485 is a "multi-drop" protocol, and supports multiple transceivers.
Typically, the end nodes will have termination resistors populated
and the devices in the middle on the cable will have the termination
disabled. See figure 32 (page 22) in the data sheet.
PCW said it's straight RS-422, not RS-485. That means you only have
two devices making each device an end point, so add termination to
both ends.
The ESD protection is application dependent, but you might also want
a small value series resistor between the THVD1451 and the cable (see
Figure 38, page 27 along with the recommend parts list) and see the
layout recommendations on page 29.
...but don't sweat the details too much. For a short range (a few
meters) point-to-point connection, the ESD and even the termination
resistors are not super important. I'd still add them (it's cheap
insurance!), but I don't expect you're designing for 1.5 km long
cables that need to withstand nearby lightning strikes. :)
That said, spindle motors can throw off enough ESD to cause problems
even with differential signals, which is why you want _something_.
--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to a topic in the Google Groups "Machinekit" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/machinekit/eVhvTnuhblE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to machinekit+...@googlegroups.com.
Visit this group at https://groups.google.com/group/machinekit.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/6df1fef2-f29b-4019-b58e-0b6492a07be5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Hi JustinThe DE10_Nano_FB_Cramps.3x24_cap.rbf bitfile is as the name implies designed to interface with a Cramps board and provide a framebuffer onthe hdmi pins of the DE10 Nano.I have created an Interface board for interfacing the DExx Nano (soc) boards to the Cramps andthe design files are here:This shows the pins of the DExx Gpio pins and can be easiely bread boarded.The cap sensor is not part of Cramps functionality so these pins are not on that schematic...--About the "SOC-no-fw-load" config method:This makes Machinekit not reprogram the fpga when MACHINEKIT starts... correctThe "fpgaload_on_boot 1" in u-boot makes u-boot program the fpga BEFORE linux starts up so that the Framebuffer then can be picked up,Ensure that the right devicetree (the one with framebuffer enabled) is loaded by u-boot.Really I'm just looking to breadboard an encoder interface and level shifting circuits and get some feedback from MK as to how the GPIO is responding at this pointCoincendentially I have just purchased an encoder:E6B2-CWZ6CAnd will be doing the same exercise currently it seems... :-)While it may be possible to hook up this encoder to some gpio pins and then run a "soft" encoder in the hal,the Mesa Hostmot2 cores do provide Encoder cores that can be run in the fpga HW fabric, this meens a new config has to be added to the DE10_Nanoxxx_FBxxxx Quartus project in the Mksocfpga repo
On Wednesday, 1 May 2019 04:33:52 UTC+2, justin White wrote:So I picked up a DE10 Nano to do some testing on. As I explained in a previous thread, a remote GUI running on a different CPU is the intended goal with the DE10-Nano handling MK and the hardware headless as I'm sure most would intend it's use. I'm having all sorts of issues with just about everything MachineKit but this I got somewhere with.I need to work on making an interface board to get useable I/O out of this thing for my intended purpose. I found the "DE10-Nano/mksocfpga_stretch_machinekit_4.9.76-2018-05-26-de10_nano_desktop_sd.img" and got that setup with HDMI support and LXqt. The thought is that If I can get a working GUI setup going with a more or less generic bitfile I can basically breadboard the DE10-Nano and use HalShow and a few other LinuxCNC tools to verify the circuits. I ran into a couple of issues and there's some things I'm unsure of....I tried what sounded like a more ideal bitimage but the HDMI output was no good unless I used the /lib/firmware/socfpga/DE10_Nano_FB_Cramps.3x24_cap.rbf bitimage. I couldn't find info on what the pin designations for this image are, I'm not really up to snuff on the 3D-printer/CRAMPS thing. I'm not really sure of how to create my own bitfile either especially if it's tied to the HDMI out.I did load MK and the only stock config I could get to load was the something "SOC-no-fw-load" config. I assume this does not reprogram the FPGA on start since the "fpgaload_on_boot 1" variable is set to program the FPGA on boot? Since I have no hardware to attach I can't really say whether the I/O was actually doing anything although I guess I would expect following errors or something if it wasn't while I was jogging around. I also couldn't start Halshow from the Axis GUI, just didn't open. It'd be great if somebody could point me in the right direction as to how I can either setup my own hardware bitfile or use a rather generic one that I can reference pin designations too. Really I'm just looking to breadboard an encoder interface and level shifting circuits and get some feedback from MK as to how the GPIO is responding at this point.
--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to a topic in the Google Groups "Machinekit" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/machinekit/eVhvTnuhblE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to machinekit+...@googlegroups.com.
Visit this group at https://groups.google.com/group/machinekit.
Wondering about commenys
To unsubscribe from this group and all its topics, send an email to machi...@googlegroups.com.
To unsubscribe from this group and all its topics, send an email to machinekit+...@googlegroups.com.
Visit this group at https://groups.google.com/group/machinekit.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/8eef1882-e527-4ad8-a5df-54c6a53c0c10%40googlegroups.com.
--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to a topic in the Google Groups "Machinekit" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/machinekit/eVhvTnuhblE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to machinekit+...@googlegroups.com.
Visit this group at https://groups.google.com/group/machinekit.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/a35860c4-494e-4daa-8d65-5ed926dbc0af%40googlegroups.com.
Besides the 1024x768 (VESA) there are the HD,, (1920 x1080) configs. What missing screen resolution are you referring to?
I still suspect a wiring error as the most like cause of non-detection of SSerial remotes,
but another possibility is an incorrect CLKMED value in the firmware source
(The baud rate calculations that the SSerial processor does depend on this constant
matching the actual CLKMED clock rate)
The sure way to check is capture a few bytes being sent over the
serial port when the driver starts up. That will tell you the *REAL*
baud rate.
Jul 25 05:59:13 mksocfpga-nano-soc msgd:0: ØMQ=4.2.1 czmq=4.0.2 protobuf=3.0.0 atomics=gcc intrinsics libwebsockets=2.0.3Jul 25 05:59:13 mksocfpga-nano-soc msgd:0: configured: sha=58fe987Jul 25 05:59:13 mksocfpga-nano-soc msgd:0: built: Mar 23 2019 18:41:31 sha=58fe987Jul 25 05:59:13 mksocfpga-nano-soc msgd:0: register_stuff: actual hostname as announced by avahi='mksocfpga-nano-soc.local'Jul 25 05:59:13 mksocfpga-nano-soc msgd:0: zeroconf: registering: 'Log service on mksocfpga-nano-soc.local pid 2469'Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2485:user iocontrol: machine: 'ST_FPGA_SOC_DC1_test2' version 'unknown'Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2: loading Mesa HostMot2 driver version 0.15Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2_soc_ol: loading Mesa AnyIO HostMot2 socfpga overlay driver version 0.9Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: Smart Serial Firmware Version 0Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: zeroconf: registered 'Log service on mksocfpga-nano-soc.local pid 2469' _machinekit._tcp 0 TXT "uuid=abc21811-1fb4-4ba9-98f3-6ca4138d9f21" "instance=5451ecc8-aea1-11e9-a89e-ba072231546c" "service=log" "dsn=ipc:///tmp/0.log.abc21811-1fb4-4ba9-98f3-6ca4138d9f21"Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: 72 I/O Pins used:Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 000 (GPIO0.P0-01): IOPortJul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 001 (GPIO0.P0-02): IOPortJul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 002 (GPIO0.P0-03): IOPortJul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 003 (GPIO0.P0-04): IOPortJul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 004 (GPIO0.P0-05): IOPortJul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 005 (GPIO0.P0-06): IOPortJul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 006 (GPIO0.P0-07): IOPortJul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 007 (GPIO0.P0-08): IOPortJul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 008 (GPIO0.P0-09): IOPortJul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 009 (GPIO0.P0-10): IOPortJul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 010 (GPIO0.P0-11): IOPortJul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 011 (GPIO0.P0-12): IOPortJul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 012 (GPIO0.P0-13): IOPortJul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 013 (GPIO0.P0-14): IOPortJul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 014 (GPIO0.P0-15): IOPortJul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 015 (GPIO0.P0-16): IOPortJul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 016 (GPIO0.P0-17): Encoder #1, pin Index (Input)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 017 (GPIO0.P0-18): Encoder #0, pin Index (Input)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 018 (GPIO0.P0-19): Encoder #0, pin A (Input)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 019 (GPIO0.P0-20): Encoder #2, pin Index (Input)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 020 (GPIO0.P0-21): Encoder #2, pin A (Input)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 021 (GPIO0.P0-22): Encoder #1, pin A (Input)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 022 (GPIO0.P0-23): Encoder #1, pin B (Input)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 023 (GPIO0.P0-24): Encoder #0, pin B (Input)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 024 (GPIO0.P1-25): Encoder #3, pin Index (Input)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 025 (GPIO0.P1-26): Encoder #2, pin B (Input)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 026 (GPIO0.P1-27): Encoder #5, pin Index (Input)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 027 (GPIO0.P1-28): Encoder #4, pin Index (Input)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 028 (GPIO0.P1-29): Encoder #4, pin A (Input)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 029 (GPIO0.P1-30): Encoder #3, pin A (Input)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 030 (GPIO0.P1-31): Encoder #3, pin B (Input)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 031 (GPIO0.P1-32): Encoder #5, pin A (Input)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 032 (GPIO0.P1-33): Encoder #5, pin B (Input)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 033 (GPIO0.P1-34): Encoder #4, pin B (Input)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 034 (GPIO0.P1-35): IOPortJul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 035 (GPIO0.P1-36): IOPortJul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 036 (GPIO0.P1-37): IOPortJul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 037 (GPIO0.P1-38): IOPortJul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 038 (GPIO0.P1-39): StepGen #5, pin Step (Output)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 039 (GPIO0.P1-40): StepGen #5, pin Direction (Output)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 040 (GPIO0.P1-41): StepGen #4, pin Step (Output)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 041 (GPIO0.P1-42): StepGen #4, pin Direction (Output)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 042 (GPIO0.P1-43): StepGen #3, pin Step (Output)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 043 (GPIO0.P1-44): StepGen #3, pin Direction (Output)Jul 25 05:59:14 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 044 (GPIO0.P1-45): StepGen #2, pin Step (Output)Jul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 045 (GPIO0.P1-46): StepGen #2, pin Direction (Output)Jul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 046 (GPIO0.P1-47): StepGen #1, pin Step (Output)Jul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 047 (GPIO0.P1-48): StepGen #1, pin Direction (Output)Jul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 048 (GPIO0.P2-49): StepGen #0, pin Step (Output)Jul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 049 (GPIO0.P2-50): StepGen #0, pin Direction (Output)Jul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 050 (GPIO0.P2-51): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 051 (GPIO0.P2-52): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 052 (GPIO0.P2-53): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 053 (GPIO0.P2-54): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 054 (GPIO0.P2-55): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 055 (GPIO0.P2-56): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 056 (GPIO0.P2-57): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 057 (GPIO0.P2-58): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 058 (GPIO0.P2-59): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 059 (GPIO0.P2-60): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 060 (GPIO0.P2-61): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 061 (GPIO0.P2-62): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 062 (GPIO0.P2-63): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 063 (GPIO0.P2-64): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 064 (GPIO0.P2-65): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 065 (GPIO0.P2-66): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 066 (GPIO0.P2-67): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 067 (GPIO0.P2-68): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 068 (GPIO0.P2-69): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 069 (GPIO0.P2-70): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 070 (GPIO0.P2-71): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: IO Pin 071 (GPIO0.P2-72): IOPortJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2/hm2_5i25.0: registeredJul 25 05:59:15 mksocfpga-nano-soc msgd:0: hal_lib:2475:rt hm2_soc_ol: initialized AnyIO hm2_soc_ol_board hm2-socfpga0 on /dev/uio0
Error (10482): VHDL error at PIN_st_fpga_soc_dc1f.vhd(80): object "ClockMedTag" is used but not declared File: /work/HW/hm2/config/DExx_Nano_xxx_Cramps/PIN_st_fpga_soc_dc1f.vhd Line: 80Warning (10236): Verilog HDL Implicit Net warning at top_io_modules.sv(39): created implicit net for "hps_reset_req" File: /work/HW/QuartusProjects/Common/top_io_modules.sv Line: 39Warning (10236): Verilog HDL Implicit Net warning at altera_edge_detector.v(21): created implicit net for "reset_qual_n" File: /work/HW/cv-ip/edge_detect/altera_edge_detector.v Line: 21Warning (10236): Verilog HDL Implicit Net warning at hps_sdram_pll.sv(168): created implicit net for "pll_dr_clk" File: /work/HW/QuartusProjects/DE10_Nano_FB_Cramps/soc_system/synthesis/submodules/hps_sdram_pll.sv Line: 168Warning (10236): Verilog HDL Implicit Net warning at alt_vipvfr131_prc.v(142): created implicit net for "master_clock" File: /work/HW/QuartusProjects/DE10_Nano_FB_Cramps/soc_system/synthesis/submodules/alt_vipvfr131_prc.v Line: 142Warning (10236): Verilog HDL Implicit Net warning at alt_vipvfr131_prc.v(143): created implicit net for "master_reset" File: /work/HW/QuartusProjects/DE10_Nano_FB_Cramps/soc_system/synthesis/submodules/alt_vipvfr131_prc.v Line: 143Info (144001): Generated suppressed messages file /work/HW/QuartusProjects/DE10_Nano_FB_Cramps/output_files/DE10_Nano_FB_Cramps.map.smsgError: Quartus Prime Analysis & Synthesis was unsuccessful. 1 error, 8 warnings Error: Peak virtual memory: 1288 megabytes Error: Processing ended: Thu Jul 25 00:43:19 2019 Error: Elapsed time: 00:03:22 Error: Total CPU time (on all processors): 00:03:37
--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to a topic in the Google Groups "Machinekit" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/machinekit/eVhvTnuhblE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to machinekit+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/f7972613-5bbe-423c-ab84-2c3c936a62c3%40googlegroups.com.
IIRC those are the frequencies listed in the .sv file. It seems from what PCW said I should be specifying ClockMed in the pin file, problem is that when I do I cannot build the firmware. The above error is thrown.
--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to a topic in the Google Groups "Machinekit" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/machinekit/eVhvTnuhblE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to machinekit+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/29f2fb1a-ed2a-49f0-9f58-63e6c65dc9f5%40googlegroups.com.
Ok well I cannot cope with the stress of starting up my workstation this week and I didn't catch any quartus log in your former post?MiB
(SSerialTag, x"00", ClockMedTag, x"01", SSerialCommandAddr&PadT, SSerialNumRegs, x"10", SSerialMPBitMask),
(SSerialTag, x"00", ClockLowTag, x"01", SSerialCommandAddr&PadT, SSerialNumRegs, x"10", SSerialMPBitMask),
port map( addra => regaddr, addrb => ioradd(log2(InterfaceRegs) +1 downto 2), clk => clk, dina => ibus,-- douta => doutb => libus32_3, wea => hloadregs3 ); makeUARTRs: for i in 0 to Ports -1 generate auarrx: entity work.uartr8 port map ( clk => clkmed, ibus => mobus, obus => iodata, popfifo => readrxdata(i), loadbitratel => loadrxbitratel(i), loadbitratem => loadrxbitratem(i), loadbitrateh => loadrxbitrateh(i), readbitratel => '0', readbitratem => '0', readbitrateh => '0', clrfifo => clearrxfifo(i), readfifocount => readrxfifocount(i), loadmode => loadrxmode(i), readmode => readrxmode(i), fifohasdata => rxfifohasdata(i), rxmask => drven(i), -- for half duplex rx mask rxdata => rxdata(i) ); end generate;
port map( addra => regaddr, addrb => ioradd(log2(InterfaceRegs) +1 downto 2), clk => clk, dina => ibus,-- douta => doutb => libus32_3, wea => hloadregs3 ); makeUARTRs: for i in 0 to Ports -1 generate auarrx: entity work.uartr8 generic map ( Clock => BaseClock ) port map ( clk => clkmed, ibus => mobus, obus => iodata, popfifo => readrxdata(i), loadbitratel => loadrxbitratel(i), loadbitratem => loadrxbitratem(i), loadbitrateh => loadrxbitrateh(i), readbitratel => '0', readbitratem => '0', readbitrateh => '0', clrfifo => clearrxfifo(i), readfifocount => readrxfifocount(i), loadmode => loadrxmode(i), readmode => readrxmode(i), loadfilter => loadrxfilter(i), fifohasdata => rxfifohasdata(i), rxmask => drven(i), -- for half duplex rx mask rxdata => rxdata(i) ); end generate;
The fact that it reads 0 as a version number means there is likely something wrong with the firmware source.
That is, the driver cannot communicate with the embedded CPU that manages he communications.
There never was a released version 0. I would expect version 43 if the source is less than 5
or so years old.
The initial baud rate should be 2.5 MBaud (400 ns per bit) I suspect something wrong with the clock
generation (the actual hardware clock does not match the CLKMED constant)
The version numbers in the pinout file are hardware versions of the individual modules.
The sserial version that the driver reads out is the software version (of the code that runs on the sserial interface CPU) This should be 43 decimal, reading 0 probably means that the CPU is not responding or some other bitfile /firmware issue
--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to a topic in the Google Groups "Machinekit" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/machinekit/eVhvTnuhblE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to machinekit+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/09220b16-ba90-4f24-b5fb-787c2f95ab35%40googlegroups.com.
Yup still on the edge of understanding. dk beyond reason. I'm still on 1/2 gear .........
and you do know that mksocfpga only has an accelerated frame buffer and still no real unlicenced GPU.
--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to a topic in the Google Groups "Machinekit" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/machinekit/eVhvTnuhblE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to machinekit+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/dfe26639-27a7-4ba6-b9bf-344bd1d0da9e%40googlegroups.com.
Not very easy from my cell phone here however:In qsys there are 2 instances where you set up the timings for the screen monitor. There should be some saved setups HD etc. Lastly you need to place the correct screen settings in the device tree there is a HD example there too. 1920 x1080. Sorry for not being online atm...
1600x900 would allow me to test it out on my mill and I might have a use for 800x480. I didn't realize the resolution was fixed, my 1080P monitors don't have a problem displaying 1024x768, all my other monitors do. I suppose in a real usage scenario I'd have to look further into your previous reply and try to figure out how to set a resolution for whatever monitor I intended to use.
On Monday, 19 August 2019 13:24:22 UTC+2, Michael Brown wrote:I have an older config that has worked with 8 stepgens:Have you tried with:num_stepgens=6 in the hm2_soc_ol config line ?
(StepGenTag, x"02", ClockLowTag, x"0A", StepGenRateAddr&PadT, StepGenNumRegs, x"00", StepGenMPBitMask),