| 23:09 | usman | left the channel |
| 23:15 | Bertl | the lm75 is one example of devices handled by the kernel
|
| 23:16 | Bertl | the address can be configured with A0-A2, in our case (all high) it is configured at 0x4F
|
| 23:17 | Bertl | the device tree has an entry for that sensor and thus the kernel driver takes over
|
| 23:18 | Bertl | [ 1.408890] lm75 0-004f: Config 00
|
| 23:18 | Bertl | [ 1.411124] lm75 0-004f: hwmon0: sensor 'lm75'
|
| 23:18 | BAndiT1983 | alright, then which device would be suitable to build a chain to access it
|
| 23:18 | Bertl | [root@beta ~]# cat /sys/class/hwmon/hwmon0/temp1_*
|
| 23:18 | Bertl | 31500
|
| 23:18 | Bertl | 80000
|
| 23:18 | Bertl | 75000
|
| 23:18 | Bertl | this is one category of devices we are dealing with
|
| 23:18 | BAndiT1983 | i have to brush up a lot of things, as i'Ve studied a mix of software development and electronics, but the latter is not used in my regular job
|
| 23:20 | Bertl | there is an eeprom driver for Linux but I haven't used it yet, so I don't know what it does
|
| 23:21 | Bertl | for the GPIO extenders, I know that there is a driver, but that didn't work out as expected when I last tried it
|
| 23:21 | BAndiT1983 | are the drivers open source?
|
| 23:21 | Bertl | yes, there are basically no I2C specific drivers which are not open source/already in the kernel
|
| 23:22 | BAndiT1983 | trying to get an idea, so reading a bit -> http://www.netzmafia.de/skripten/hardware/RasPi/RasPi_I2C.html
|
| 23:22 | Bertl | i.e. chip vendors do not care about 'drivers' and motherboard manufacturers do not care about linux :/
|
| 23:22 | BAndiT1983 | i know, so i use also windows, partially for steam
|
| 23:23 | Bertl | because Microsoft Windows heats up your CPU/GPU so much? :)
|
| 23:24 | BAndiT1983 | very funny ;) but it's a pity that not much of game developers use linux
|
| 23:24 | Bertl | all the good games were developed on Linux :P
|
| 23:26 | Bertl | I'm feeling a little tired now ... so I'll head to bed (at least for a nap) ...
|
| 23:26 | BAndiT1983 | have a good night
|
| 23:26 | Bertl | if you have more questions, do not hesitate, I'll answer them when I get back
|
| 23:26 | Bertl | @good-night you too!
|
| 23:26 | Bertl | changed nick to: Bertl_zZ
|
| 23:39 | intracube | changed nick to: intracube_afk
|
| 00:10 | dimaursu16 | joined the channel |
| 01:07 | dimaursu16 | left the channel |
| 01:23 | BAndiT1983 | changed nick to: BAndiT1983|away
|
| 02:36 | jucar | joined the channel |
| 03:14 | Spirit532 | left the channel |
| 03:33 | jucar | left the channel |
| 05:02 | IldarValiev | joined the channel |
| 05:06 | Roopal08|away | joined the channel |
| 05:15 | usman | joined the channel |
| 05:45 | usmankhan | joined the channel |
| 05:45 | usmankhan | left the channel |
| 05:46 | usmankhan | joined the channel |
| 05:48 | usmankhan | left the channel |
| 05:57 | usman | left the channel |
| 06:12 | usmankhan | joined the channel |
| 06:12 | usmankhan | left the channel |
| 06:15 | usmanwardag | joined the channel |
| 06:16 | usmanwardag | left the channel |
| 06:17 | usmankhan | joined the channel |
| 06:17 | usmankhan | changed nick to: usmanwardag
|
| 06:17 | usmanwardag | left the channel |
| 06:17 | usmankhan | joined the channel |
| 06:18 | usmankhan | left the channel |
| 06:18 | usmankhan | joined the channel |
| 06:18 | usmankhan | left the channel |
| 06:23 | usmankhan | joined the channel |
| 06:23 | usmankhan | changed nick to: usmanwardag
|
| 06:24 | hey | joined the channel |
| 06:24 | usmanwardag | left the channel |
| 06:28 | hey | left the channel |
| 06:40 | usmankhan | joined the channel |
| 06:51 | usmankhan | Oops, sorry for the spamming. Was doing some experimentation with the irc
|
| 07:02 | usmankhan | left the channel |
| 07:17 | BAndiT1983|away | changed nick to: BAndiT1983
|
| 07:53 | BAndiT1983 | changed nick to: BAndiT1983|away
|
| 08:36 | BAndiT1983 | joined the channel |
| 08:42 | BAndiT1983 | left the channel |
| 08:43 | BAndiT1983 | joined the channel |
| 08:45 | BAndiT1983 | left the channel |
| 08:55 | BAndiT1983 | joined the channel |
| 08:57 | dimaursu16 | joined the channel |
| 08:57 | dimaursu16 | left the channel |
| 08:57 | dimaursu16 | joined the channel |
| 09:02 | usmankhan | joined the channel |
| 09:05 | usmankhan | Hi @Bertl, I did some research on PID controllers for DC/DC buck converters and found this paper very relevant: http://manuscript.jpe.or.kr/ltkPSWeb/pub/pubfpfile.aspx?ppseq=979
|
| 09:06 | usmankhan | It adjusts the control parameters based on an adaptive algorithm and claims to have better steady-state and transient performance. We could implement this as a starting point and then modify/refine it based on the simulation results
|
| 09:07 | usmankhan | If you have some other tuning approach in mind, I am open to it too.
|
| 09:10 | usmankhan | However, I am a little unsure about the power calculations that you talked about yesterday. Is it based on some kind of mathematical model of the sensors?
|
| 09:10 | Bertl_zZ | changed nick to: Bertl
|
| 09:10 | sebix | joined the channel |
| 09:10 | Bertl | morning folks!
|
| 09:10 | BAndiT1983 | hi
|
| 09:10 | usmankhan | Good morning!
|
| 09:12 | danieel | Bertl: what is the drawback of just using a DAC reference and highpower op-amps as followers?
|
| 09:13 | Bertl | usmankhan: @paper nice find
|
| 09:13 | Bertl | danieel: you mean an LDO regulator as follower?
|
| 09:13 | danieel | no, a regular opamp
|
| 09:14 | Bertl | well, similar to an LDO, it will burn half the power
|
| 09:14 | danieel | e.g. the DDR VTT power supplies are like that, as they need push/pull source, LDO is usually doing just charge, not discharge
|
| 09:15 | Bertl | i.e. if we have 5V supply and output 2.5V at 1A, then we will burn the same amount 2.5V*1A on the regulator
|
| 09:15 | danieel | i see
|
| 09:15 | Bertl | it works, but it is not great
|
| 09:15 | danieel | i try to avoid these configurables, until the point where they are really necessary (e.g. they are needed for the BAE sensor between RS and GS variation)
|
| 09:15 | danieel | otherwise my designs prefer local sensor-specific psus
|
| 09:17 | Bertl | fair enough
|
| 09:18 | Bertl | usmankhan: @power-calculations I was thinking of a mathematical model which calculates the power consumed and the power drawn from the switching cycles
|
| 09:20 | Bertl | so basically we measure the supply voltage to the switcher (external) and we 'know' the target voltage (set via DAC) and we get information from one or two comparators to implement the regulator
|
| 09:21 | Bertl | this all together with a calibration (passive components, coil, capacitance, Ron) should allow to model the power consumption and efficiency
|
| 09:22 | Bertl | the model does not need to be implemented on the FPGA, the implementation there just needs to provide the necessary information about the switching
|
| 09:22 | danieel | there are some features going against each other: fixed frequency for better filtering / low noise VS. variable frequency for higher efficiency
|
| 09:23 | usmankhan | Alright
|
| 09:23 | Bertl | danieel: most high efficiency switchers select the mode depending on the power drawn, i.e. they have at least two modes they can operate on
|
| 09:24 | niemand1 | joined the channel |
| 09:24 | Bertl | usmankhan: but note that the power calculations are the cherry on top :)
|
| 09:24 | danieel | i was rather refering to forcing the choice because of use (analog vs. digital)
|
| 09:26 | usmankhan | Right
|
| 09:27 | sebix | left the channel |
| 09:28 | Bertl | okay, have to pick up a package from the post office ... bbs
|
| 09:28 | Bertl | changed nick to: Bertl_oO
|
| 09:31 | IldarValiev | left the channel |
| 09:58 | intracube_afk | changed nick to: intracube
|
| 10:10 | BAndiT1983 | left the channel |
| 10:10 | BAndiT1983_ | joined the channel |
| 10:12 | sebix | joined the channel |
| 10:15 | niemand1 | left the channel |
| 10:22 | sebix | left the channel |
| 10:24 | davidak | joined the channel |
| 10:49 | BAndiT1983_ | left the channel |
| 10:57 | BAndiT1983 | joined the channel |
| 11:00 | se6astian|away | changed nick to: se6astian
|
| 11:00 | Spirit532 | joined the channel |
| 11:03 | Bertl_oO | changed nick to: Bertl
|
| 11:03 | Bertl | back now ...
|
| 11:10 | se6astian | good day!
|
| 11:33 | BAndiT1983 | left the channel |
| 11:33 | BAndiT1983_ | joined the channel |
| 11:38 | RexOrCine | joined the channel |
| 11:44 | dimaursu16 | left the channel |
| 12:17 | dimaursu16 | joined the channel |
| 12:17 | dimaursu16 | left the channel |
| 12:17 | dimaursu16 | joined the channel |
| 12:33 | _florent_ | left the channel |
| 12:52 | Bertl | off for now ... bbl
|
| 12:52 | Bertl | changed nick to: Bertl_oO
|
| 12:54 | Rex0r | joined the channel |
| 13:24 | usmankhan | left the channel |
| 13:25 | BAndiT1983_ | left the channel |
| 13:28 | RexO | joined the channel |
| 13:28 | Rex0r | left the channel |
| 13:43 | usmankhan | joined the channel |
| 13:49 | danieel | left the channel |
| 13:50 | danieel | joined the channel |
| 13:54 | dimaursu16 | left the channel |
| 14:07 | jucar | joined the channel |
| 14:25 | davidak | left the channel |
| 14:27 | jucar | left the channel |
| 14:34 | davidak | joined the channel |
| 14:39 | gk- | joined the channel |
| 14:41 | gk- | left the channel |
| 14:53 | Elbehery | joined the channel |
| 15:00 | usmankhan | left the channel |
| 16:35 | se6astian | Should the AXIOM Beta Full Enclosure feature a Flash Hotshoe at the top side or rather a 1/4" threaded hole?
|
| 16:35 | se6astian | vote here: https://lab.apertus.org/V10
|
| 16:36 | RexO | Can both options be offered?
|
| 16:37 | RexO | Eventually maybe?
|
| 16:38 | se6astian | would also be possible
|
| 16:38 | slikdigit | joined the channel |
| 16:39 | RexO | So this will tell us what needs to be done first basically.
|
| 16:59 | slikdigit | left the channel |
| 17:00 | Elbehery_ | joined the channel |
| 17:00 | Elbehery | left the channel |
| 17:00 | slikdigit | joined the channel |
| 17:08 | BAndiT1983 | joined the channel |
| 17:13 | BAndiT1983 | left the channel |
| 17:14 | BAndiT1983|away | changed nick to: BAndiT1983
|
| 17:15 | anuditverma | joined the channel |
| 17:24 | BAndiT1983 | Bertl_oO, i've investigated i2c access in linux and it works through ioctl and read/write, at least i could get access to some eeprom on my motherboard, next step is to think about description file, probably in JSON format so we can handle special cases/tags
|
| 17:25 | BAndiT1983 | what about aliases, would it simplify some things? like "LM75_PB" (PB=power board), so it would be something like this client->AddSetting("LM75_PB", Mode::Read, buffer);
|
| 17:26 | slikdigit__ | joined the channel |
| 17:26 | BAndiT1983 | i would let the client collect all the settings and then do Execute() to push them as package
|
| 17:26 | BAndiT1983 | daemon would sort read and write requests and do write first of course, afterwards read requested settings and send response back to client
|
| 17:29 | slikdigit | left the channel |
| 17:45 | anuditverma | left the channel |
| 17:47 | davidak | left the channel |
| 17:50 | slikdigit__ | changed nick to: slikdigit
|
| 18:08 | slikdigit | left the channel |
| 18:21 | davidak | joined the channel |
| 18:24 | slikdigit | joined the channel |
| 19:05 | davidak | left the channel |
| 19:22 | BAndiT1983 | changed nick to: BAndiT1983|away
|
| 19:22 | BAndiT1983|away | changed nick to: BAndiT1983
|
| 19:33 | anuditverma | joined the channel |
| 19:40 | Bertl_oO | changed nick to: Bertl
|
| 19:40 | Bertl | back now ...
|
| 19:40 | Bertl | BAndiT1983: what do you want to put in those description files?
|
| 19:41 | Bertl | @alias what would the canonical reference be?
|
| 19:41 | BAndiT1983 | for example address of the i2c slave and of course address of the sensor
|
| 19:42 | BAndiT1983 | i'm trying to approach it in small steps, so we can adjust the direction of the whole thing
|
| 19:42 | Bertl | okay, well, no problem with aliases here, but I do not consider them very important :)
|
| 19:42 | BAndiT1983 | i think of following properties first: alias name, address of i2c slave, address of the device, data position, data length
|
| 19:43 | BAndiT1983 | it's just for comfort, i would also try to allow to supply addresses directly
|
| 19:43 | Bertl | no idea what that means :)
|
| 19:43 | BAndiT1983 | ?
|
| 19:43 | Bertl | address of the device, data position, data length
|
| 19:43 | BAndiT1983 | i played around with i2c-tools in ubuntu
|
| 19:44 | Bertl | well, that's not a bad thing per se :)
|
| 19:44 | BAndiT1983 | device address is the one from i2cdump
|
| 19:44 | BAndiT1983 | you've shown me similar data yesterday
|
| 19:45 | BAndiT1983 | my eprom was on port 14 and at location 0x57
|
| 19:45 | BAndiT1983 | i mean at location was some device which held data for my motherboard like name, but i had no further info on what it holds precisely
|
| 19:46 | Bertl | okay, so what would data position and data length be for an lm75?
|
| 19:46 | BAndiT1983 | lm75 is another case, it's handled by kernel, so it would belong to sysfs
|
| 19:46 | BAndiT1983 | then i would create sysfs adapter which reads it from /sys/....
|
| 19:46 | Bertl | let's say it isn't handled by the kernel (just humor me)
|
| 19:47 | BAndiT1983 | then we get /dev/i2c-XX for device port
|
| 19:47 | BAndiT1983 | and of course some address inside it like 0x74
|
| 19:47 | Bertl | e.g. 0x4F
|
| 19:48 | BAndiT1983 | int file = open("/dev/i2c-14", O_RDWR);
|
| 19:48 | BAndiT1983 | std::cout << strerror(errno) << std::endl;
|
| 19:48 | BAndiT1983 | unsigned long funcs;
|
| 19:48 | BAndiT1983 | int result = ioctl(file, I2C_FUNCS, &funcs);
|
| 19:48 | BAndiT1983 | result = ioctl(file, I2C_SLAVE, 0x57);
|
| 19:48 | BAndiT1983 | std::cout << strerror(errno) << std::endl;
|
| 19:48 | BAndiT1983 | uint8_t buf[256] = {0};
|
| 19:48 | BAndiT1983 | read(file, buf, 256);
|
| 19:48 | BAndiT1983 | std::cout << strerror(errno) << std::endl;
|
| 19:48 | BAndiT1983 | this is my test code, it's a bit longer as i've put some debug things in it for first tries, afterwards it will be much shorter
|
| 19:49 | Bertl | yeah, but doesn't make any sense for the LM75 for example
|
| 19:49 | BAndiT1983 | it shows the port i2c-14 for my motherboard chip
|
| 19:49 | Bertl | besides, are you sure you want C++ (just curious)
|
| 19:49 | BAndiT1983 | yes, as C is outdated and if i have C++ then it's much more comfortable to write and read
|
| 19:50 | BAndiT1983 | at least conversions are easier and less error-prone by times
|
| 19:50 | Bertl | okay, I disagree on the read part, and I don't think C is outdated
|
| 19:51 | Bertl | but in any case, double check, because last time I used C++ it was quite bloated (library and memory wise)
|
| 19:51 | BAndiT1983 | if compiled with optimizations it can be very slim
|
| 19:51 | Bertl | and we definitely don't want huge memory footprints getting 'cloned' every time a connection is made
|
| 19:52 | BAndiT1983 | i hope to include systemd socket activation, so the biggest part is handled by it
|
| 19:52 | BAndiT1983 | but the info has to be researched as the docs give a glimpse at it and one has to search for examples
|
| 19:53 | BAndiT1983 | so, what it wrong with the approach for lm75?
|
| 19:53 | BAndiT1983 | *is
|
| 19:53 | Bertl | that there is no block to read, there are registers with various bits
|
| 19:53 | Bertl | they have different sizes, and different functions
|
| 19:55 | BAndiT1983 | this can be defined by description file, so they are grouped logically
|
| 19:55 | Bertl | as I suggested yesterday, you should not try to make 'one' I2C device handler which does it all or is so generic that it can accomodate almost any device
|
| 19:56 | Bertl | this is a lot of work with little gain, and probably a ton of bugs
|
| 19:56 | Bertl | define a common metadata format which can describe the data and the functions a device provides
|
| 19:57 | Bertl | then create a single device 'class' for each device we have
|
| 19:57 | BAndiT1983 | why won't generic one fit, if you can define data to be read or written together with masks and so on?
|
| 19:57 | Bertl | trust me, you can't
|
| 19:57 | BAndiT1983 | just thinking of the scripts which do the same thing
|
| 19:58 | Bertl | well, you can, but you need to make your description language turing compatible
|
| 19:58 | BAndiT1983 | problem is, i don't know how many device classes we have
|
| 19:58 | BAndiT1983 | sometimes it is possible with simpler things, my professional experience
|
| 19:58 | Bertl | doesn't matter, if we find one you do not have yet, it needs to be implemented
|
| 19:59 | Bertl | make it simple to add new devices, but leave the low level stuff to a programming language
|
| 20:01 | BAndiT1983 | just trying to avoid if/else for revisions in code
|
| 20:02 | BAndiT1983 | i remember some siemens code from a conference it was a christmas tree of such nested ifs
|
| 20:03 | Bertl | so how do you plan to handle e.g. a sensor moving from one bus to the other and becoming a different device (lm78 instead of lm75) due to a revision change in your config?
|
| 20:04 | BAndiT1983 | description files would have revision appenden -> e.g. SysFS_rev29.json, I2C_rev33.json
|
| 20:04 | Bertl | so you make it worse by duplicating the information
|
| 20:04 | BAndiT1983 | daemon should read the revision from somewhere and load reight files for it, so the address cahnges are done dynamically
|
| 20:05 | Bertl | you are aware that each board has a separate version and revision?
|
| 20:05 | BAndiT1983 | not duplicating, if the files does not exist for the revision it would load the latest one
|
| 20:06 | Bertl | anyway, if you don't believe me, go ahead, try to solve it with config files
|
| 20:07 | BAndiT1983 | still don't understand what should be so worng with it
|
| 20:07 | BAndiT1983 | every alias can get some part assigned to it, like LM75_config, which writes or reads the bits for that case
|
| 20:08 | Bertl | silicon is buggy as hell, mainly because nobody can afford a second or third run on a chip (at least not without selling the first version)
|
| 20:08 | Bertl | most devices have bugs and errata and 'special' requirements
|
| 20:09 | Elbehery__ | joined the channel |
| 20:09 | Bertl | sometimes it is a register which requires another register to be set or a bit to be cleared before it works as intended
|
| 20:09 | Bertl | bits are sometimes spread over a number of registers
|
| 20:09 | Bertl | and so on and so forth ... this is not something you can handle with a json config file
|
| 20:10 | BAndiT1983 | i can nest many things in such file, also such sequences of settings
|
| 20:10 | Bertl | so be it ...
|
| 20:10 | RexO | left the channel |
| 20:10 | BAndiT1983 | just let us try, i'm looking at it as software developer, you as electronics engineer
|
| 20:11 | Rex0r | joined the channel |
| 20:11 | BAndiT1983 | mx problem is, that i've not followed electronics part of my study
|
| 20:11 | BAndiT1983 | *my
|
| 20:12 | Elbehery_ | left the channel |
| 20:12 | Elbehery__ | left the channel |
| 20:13 | anuditverma | left the channel |
| 20:21 | BAndiT1983 | changed nick to: BAndiT1983|away
|
| 20:22 | BAndiT1983 | joined the channel |
| 20:51 | se6astian | changed nick to: se6astian|away
|
| 21:09 | intracube | changed nick to: intracube_afk
|
| 21:36 | Bertl | off for a nap ... bbl
|
| 21:36 | Bertl | changed nick to: Bertl_zZ
|
| 21:42 | dimaursu16 | joined the channel |
| 21:42 | dimaursu16 | left the channel |
| 21:42 | dimaursu16 | joined the channel |
| 21:43 | slikdigit | left the channel |
| 21:44 | slikdigit | joined the channel |
| 22:21 | dimaursu16 | left the channel |