Hur bra är utvecklings verktygen för STM32 ARM ??

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Re: Hur bra är utvecklings verktygen för STM32 ARM ??

Inlägg av mri »

Finns det någon bra HW implementering? Problemet är ju att mjukvaran stup i kvarten måste ta beslut vad som skall göras härnäst i överföringen t.ex. ack/nack'as ju varje överförd byte.
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Re: Hur bra är utvecklings verktygen för STM32 ARM ??

Inlägg av Korken »

Nejdå, det behövs inte. Kolla rad 483 i min länk på sidan innan med min implementering.
Den bara puttar in mer data i shiftregistret så länge det ska skickas mer.
Alternativt rad 576 för recieve. Den ända gången man måste pilla med ACK/NACK är när det är de sista bytesen kvar.
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Re: Hur bra är utvecklings verktygen för STM32 ARM ??

Inlägg av mri »

Mja, jag tänkte mer på att eftersom protokollet har en ack/nack bit efter varje databyte, går det inte bara att ha en HW fifo som pytsar ut databyten automatiskt, som med USART. Istället måste HW'n implementeras med mycket "öppenhet" så att mjukvaran har kontroll över varje enskilld byte. Detta leder till håriga implementationer där hårdvaran inte avlastar mjukvaran så värst mycket. Din kod tycker jag är en bra illustration över när hårdvaran är hårig. Din interrupt handler skulle jag beskriva som enorm med tanke på att den (om jag förstått koden rätt) körs för varje överförd byte och bitraten är ändå på 400 kHz.

Tack för övrigt att du postade koden, den kommer till bra användning snart. :tumupp:
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Re: Hur bra är utvecklings verktygen för STM32 ARM ??

Inlägg av Korken »

Det du vill tror jag händer automatiskt via DMA.
Dock har inte testat då när jag väl fick det att fungera ville jag inte arbeta mer med I2Cn. :)
Skriv svar