8756 views|28 replies

367

Posts

0

Resources
The OP
 

The software engineer said he doesn't know how to use GPIO to simulate I2C. Is he a newbie? [Copy link]

 
This post was last edited by lingking on 2019-6-26 00:06

I encountered a vexing thing today. A software developer in the company said that there was a problem with the I2C of the circuit I designed. He said that I2C would freeze after accessing some chips for a long time. I printed out the chip data sheet and circled the relevant parts with a red pen to show him that I did not do anything wrong. I saw that the microcontroller used was STM32, which used the hardware I2C function. I told him that there was a problem with the I2C of STM32 itself, and asked him not to use the I2C function and to use GPIO to simulate the I2C protocol, but he refused to listen. This guy kept saying that he didn't know how to use IO to simulate I2C, and that I didn't understand the I2C protocol, and said things like "If you can do it, you can do it, I won't do it anymore, I'll do it for you" to confront me. I really suspect that this guy is a half-way electronics expert. He often gets some basic concepts wrong and makes everyone laugh and cry. Today, such a thing happened again. I really don't understand how such people survive in Shenzhen.

This post is from Talking

Latest reply

Actually, to verify from i2c, you just need to simulate the timing, but the i2c timing simulated by gpio is unstable under the CPU main frequency, and stm32 is not very good. If you want to verify the i2c timing in accordance with the protocol, you still need hardware i2c, otherwise many timings cannot be guaranteed, how to verify according to the protocol. It's OK to run it simply  Details Published on 2019-10-9 21:52
Personal signature拿PADS和Allegro软件来吹牛的都是些土鳖
 
 

1w

Posts

204

Resources
2
 
I don't know if this is a rookie. After all, some people are very good at technology, but if you talk to them about various terms, they may not really understand what the concepts are. Because some technical experts do not necessarily learn through formal steps in a very standardized university and a very relevant major. Maybe he doesn't understand some nouns, but it doesn't necessarily mean he doesn't know how to do it. It's just that there may be a problem with his attitude and he doesn't want to do it. Or he wants to push the responsibility first and bluff to ensure his control over his actions. In order to avoid being asked to do things again and again by others in the future.
This post is from Talking
Add and join groups EEWorld service account EEWorld subscription account Automotive development circle

Comments

This kind of person is harmful to the business.  Details Published on 2019-6-26 09:06
 
 
 

503

Posts

1

Resources
3
 

The iic problem seems to have been fixed. I used the code generated by cubemx a while ago and found no problems controlling the OLED screen.

This post is from Talking
 
 
 

367

Posts

0

Resources
4
 
okhxyyo posted on 2019-6-26 07:55 I don't know if this is a rookie. After all, some people are very technical, but if you talk to them about various terms, they may really not understand what you are talking about...

This kind of person is harmful to the business.

This post is from Talking

Comments

Um.  Details Published on 2019-6-26 10:04
Personal signature拿PADS和Allegro软件来吹牛的都是些土鳖
 
 
 

1w

Posts

204

Resources
5
 
lingking posted on 2019-6-26 09:06 This kind of people are harmful to the business

Um.

This post is from Talking
Add and join groups EEWorld service account EEWorld subscription account Automotive development circle
Personal signature

玩板看这里:

http://en.eeworld.com/bbs/elecplay.html

EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!

 
 
 

2002

Posts

24

Resources
6
 
If you have the power, fire him. His attitude is wrong. When you encounter a problem, the software and hardware should sit together and analyze it slowly. You can't blame each other or complain. If you don't fire him, will you keep him for the New Year dinner?
This post is from Talking

Comments

Alas, it's a pity that I'm not a leader. Such people are like blood clots in the company.  Details Published on 2019-6-26 19:01
 
 
 

32

Posts

0

Resources
7
 
This post was last edited by DELAN1234567 on 2019-6-26 17:33

It is very easy to implement IIC with STM32 IO.

4 basic procedures

START

STOP

WRITE_1BYTE

READ_1BYTE

Just try again and it will be OK

This kind of software engineer is quite good, you can talk to him. Don't bother with him.

This post is from Talking

Comments

Even if you don't know how to write this kind of code, there are a lot of them on the Internet. But that thing is like a dead person, motionless  Details Published on 2019-6-26 19:33
Even if you don't know how to write this kind of code, there are a lot of them on the Internet. But that thing is like a dead person, motionless  Details Published on 2019-6-26 18:04
 
 
 

367

Posts

0

Resources
8
 
DELAN1234567 posted on 2019-6-26 17:31 It is very easy to implement IIC with IO in STM32. 4 basic procedures START STOP WRITE_1BYTE READ ...

Even if you don't know how to write this kind of code, there are a lot of them on the Internet. But that thing is like a dead person, motionless

This post is from Talking
Personal signature拿PADS和Allegro软件来吹牛的都是些土鳖
 
 
 

367

Posts

0

Resources
9
 
shower.xu posted on 2019-6-26 11:16 If you have the power, fire him. His attitude is wrong. When you encounter a problem, you need to sit down with the hardware and software and analyze it slowly. You can't blame each other or complain. If you don't fire him, you can keep him for food...

Alas, it's a pity that I'm not a leader. Such people are like blood clots in the company.

This post is from Talking
Personal signature拿PADS和Allegro软件来吹牛的都是些土鳖
 
 
 

1193

Posts

0

Resources
10
 
DELAN1234567 posted on 2019-6-26 17:31 It is very easy to implement IIC with IO in STM32. 4 basic procedures START STOP WRITE_1BYTE READ ...

besides

Send_ACK

Send_NACK

GET_ACK

Although I2C is simple, it is not easy to use it well.

Since our chip added the I2C interface, we have to deal with many I2C exceptions. Most of the exceptions are caused by ignoring the OD characteristics of the I2C interface, which leads to the asynchrony between the master and the slave.

In any case, I2C is a common serial communication protocol that anyone working in the electronics industry should master.

The reason why a software engineer doesn’t know I2C may be that he is not an electronics major and has switched careers from the Internet industry.

Although I write software, I mainly write application software and have never delved into the underlying logic.

This post is from Talking

Comments

The key point is that attitude is speechless. GPIO simulation I2C is an entry-level operation, and this is not even possible, and they are still making excuses. I feel ashamed for them.  Details Published on 2019-6-26 23:38
 
 
 

367

Posts

0

Resources
11
 
qiushenghua posted on 2019-6-26 19:33 There are also Send_ACK Send_NACK GET_ACK Although I2C is simple, it is not easy to use it well. ...

The key point is that attitude is speechless. GPIO simulation I2C is an entry-level operation, and this is not even possible, and they are still making excuses. I feel ashamed for them.

This post is from Talking
Personal signature拿PADS和Allegro软件来吹牛的都是些土鳖
 
 
 

377

Posts

0

Resources
12
 

Gentlemen, don’t you think that only those who can use the best I2C peripherals are the real experts?

That crappy function, useless interrupt source, weird library function

GPIO simulates I2C. Just define the IO and it will run. It's too low-end←_←

This post is from Talking

Comments

ST's MCU is worth the price and function. TI's 430 is garbage compared to it.  Details Published on 2019-6-27 09:17
 
 
 

367

Posts

0

Resources
13
 
LeoMe posted on 2019-6-27 08:42 Gentlemen, don’t you think that the one who can use the I2C peripherals at the best level is the real boss? The crappy functions, the useless interrupt sources, the weird library function GPI ...

ST's MCU is worth the price and function. TI's 430 is garbage compared to it.

This post is from Talking

Comments

I have been using 430, stm8 and stm32 all the way, and I have always insisted on using hardware I2C. What have I experienced? I moved a section of eeprom driver from stm32l151 to stm32f051 before, and found that the i2c part had to be completely rewritten. I feel that the engineers who made i2c peripherals in st have a different understanding of i2c.  Details Published on 2019-7-5 09:01
Personal signature拿PADS和Allegro软件来吹牛的都是些土鳖
 
 
 

2865

Posts

4

Resources
14
 

OP! If you want to work with others, you need to have a team spirit. Everyone has a different starting point. You think it is right to use I2C without interrupts, but it is very difficult to ensure the timing when there are many tasks! (Note: Those who only know the front and back ends, please shut up first!). If your system is so complicated that it requires multiple professionals to develop, then the price of the main chip is not a problem. If it doesn't work, change the chip. The I2C of stm32 is not as bad as the legend says. It just goes wrong when it is lower than 80K. I think the rate of 100K is okay through practice (I have also used the chip with the most bugs in STM32F103), mainly the sensor of sht20. However, the sensor of BM sometimes has problems. So this may be related to the specific peripherals. You can understand it by writing a simple driver and running this hardware! Talking about others' faults. Just like what others say to you, it can be proved by experimental data. If it fails, just change the chip obediently. Otherwise, you can develop the software yourself. I think your colleagues will "jump to another job" soon! Don't be afraid of others' criticism, be strong yourself!!!

This post is from Talking

Comments

You've gone off topic. Actually, the matter is very simple. When debugging, I found that there was a problem with the I2C-related circuit. I said it might be a hardware bug of STM32 I2C, so I asked it to use the IO port to simulate the I2C protocol to see if it can work stably. But this guy was like eating gunpowder.  Details Published on 2019-6-29 14:41
You've gone off topic. Actually, the matter is very simple. When debugging, I found that there was a problem with the I2C-related circuit. I said it might be a hardware bug of STM32 I2C, so I asked it to use the IO port to simulate the I2C protocol to see if it can work stably. But this guy was like eating gunpowder.  Details Published on 2019-6-27 23:31
You've gone off topic. Actually, the matter is very simple. When debugging, I found that there was a problem with the I2C-related circuit. I said it might be a hardware bug of STM32 I2C, so I asked it to use the IO port to simulate the I2C protocol to see if it can work stably. But this guy was like eating gunpowder.  Details Published on 2019-6-27 23:24
You've gone off topic. Actually, the matter is very simple. When debugging, I found that there was a problem with the I2C-related circuit. I said it might be a hardware bug of STM32 I2C, so I asked it to use the IO port to simulate the I2C protocol to see if it can work stably. But this guy was like eating gunpowder.  Details Published on 2019-6-27 23:07
 
 
 

367

Posts

0

Resources
15
 
This post was last edited by lingking on 2019-6-27 23:15
bigbat posted on 2019-6-27 22:36 OP! If you work with others, you need to have a team spirit. Everyone has a different starting point. You think it is correct to use I2C without interrupts, but if anyone...

You are getting off topic. Actually, the matter is very simple. When debugging, I found that there was a problem with the I2C-related circuit. I said it might be a hardware bug of STM32 I2C, and asked it to use the IO port to simulate the I2C protocol to see if it can work stably. But this guy was like eating gunpowder, and he kept arguing with me, saying that there couldn't be a problem with the microcontroller, and it must be a problem with my circuit. I think this rookie is very likely to really not know how to use IO to simulate I2C, so he insisted that there was a problem with my circuit design. I printed out the relevant chip manuals and showed it to him, but he still insisted. The funniest thing is that this guy doesn't understand hardware at all, but when he encounters any problem, he immediately says it is a hardware problem without saying a word.

In fact, this kind of person is rubbish and is particularly willful. No matter whether he is right or not, once others do not do what he wants, he will make a fuss, no matter how loud he wants, and will drop everything on hand and make a fuss until his opponent surrenders.

A few more words, don't think that I don't know the driver of the microcontroller because I am a hardware expert. I am more than capable of handling tasks such as the I2C bus communication of STM32. I am just very unhappy to do some work that is not my job (no one will give me a raise if I do extra work), and it is very annoying to encounter such bad apples at work. If I become a middle or senior manager and still encounter such garbage, I will definitely tell him to pack up, turn off his computer, hand in his work badge, settle his salary and get out immediately in front of everyone!!!

This post is from Talking

Comments

Let me tell you a story. When I first started working, I worked in the tertiary industry of a research institute. Although it was not a formal imperial unit, the atmosphere was exactly the same. People here did not put "business" first. Personal matters are always more important than business! ! ! So don't look at the surface problem. I started because of my relatives.  Details Published on 2019-6-28 09:27
Personal signature拿PADS和Allegro软件来吹牛的都是些土鳖
 
 
 

367

Posts

0

Resources
16
 
bigbat posted on 2019-6-27 22:36 OP! If you want to cooperate with others, you must have team spirit. Everyone has a different starting point. You think it is correct to use I2C without interruption, but if you...

Actually, I wanted to slap it in the face, but I thought, it is a person with higher education, and hitting people is not civilized, so forget it. How can you have team spirit with such workplace garbage? You want teamwork, but it doesn't want teamwork. When debugging, there is a problem and it doesn't understand it. Others have given possible reasons and corresponding evidence, but it keeps shirking responsibility and trying to push the problem onto others. It is unreasonable and doesn't care about anything. The suggestions I made may not really solve the problem, but it refuses to even try. Do you think this guy is still useful?

This post is from Talking
Personal signature拿PADS和Allegro软件来吹牛的都是些土鳖
 
 
 

367

Posts

0

Resources
17
 
bigbat posted on 2019-6-27 22:36 OP! If you want to cooperate with others, you must have team spirit. Everyone has a different starting point. You think it is correct to use I2C without interruption, but if you...

Don't you think the logic of "if you can do it, you can do it" is a jerk? People who support this logic are also jerk. Everyone has their own job. If whoever can do it can do it, then why does this guy stay in the company? I am not a software engineer, but I am more than capable of handling this kind of STM32 programming. If I do it directly, the boss will not deposit its salary into my card. If I do its job, the company will deduct its salary and deposit it into my bank card. I am happy to rush to do its job every day.

This post is from Talking

Comments

There are all kinds of people in the workplace! No matter which company you work for, you must be magnanimous and calm. Because your ability is not good enough now. If you really can do it, then do you still need to beat him? He would have no idea where to go! My personal experience is that you need to use "professionalism" to deal with such people.  Details Published on 2019-6-28 08:18
Personal signature拿PADS和Allegro软件来吹牛的都是些土鳖
 
 
 

2865

Posts

4

Resources
18
 
lingking posted on 2019-6-27 23:31 Don’t you think the logic of “you can do it if you can” is very asshole? People who support this logic are also assholes. Everyone has their own...

There are all kinds of people in the workplace! No matter which company you work for, you must be magnanimous and keep your composure. Because your ability is not good enough now. If you really can do it, then do you still need to beat him? He would have no idea where to go! My personal experience is that you have to use "professional" means to deal with such people. If you can't prove your professional ability, you have to endure it! For some larger companies, the ability of middle-level leaders is not the first priority when recruiting employees. Obedience is the most important thing!!! Even if you are capable, you will be kicked out by a group of people after working for a few days.

This post is from Talking

Comments

I can do it but I have no obligation to do it because it is not my responsibility. In the end, I did not compromise. It said it could not do it, so I searched the Internet for a bunch of codes and threw them at it, and it had nothing to say.  Details Published on 2019-6-28 09:18
 
 
 

367

Posts

0

Resources
19
 
bigbat posted on 2019-6-28 08:18 There are all kinds of people in the workplace! No matter which company you work for, you must have a "bearing" and keep your composure. Because your ability is not good enough now...

I can do it but I have no obligation to do it because it is not my responsibility. In the end, I did not compromise. It said it could not do it, so I searched the Internet for a bunch of codes and threw them at it, and it had nothing to say.

This post is from Talking

Comments

You can't say you did it wrong. But there should be a "limit" to some things. Some people give you trouble for some "undisclosed" reasons, not because of your fault. He may be in a hurry and need to find someone to share the task. He is not a person who refuses to bow his head. Remember to communicate more with the leader about this matter.  Details Published on 2019-6-28 10:06
Personal signature拿PADS和Allegro软件来吹牛的都是些土鳖
 
 
 

2865

Posts

4

Resources
20
 
lingking posted on 2019-6-27 23:07 bigbat posted on 2019-6-27 22:36 OP! If you want to cooperate with others, you must have team spirit. Everyone has a different starting point. Do you think...

Let me tell you a story. When I first started working, I worked in the tertiary industry of a research institute. Although it was not a formal Guozitou unit, the atmosphere was exactly the same. People here don’t put "official business" first. Personal matters are always more important than official business!!! So don’t look at the surface problem. I started because my relative was the leader of the competent unit and arranged for me to work there. So no one dared to cause trouble for me when I entered the unit. It was very glorious. My business ability was better than that of a group of people in the unit. But the business was not going well. Why? As long as I wanted to change any design, a group of people opposed it! I was surprised why they all said the same thing. I was so angry that I paid for a board to be changed. I showed it to the leader. The leader praised me fiercely. The final result was: your product has not been put into practice and needs to be improved. I was confused at the time. Isn’t it just a battery power monitoring? What’s unstable about it? Later, when I entered a formal unit, I realized that the things in that unit were all private "patents" of some leaders. The products of the tertiary industry can only be sold to related units!!!

This post is from Talking
 
 
 

Guess Your Favourite
Just looking around
Find a datasheet?

EEWorld Datasheet Technical Support

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号
快速回复 返回顶部 Return list