Posts by fs-support_HK

    Quote from "ivanok"

    I'm going to use a NetDCU. Advise me, please, what type is better\has less bugs\ets


    This request is the same as: "I'm going to buy a car, which one is the best?"


    You see, without knowing anything about your application, we can not give any meaningful recommendations.


    Regards,


    H. Keller

    Quote from "schliz"

    I would like to call the Control Panel for configuring the WLAN Settings like WEP key and so on, out of my program.


    I found a list of Control Panel including there index which you need to open it.


    I assume the numbers for the controls depend on the version of the control panel. Therefore your list may not be accurate for the Control Panel of the NetDCU. For example I found this article showing that a special control must be called with completely different parameters on different WinCE versions and devices.


    Therefore I would say that your method is not portable. You can try which panels work, but you can not assume that these numbers will stay the same with any new kernel release by F&S.


    Regards,


    H. Keller

    Bleibt dennoch die Frage, warum es mit den Bordmitteln von C# nicht funktioniert hat. Ich hätte erwartet, dass diese FileStream- und BinaryReader-Funktionen letztendlich auch auf das CreateFile(), ReadFile() und CloseHandle() zurückgreifen.


    Kann es sein, dass hier vielleicht eine Pufferung stattfindet, der FileStream gleich mal 512 Bytes am Stück einliest und dann der BinaryReader alte Werte aus dem Puffer liest?


    Das würde aber immer noch nicht den Überlauf erklären. OK, der Binary Reader liest Low-Byte-First ein, während die Daten High-Byte-First sind. Aber dennoch müsste so ein Wert am Ende in ein uint passen. Kann es sein dass da bei der Umwandlung von UInt16 nach uint (=UInt32) ein Fehler auftritt? Sie verwenden ja nicht die Funktion Convert.ToUInt32().


    Vielleicht testen Sie Ihren ursprünglichen Ansatz ja nochmal, indem Sie val als UInt16 deklarieren oder die obige Konvertierung dazwischenschieben.


    Mit freundlichen Grüßen,


    H. Keller

    Quote from "schliz"

    For Pin 2 that's IO-Port 7 you have to enter the value 128


    Please don't mix up port and bit. There are exactly 3 Ports: 0, 1 and 2. There is a mapping between pin numbers and ports: Pins 2 to 9 are on Port 0, Pins 10, 11, 13 and 15 are on Port 1 and pins 17 to 24 are on Port 2. Which bit of the byte is responsible for which pin is explained in the docu. So for example if you want to change Pin 11, you have to write to Bit 2 of Port 1, if you want to read Pin 23, you have to read from Bit 1 of Port 2.


    You change the port to which you are talking by calling SetFilePointer(). Entry "Port" in the registry only tells which port is used by default before you do any calls to SetFilePointer().


    This is how you *use* the ports. Now there is the topic of *configuring* the ports. This is done by three values: UseAsIO, DataDir and DataInit. All these values tell the state of all three ports in one single DWORD each. Therefore there is a mapping between ports and these DWORDs: Port 0 goes into the low byte (bit 0-7), Port 1 into the next-to-low byte (bit 8-15) and Port 2 into the next-to-high byte (bits 16-23).


    Quote

    Is there just one handle DIO1 for all the ports?


    Usually yes. If you want to access port 0, then port 1, then you first address port 0 with SetFilePointer(), then you read/write the port, and then you address port 1 with SetFilePointer() and read/write the port.


    Regards,


    H. Keller

    Quote from "YoMas"

    The problem for me is that I have to shuffle something like 60k from an ARM7 Chip to the NETDCU. The WCE "overhead" for serial communication is slowing this extremly down when each transfere action must not exceed 2k. At the moment I have to separate my data to around 30 pieces and send them one after the other always waiting for an acknowlage that the 2k buffer is read before sending the next package. So this operation takes during the start of the program around 8 seconds.


    May there is a way to accelerate this?


    Why split the data in blocks? Just use some handshaking protocol like XON/XOFF. Then the NetDCU can take the data as fast as possible, and the sender can also send data as fast as possible. Everything else is done by the handshaking. This is faster than having to wait for the completion of each block.


    Please note that transferring 60K at 115200 bit/s takes already 5.3s pure transfer time. Assuming that only one main thread is running and takes all the data, the NetDCU should be fast enough to read the data before the 2K buffer fills up.


    Regards,


    H. Keller

    Quote from "NOEL_V"

    The reason why I ask this is that NOT ALL pins on the DIL-interface connector(s) have a description, so i might be possible the have this connected somewhere, but not described in the documentation.


    In fact all pins are described. But they may be described in different tables. For example the table in section 2.3 shows some pins of connector J2, section 2.4 shows some more pins of connector J2, and the table in section 2.5 shows the remaining pins of J2.


    This is meant with all the footnotes to "---": These pins are not unused, they carry other signals and are described somewhere else in the document.


    Regards,


    H. Keller

    Just an idea, not tested:

    • Write a small program that calls SipShowIM() to display the input panel
    • Create a batch file that calls this program first and then calls cmd.exe
    • Instead of calling cmd.exe directly, call this batch file instead


    This should work with any other application than cmd.exe, too.


    Regards,


    H. Keller

    Quote from "Nase"

    I received a CD from F&S and a PicoMod1. The correct file name on the CD is: "NetDCU_DeviceDriver.pdf". But it is under the folder "NetDCU". and under the folder "German", there is no german description.


    Sorry, my mistake. I hadn't realized that it was for the PicoMOD1. Then the correct file is PicoMOD1_DeviceDriver_eng.pdf
    As the PicoMOD1 has more I/O pins than the standard NetDCUs, there is in fact a difference when using them. Mr. Zutter already explained that.


    Quote

    I program in VB.NET and all examples are in C++.


    Yes, this is a big problem. The .NET languages are getting more and more popular, but the drivers provide their interface in C only. However as all drivers use the file interface (CreateFile(), ReadFile(), WriteFile(), SetFilePointer(), DeviceIoControl(), CloseHandle()), using a .NET language you have two ways of accessing them:


    • Use the .NET file functions. They'll go down to the basic C interface in the end anyway.
    • Write your own wrapper functions to call the C file functions from coredll directly.


    It is very difficult to provide all documents in all languages and for all programming environments. For example if we have one document for C/C++, one for C#, one for VB, and then each of them at least in German and English, this is quite a lot to do.


    Therefore our main goal is to provide the English documentation and the C interface as a minimum. English is understood by most software people and this is also the reason why we prefer English here in the forum. And when the C interface is known, you can usually transfer the call to .NET somehow rather easily.


    Best regards,


    H. Keller

    Quote from "schliz"

    // dont`t forget the quit otherwise it will be not stored as I found out


    This is not correct. The "reg save" already stores the registry. However if you forget the Return in the last line of the TXT-File, it may be that this line is not executed (like when you type a command but don't press return after it). I assume that this was the reason why your reg save was not executed as last command in the file.


    When using the standard settings, ndcucfg is already running on COM2:. So usually it is sufficient to connect a serial line to COM2:, start a terminal program (e.g. DCUTermi) and send the text file to the board, without the need for the .bat-File.


    Regards,


    H. Keller

    Quote from "Nase"

    I know this. But the problem is, that we DONT KNOW, what value is to set in the registry. Because we did't found any document hwo let's us understand, how it works.


    Is it really this difficult? Regarding to the document "NetDCU_DeviceDriver_eng.pdf" available on the CD or here:
    For each pin there is a bit in the UseAsIOBit entry. If you want to use this pin for I/O, set the bit to 1, otherwise leave it as 0. Then, for any of these pins with the 1-bit, set 0 or 1 in DataDirBit, depending on your need for input (0) or output (1). And finally, for all pins with 1-bit for the direction, you have to specify if the port starts with low (0) or high (1) when being initialized. This is set in the entry DataInitBit.


    So where is the problem?


    Regards,


    H. Keller

    Quote from "Nase"

    Why, we can not change the "0" Binary to a "1" to make it as OUTPUT:


    It has no effect when you change the registry at runtime. The driver is loaded when the system starts and then reads the registry settings. They can not be changed later anymore. Therefore you have to set the registry to reflect your needs, and then reboot your board. Now the new settings should take effect.


    Regards,


    H. Keller

    Quote from "adolmac"

    After installing new boot loader onto the NetDCU8 and after restart communication with the boot loader cannot be established (it looks like new boot loader is corrupt and cannot start).


    Probably you downloaded a wrong version? Just repeat the download with a working version (available on your CD or here).


    If not, please tell what you did. Otherwise we can not know what went wrong.


    Regards,


    H. Keller


    PS: Please open only one thread for each problem.

    Quote from "schliz"

    Can anybody please tell me the syntax for the batchfile, because I do not find the CD.


    When ndcucfg starts, it prints the line


    "Type help for commands"


    Ever tried this?


    H. Keller

    Quote from "Nase"

    Hello. I have the same problem. What is P1?


    Do you also have the same display? Because other displays may have other problems. P1 is only relevant for passive black & white displays (STN). Colour STN and TFT are working differently, they don't require P1.


    Regards,


    H. Keller

    Quote from "Nase"

    I have the same problem with the Taskbar. When I remove the RegKey:
    \init\ --> Lauch50 explorer.exe
    the system does not go to the CheckAutoStart.exe and does not start my application.


    Yes, the CheckAutoStart.exe is a feature of the explorer. But you can add your application to the init-Key in the registry. For example add two values:


    Launch200 MyApplication.exe
    Depend200 ...


    In the second value you have to enter the numbers of the other applications you depend on as hex numbers (2x2 digits per value, LSB first). For example if you need the graphic environment (gwes.exe is launched as 30 = 0x001E) and a device (device.exe is launched as 20 = 0x0014), you have to give the line


    Depend200 14 00 1E 00


    Regards,


    H. Keller

    Quote from "Baeder"

    For a detailed explanation of the acceptance filter see the SJA1000 datasheet and application note AN97076 from Philips.


    ...or refer to any of our CAN driver documentations:


    WINCE_CAN_INTF_eng.pdf
    WINCE_CAN_DOTNET_eng.pdf


    These should be available on your driver CD, too.


    Best regards,


    H. Keller

    Quote from "eramon"

    - We would like to know if somebody has reached to install a X-Windows distribution in this SBC? Which distribution?


    An X-Window installation can be obtained from emlix. Please contact Mr. Schöw there. emlix is our partner company that does all the Linux development for our boards.


    Quote

    - and a JVM?


    Here I'm not quite sure, but I believe this is also available from emlix.


    Quote

    - Do you have or it exists some kind of emulator to speed up the compilation of Linux + others in development time.


    This I don't understand. What is slow in the current process? You compile on the PC (=the same as with an emulator) and you start the program on the board. No download process is required. So where do you get slow turn-around times that you think you can compensate for with an emulator?


    And no, there is no such emulator available, sorry.


    Regards,


    H. Keller

    Quote from "mgborer"

    what is the difference of eboot and nboot?


    nboot is a small bootstrap loader. It is used to get the main boot loader onto the board.


    The NetDCU8 has no flash device that can be programmed outside and then plugged into the socket. But the CPU supports loading a 4K program from the NAND flash, that has to provide all necessary functions to download the remaining software. nboot is exactly this small program and is programmed by JTAG when the board is manufactured. As it provides a function to replace itself, nboot can be updated later without requiring JTAG. But if such an update of nboot fails, the board is unusable and nboot has to be restored by JTAG here at F&S.


    eboot is the main boot loader itself, including all the functions to download the kernel and to configure the board.


    Quote

    what are the files eboot8_117.nbo, nboot8_17.bin, nboot17.rev100.bin for? what are their differences?


    - nboot8_17.bin is the bootstrap loader (size 4K) for board revision V1.10
    - nboot8_17.rev100.bin is the same loader but for board revision V1.00
    - eboot8_117.nb0 is the main boot loader (size 128K).


    Regards,


    H. Keller