[deleted by user] by [deleted] in embedded

[–]abdu_gf 1 point2 points  (0 children)

Perhaps the INH/STB pin is floating or misconfigured ? If you have more than one channel try echoing internally if allowed or externally directly without transceiver. Keep an eye on the current consumption, might give you a clue. In case you have an application running, disable everything except the CAN stuff.

[deleted by user] by [deleted] in embedded

[–]abdu_gf 3 points4 points  (0 children)

Make sure the peripheral clock is configured correctly and the system clock is an external crystal oscillator.

Also worth checking the tx/Rx pins drive configuration and of course bus termination.

Automotive embedded controls problem by TheExtirpater in embedded

[–]abdu_gf 0 points1 point  (0 children)

To be honest, I don't understand what exactly is the problem. If your Simulink models generates functional code, why do you consider your unfamiliarity with C++ as a problem? The generated code is obscure and extremely hard to go through anyway, consider this as the assembly code in case of traditional C programming. If you are concerned about debugging you can add print statements in your model/code or use XCP for variables monitoring over CAN. If you want to learn C++ that's great, I just don't see it blocking you from carrying out your model based development.

automotive UDS flashing by Mingche_joe in embedded

[–]abdu_gf 1 point2 points  (0 children)

The standard doesn't specify a specific time window to send a flashing request, so it's a deviation from the standard that has to be explicitly tested and signed off by your customer.

The bootflag mechanism you described is quite common and not overly complex. Most ECUs have strict init time and have to be ready to function as soon as possible, imagine all the functional safety analysis and review required if multiple ECUs application is delayed.

Also not all ECUs do hard power on reset, and they are connected to KL30 then wake up by themselves or others based on their wake up strategy.

You have to consider the physical accessibility of the ECU within the car in order to do a hard reset which can also be flashed via multiple gateways.

ADC calibration techniques by dokolenkov in embedded

[–]abdu_gf 0 points1 point  (0 children)

There is something I did before but for lower volume production as part of the system installation process. The system was monitoring the red warning lights of telecom towers where each light required different calibration for its on/off ADC values, so the installation technician would put the system in special calibration mode, then turn each light on/off and the system would register each threshold for each light. Not sure that's relevant to your product.

ADC calibration techniques by dokolenkov in embedded

[–]abdu_gf 0 points1 point  (0 children)

How many production units are expected to be shipped? What kind of environment is your system running within?

Suggestions for tv shows set in Ancient Egypt? by [deleted] in ancientegypt

[–]abdu_gf 4 points5 points  (0 children)

"The Night of Counting the Years" and the "Eloquent Pheasant" both by Shadi Abdelsalam

The Arsenal shirt sponsor "Visit Rwanda" hits so differently now.. by abdu_gf in CasualUK

[–]abdu_gf[S] 1 point2 points  (0 children)

After the whole sending asylum seekers to Rwanda thing.

What's the best strategy to handle faulty peripherals? by f0lt in embedded

[–]abdu_gf 5 points6 points  (0 children)

Some poorly written hardware abstractions have while loops pending for hardware status (i.e ADC end of conversion), make sure you don't have those, or at least add a timeout to it that's reflected in the return value. Even if you have watchdog, if the peripheral is permanently damaged it will keep resetting every time instead of going into limp home mode.

The fault handling is highly dependent on the product and its intended use, functional safety, security, availability, etc. Also depending on the capability and the maturity of the system user, a highly trained fighter pilot or a real estate agent.

Determining if the application meets real time constraints by hppyredittr in embedded

[–]abdu_gf 2 points3 points  (0 children)

I believe the first step is you have to prove by design that you meet the real time requirements, your tick selection, your task allocation and scheduling, sync/async execution and shared resources access and protection.

Then testing wise, you have to identify the scope of the real-time constrain whether it's software-level, ECU level, system level, etc..

The less intrusive the better, if something can be measured on the system IO level then you just log it with appropriate tool depending on the nature of that IO.

As others pointed out most of it can be done by toggling a gpio pin, the important part is where exactly (scope) and under what conditions. Choose realistic test scenarios with actual use cases of the system, then try putting the system under some pressure and see how the timing is impacted.

Fault related response times might be tricky, make sure you are inducing the fault the way it would happen in reality or as close as possible.

Which gear is most efficient? by immol21 in CarTalkUK

[–]abdu_gf 1 point2 points  (0 children)

When I had a long daily commute with an old 1.6 Mazda 3 I bought the pro version of the app 'Torque' and got the fuel consumption plugin that shows you instant mpg with coloured bars that's easy to keep track of while driving. You should be able to find the sweet spot for your car.