**** BEGIN LOGGING AT Sat Jan 05 02:59:56 2019 **** BEGIN LOGGING AT Sat Jan 05 06:02:10 2019 Jan 05 06:32:55 I am trying to work on a BBB Cape... According to some documents I am reading, I need a EEPROM that supports 16bit addressing, is this indeed true? Jan 05 06:33:24 I can't find a part that is still 'active' that supports this (thats not some special crypto type eeprom) Jan 05 06:34:44 ehh what? Jan 05 06:35:05 the eeproms used are basically the most common i2c eeproms you can find Jan 05 06:35:27 afaik Jan 05 06:35:44 hmmmm Jan 05 06:37:26 I was thinking the difference between the 8 bit/16 bit addressing, is how much data is grabbed from the EEPROM during each read cycle Jan 05 06:37:49 So if I don't have the correct one that they suggest, then things might not work properly... but maybe I am mistaken Jan 05 06:38:07 just search for 24c256 Jan 05 06:38:19 8-bit addressing means the eeprom can only be 256 bytes in size Jan 05 06:38:58 So a 16 bit address then can get me double the memeory? Jan 05 06:39:09 16-bit address means the eeprom can be up to 64 KB Jan 05 06:39:22 doesnt have to do about the amount of data it reads and writes at a given time frame? Jan 05 06:39:29 no Jan 05 06:39:33 yea, your right, one extra bit would be double the memory Jan 05 06:40:15 okay, I was reading through the CAT24C256, and didn't see it reference 16-bit addressing... Jan 05 06:40:39 but this tutorial, and also the offical BBB documentation do mention it Jan 05 06:40:42 http://papermint-designs.com/community/node/331 Jan 05 06:41:12 https://github.com/beagleboard/beaglebone-black/wiki/System-Reference-Manual Jan 05 06:41:14 it might not explicitly call it by that name, but it should show that the address uses two bytes Jan 05 06:41:39 for an example, see figure 5-2 on page 8 of https://eu.mouser.com/datasheet/2/590/DS-RM24C256C-L_081-1385715.pdf Jan 05 06:47:08 So this example you referenced uses 16-bit addressing then, right?Or is it considered 8-bit, since it sends 8 bits at a time? Jan 05 06:47:29 A15 to A0 is the Address bits Jan 05 06:47:58 it uses a 16-bit address Jan 05 06:48:06 Gotcha Jan 05 06:50:24 hmmm... So 24C256 is a standard part number made by multiple vendors? Jan 05 06:50:28 yes Jan 05 06:50:29 I have never heard of Adesto before Jan 05 06:50:50 Is that the vendor the BBB uses? Jan 05 06:50:53 neither have I, I just clicked on the first part I got in the search results Jan 05 06:50:57 ahhh Jan 05 06:50:58 gotcha Jan 05 06:51:07 I was looking at a old microchip datasheet Jan 05 06:51:14 I figured they were the only vendor Jan 05 06:51:26 OnSemiconductor* Jan 05 06:51:38 no there are tons of vendors Jan 05 06:51:59 Ahhh, gotcha. I wonder why I am not seeing any come up in digikey when I do a search then Jan 05 06:52:08 I try to filter things down Jan 05 06:52:23 Surface Mount Part + 16-bit addressing + I2C Jan 05 06:52:34 and get not much for hits Jan 05 06:52:47 Let me try again Jan 05 06:52:48 just search for 24c256 Jan 05 06:52:55 k Jan 05 06:53:37 Ohhhh..... Jan 05 06:53:43 I had been filtering it wrong Jan 05 06:54:05 32k x 8 is what these 256kb ICs are Jan 05 06:54:25 I was looking for 16 bit wide registers Jan 05 06:54:32 or memory segments Jan 05 06:54:40 however you would refer to it as Jan 05 06:55:27 that's a misunderstanding of what it means Jan 05 06:56:10 all i2c eeproms I know of are byte-addressable Jan 05 06:57:12 8-bit addressing would therefore imply the eeprom can only be 256 bytes in size, so a 32KB eeprom necessarily use 16-bit (or more) addressing Jan 05 06:57:21 I think you have to send a 16 bit (2 byte) address all the time, but you get one byte of data per address Jan 05 06:57:44 see datasheet for the format Jan 05 06:58:02 Yea, I looked at it, it looks like it is alwyas a A15 - A0 format for the address Jan 05 06:58:12 You cant just send A7-A0 Jan 05 06:58:28 but don't worry about too much about it: any "24c256" part that supports 3.3v operation is compatible Jan 05 06:58:38 the compatibility is implicit in that part number Jan 05 06:58:39 Okay, sweet. THis is good to know Jan 05 06:58:54 Okay, sweet. Its good to know what some of this stuff means though Jan 05 06:59:01 THank you for pointing me in the correct direction Jan 05 07:02:17 24c32 and larger are compatible basically, as seen from which parts have AT24_FLAG_ADDR16 in this list: https://elixir.bootlin.com/linux/latest/source/drivers/misc/eeprom/at24.c#L149 Jan 05 07:05:24 This is confusing Jan 05 07:05:38 yeah I shouldn't have said that Jan 05 07:05:51 just grab a 24c256 and don't worry about it Jan 05 07:05:52 Sorry, I need to know this stuff though, right? Jan 05 07:06:04 How to read the drivers and what not Jan 05 07:06:06 not really? Jan 05 07:06:10 Oh okay Jan 05 07:06:11 I mean, if you want to Jan 05 07:06:27 I am sure there is benifit in understanding it... or maybe not Jan 05 07:06:28 idk Jan 05 07:07:45 What is bootlin anyway? Jan 05 07:08:11 Does this have all the drivers for one of the stock linux images Jan 05 07:08:12 no idea, but elixir is a site that cross-indexes the linux kernel and some other projects Jan 05 07:08:16 I see it talks about other ICs Jan 05 07:08:28 what I linked to is the generic i2c eeprom driver Jan 05 07:08:30 hmmm Jan 05 07:08:46 Yea, I recalled the name they used in something I was reading yesterday Jan 05 07:08:50 the "at24" Jan 05 07:09:01 other than that, it is all foriegn to me Jan 05 07:09:19 at24 is the name for the general family of i2c eeproms Jan 05 07:09:26 ahhh Jan 05 07:09:57 How does one determine from the datasheet what family or what driver that a device will fall into? Jan 05 07:10:22 Do you have to read through the addressing and config of the status bits, etc to determine what drivers are compatable?' Jan 05 07:11:22 in theory yes, but in practice all these eeproms are specifically made to be compatible with the original at24 chips, and show this by their part number Jan 05 07:11:33 which is why you can just search for 24c256 and grab one from any vendor Jan 05 07:11:34 oh Jan 05 07:11:47 the 24 at the front, gotcha Jan 05 07:12:08 24c is not sufficient though, e.g. some smaller ones use 8-bit addressing Jan 05 07:12:16 you also don't want the serial ones (24cs) Jan 05 07:12:26 does the cs stand for something? Jan 05 07:12:34 s = serial Jan 05 07:12:42 okay Jan 05 07:13:16 the beaglebone device tree declares the eeproms to be "24c256", so if you pick that part number then you're definitely safe Jan 05 07:13:21 is there a over arching standard for these memory devices, or did one vendor create the 24Cxxx and everyeone copied? Jan 05 07:13:29 pretty sure the latter Jan 05 07:13:38 at24 sounds like atmel to me Jan 05 07:13:47 gotcha. wasn't sure if it something like ieee standards Jan 05 07:13:53 yea, that sounds like atmel Jan 05 07:20:28 ah actually the devicetree even says it: compatible = "atmel,24c256"; Jan 05 07:21:34 so yeah, the part is an atmel at24c256, or compatible clone Jan 05 07:25:43 Oh, yea I see in the notes they mention Atmel AT24C or MicroChip 24LC Jan 05 07:29:46 huh, this is odd Jan 05 07:30:12 Whats odd? Jan 05 07:30:17 The LC part? Jan 05 07:30:52 not actually all 24c256 devices have three programmable device address bits Jan 05 07:31:58 in particular, the original at24c256 didn't. it could only be configured to device address 0x50 - 0x53, but the i2c eeprom of capes needs to be in range 0x54-0x57 Jan 05 07:33:38 I'm guessing all modern parts support configuration in range 0x50-0x57, but it doesn't hurt to double-check before making your final part selection Jan 05 07:33:50 i.e. confirm it has an A2 pin Jan 05 18:05:59 Where can I find the docs to control the motor drivers on the beaglebone blue? Jan 05 18:10:55 BennyHyphen: dunno, but the Adafruit_BBIO can be used Jan 05 18:12:47 BennyHyphen: docs -> https://github.com/beagleboard/beaglebone-blue/tree/master/docs Jan 05 18:43:58 <__jk__> I wish to use spi on my BBBW. Will config-pin utility as explained https://stackoverflow.com/a/43117267 work with latest kernel too ? Jan 05 19:49:54 BennyHyphen: If you want, there is a librobotcontrol library for the BBBlue! Jan 05 19:50:59 http://strawsondesign.com/docs/librobotcontrol/ and they have a github page too. Jan 05 19:51:10 Terrific, I'll take a look Jan 05 19:51:32 Okay. Jan 06 01:52:41 hi Jan 06 02:02:19 I have a beaglebone black and I put the official debian image on it, and I'm trying to use what seems to be called SPI0 but I can't find my way among all the device tree overlay stuff. I used uboot overlays to enable BB-SPIDEV0 which was already in /lib/firmware and this thing also: https://elinux.org/images/1/1f/BB-SPI0-01-00A0.txt (which mentions the right pin names)) Jan 06 02:02:42 you don't need to mess with overlays at all Jan 06 02:03:12 undo whatever you did in /boot/uEnv.txt and configure the pins using 'config-pin' Jan 06 02:03:59 ah Jan 06 02:04:01 I see, thanks Jan 06 02:04:06 enabling the BB-SPIDEV0 overlay in /boot/uEnv.txt should also still work fine though Jan 06 02:04:18 yeah it didn't work Jan 06 02:04:32 no /dev/spidev0 appeared Jan 06 02:04:38 I'm trying config-pin Jan 06 02:05:13 correct, for historical reasons spi0 ends up as /dev/spidev1.* and spi1 as /dev/spidev2.* Jan 06 02:05:24 ah ! Jan 06 02:06:50 I see Jan 06 02:07:04 on old kernels, a stupidity in the mcspi driver caused spidev devices used to be sequentially numbered 1-based in the order the kernel encountered them rather than following the numbering assigned to them by the device tree Jan 06 02:07:38 this has been fixed, but people already relied on this broken numbering, so now it's explicitly preserved for compatibility reasons :/ Jan 06 02:08:42 so the device tree overlay named SPIDEV0 makes /dev/spidev1 appear ? Jan 06 02:09:20 yep Jan 06 02:11:22 if this offends you as much as me, just grab the appropriate branch of the dtb-rebuilder project, fix these two lines, and recompile the dtbs: https://github.com/RobertCNelson/dtb-rebuilder/blob/4.14-ti/src/arm/am33xx.dtsi#L39-L40 Jan 06 02:14:32 ok config-pin seems to be working Jan 06 02:14:45 now I just have some kind of alignment issue or whatever but I'll figure that out Jan 06 02:15:04 alignment issue? Jan 06 02:15:27 I get wrong values every three SPI reads or something Jan 06 02:16:04 that sounds odd. make sure the structure of the transfers you're doing matches the expectations of the device Jan 06 02:16:32 yeah this program was for a RPi at first and it works right there Jan 06 02:16:40 I just use the spidev interface, which is standard Jan 06 02:17:34 maybe bad cables Jan 06 02:17:58 signal integrity is something to be mindful of Jan 06 02:18:38 if wire length is substantial, you may want to include series resistors at the driving side of each line to avoid overshoot/ringing Jan 06 02:19:21 especially on the clock line Jan 06 02:19:36 since ringing on the clock line may be misinterpreted as additional clocks Jan 06 02:19:37 it's some "dupont" wires from amazon Jan 06 02:19:41 yeah Jan 06 02:20:02 I twisted the wires a bit and now it works consistently Jan 06 02:20:14 they're just badly made wires Jan 06 02:20:18 thanks for your help Jan 06 02:20:19 lol Jan 06 02:20:23 ok Jan 06 02:22:54 the ultimate goal is to enhance the RTEMS rtos Jan 06 02:22:58 on particular for the bbb Jan 06 02:23:19 I'm adding a 6lowpan stack with some mates **** ENDING LOGGING AT Sun Jan 06 02:59:57 2019