Перейти к содержанию
    

zhz

Свой
  • Постов

    80
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные zhz


  1. to Uree Тяжело с гуру спорить т.к. разводкой занимаюсь не часто. Но в памяти отложилось, что любые загибы трасс(не скругленные) приводят к нарушению формы сигнала, называемые отражениями. Читал про приборы (непомню как называются) для тестирования кабелей, которые посылая тестовый сигнал смотрят на отражения. И выдают характер нрушения кабеля, расстояние до него и т.д.

     

    К вопросу об углах:

    http://www.ultracad.com/articles/90deg.pdf

     

    " Conclusions:

    The TDR data do not show any measurable reflections from either 45 or 90 corners in microstrip traces. In theory, there is a change in Zo caused by a corner, but the effect is not sufficient to be resolvable with a 17 ps rise-time pulse.

    The radiated emission measurements (up to 1.3 GHz.) do not show an increase for 90 corners, compared to 45 corners, that is larger than measurement uncertainty. All of the trace geometries measured produced radiated emissions that were 35-50 dB below the emissions of a 3-cm long monopole antenna and only slightly above those from a straight trace with no corners.

    For most circuit boards it is expected that discontinuities encountered at IC packages, connectors, and vias will produce much larger reflection or radiation effects than either 45 or 90 corners. "

     

     

  2. Andrew N. Sloss, Dominic Symes, Chris Wright

    ARM System Developer’s Guide. Designing and Optimizing System Software.

     

    7.4 Square Roots

    7.4.1 Square Root by Trial Subtraction

    ... following optimized assembly to implement the preceding algorithm in

    only 50 cycles including the return. ...

     

    7.4.2 Square Root by Newton-Raphson Iteration

    ... It uses a table lookup followed by two Newton-Raphson iterations and is accurate

    to a maximum error of 2**-29. On an ARM9E the code takes 34 cycles including the return....

  3. BOD только не был включен,а остальное включено.

    А в чем причина, если BOD не включен?

     

    А Atmel его знает :)

    Видимо контроллер flash глючит при переходных процессах. Во всяком случае мне помогло.

     

    Сейчас как на картинке, я так понял, что все правильно с BOD.

     

    Угу. Только я reset по BOD не включал.

     

     

  4. При конвертации из LP Wizard в библиотеку Pcad2006, нарушается ресиунок линий assy, Courtyard, как будто смещены координаты линий, те вообще случайно выглядят, после конверсии. Может быть кто-то сталкивался?

     

    версия 10.3 ?

    Возьми v10.2.1

     

     

  5. Тем более реально никаких противопоказаний делать питания как можно "грубее" нет.

     

    Вообще-то есть :)

    http://focus.ti.com/lit/an/spraav1b/spraav1b.pdf

    page 10-11, 23-24

     

    "the trace width exiting the BGA pad is much too large. In this case the trace acts as a heatsink during reflow"

     

    Я не сторонник тонких проводников питания - совсем наоборот :).

    Но надо знать меру.

     

  6. Changes between V6.0.5 and V6.1.0 released October 6 2010

     

    + Added xTaskGetTickCountFromISR() function.

    + Modified vTaskSuspend() to allow tasks that have just been created to be

    immediately suspended even when the kernel has not been started. This

    allows them to effectively start in the Suspended state - a feature that

    has been asked for on numerous occasions to assist with initialisation

    procedures.

    + Added ports for the Renesas RX62N using IAR, GCC and Renesas tool suites.

    + Added a STM32F103 demo application that uses the Rowley tools.

    + Under specific conditions xFreeBytesRemaining within heap_2.c could end up

    with an incorrect value. This has been fixed.

    + xTaskCreateGeneric() has a parameter that can be used to pass the handle

    of the task just created out to the calling task. The assignment to this

    parameter has been moved to ensure it is assigned prior to the newly

    created having any possibility of executing. This takes into account the

    case where the assignment is made to a global variable that is accessed by

    the newly created task.

    + Fixed some build time compiler warnings in various FreeTCPIP (based on

    uIP) files.

    + Fixed some build time compiler warnings in Demo/Common/Minimal/IntQueue.c.

     

  7. Здравствуйте. При запуске SPECCTRA из P-CADа с пустым DO файлом SPECCTRA должна останавливается, чтобы можно было

    выполнять ее команды. Так у меня и было. Но с некоторого времени при таком запуске она стала вылетать в P-CAD без

    остановки . Вопрос: Как вернуть прежнее состояние?

     

    Отключить опцию:

    Route/Autorouters.../Specctra/Command Line.../Quit when done

     

     

  8. Здравствуйте!

    Ищу информацию о применении ARM9 в задачах DSP. Может быть есть таблицы, где отображено время выболнение базовых алгоритмов, или, скажите просто какой мощностью в MMACS обладает ARM926 от Атмел.

     

    Заранее спасибо всем ответившим.

     

    В книжке "ARM System Developer’s Guide. Designing and Optimizing System Software"

    есть глава по DSP с примерами и оценкой производительности.

     

    post-3559-1277916531_thumb.png

     

  9. Changes between V5.2.0 and V5.3.0 released June 1st 2009

     

    Main changes:

     

    + Added new (optional) feature that gathers statistics on the amount of CPU

    time used by each task.

    + Added a new demo application for the Atmel AT91SAM3U Cortex-M3 based

    microcontroller.

    + Added a new demo application for the NXP LPC1766 Cortex-M3 based

    microcontroller.

    + Added a contributed port/demo that allows FreeRTOS to be 'simulated' in a

    Linux environment.

     

    Minor changes:

    + Updated the Stellaris uIP WEB server demos to include the new run time

    statistics gathering feature - and include a served WEB page that

    presents the information in a tabular format.

    + Added in the lwIP port layer for the Coldfire MCF52259.

    + Updated the CrossWorks LPC2368 WEB server to include an image in the

    served content.

    + Changed some of the timing in the initialisation of the LPC2368 MAC to

    permit its use on all part revisions.

    + Minor modifications to the core uIP code to remove some compiler warnings.

    + Added xTaskGetApplicationTaskTag() function and updated the OpenWatcom

    demo to make use of the new function.

    + Added contributed demos for AVR32 AP7000, STM32 Primer 2 and STM32 using

    Rowley Crossworks.

    + Heap_1.c and Heap_2.c used to define structures for the purpose of data

    alignment. These have been converted to unions to save a few bytes of

    RAM that would otherwise be wasted.

    + Remove the call to strncpy() used to copy the task name into the TCB when

    the maximum task name is configured to be 1 byte long.

  10. Но, не знаю, насколько автор тестировал "re-entrancy for multitask operation", поскольку есть банальная синтаксическая ошибка в функции unlock_fs()

    С кем не бывает :)

     

    Но по коду бегло просмотрел, вроде как дополнительно низкоуровневые функции драйвера лочить не нужно, все должно разруливаться через введенные lock_fs() и unlock_fs().

    Для одной карты и одной FS может и не надо. А если карт больше одной (у меня их 8) то, полагаю, мютексить драйвер MCI необходимо.

     

    Буду тестировать.

    Если у кого вдруг появятся результаты, в том числе найдутся баги (мало ли, любой код не без этого), то интересно будет узнать.

    Я под FreeRTOS второй день тестирую. Вроде пока все нормально. LFN не пробовал, а в остальном - вполне.

  11. подскажите где можно достать Fixed Point библиотеку для ARM7 с функцией SQRT?

     

    Есть такая весьма полезная книга:

    ARM System Developer’s Guide

    Designing and Optimizing System Software

    Andrew N. Sloss, Dominic Symes, Chris Wright

     

    Ch.7 Square Roots

    7.4.1 Square Root by Trial Subtraction

    7.4.2 Square Root by Newton-Raphson Iteration

     

    ;// Section 7.4: Square and cube root
    
            AREA    ch07_4, CODE, READONLY
    
            EXPORT  usqr_32
            EXPORT  ucbr_32
            EXPORT  rsqr_32
    
    q       RN 0   ; input value, current square root estimate
    r       RN 1   ; the current remainder
    c       RN 2   ; scratch register
    
    usqr_32; unsigned usqr_32(unsigned q)
            SUBS    r, q, #1<<30           ; is q>=(1<<15)^2?
            ADDCC   r, r, #1<<30           ; if not restore
            MOV     c, #3<<30              ; c is a constant
            ADC     q, c, #1<<31           ; set bit 15 of answer
           ; calculate bits 14..0 of the answer
            GBLA    N
    N       SETA    14
            WHILE   N<>-1
              CMP   r, q, ROR #(30-2*N)    ; is r >= t<<N ?
              SUBCS r, r, q, ROR #(30-2*N) ; if yes then r -= t<<N;
              ADC   q, c, q, LSL#1         ; insert next bit of answer
    N         SETA  (N-1)
            WEND
            BIC     q, q, #3<<30           ; extract answer
            MOV     pc, lr
    
    q0      RN 0   ; input value, current estimate
    r       RN 1   ; current remainder
    s       RN 2   ; current remainder
    q1      RN 3   ; current estimate
    c_1     RN 12  ; 1<<29
    c_2     RN lr  ; 3<<30
    
            MACRO
            CBR_STEP $N, $q1, $q0
            SUBS    $q1, r, s, ROR #(30-3*$N)
            MOVCS   r, $q1
            ADC     $q1, c_2, $q0, LSL#1
            ADD     s, $q0, s, ROR #30
            EORCS   $q0, c_1, $q0, LSL #1
            SUB     s, s, $q0, ROR #30
            MEND
    
    ucbr_32; unsigned ubcr_32(unsigned q)
            STR     lr, [sp, #-4]!
            MVN     c_1, #1<<29
            MOV     c_2, #3<<30
           ; calculate answer bit 10
            SUBS    r, q0, #1<<30
            MOVCC   r, q0
            ADC     q0, c_2, #1<<31
            MOVCC   s, #(1<<30)
            MOVCS   s, #(3<<30)+4
           ; calculate answer bits 9,8,...,1
            CBR_STEP 9, q1, q0
            CBR_STEP 8, q0, q1
            CBR_STEP 7, q1, q0
            CBR_STEP 6, q0, q1
            CBR_STEP 5, q1, q0
            CBR_STEP 4, q0, q1
            CBR_STEP 3, q1, q0
            CBR_STEP 2, q0, q1
            CBR_STEP 1, q1, q0
           ; calculate answer bit 0
            CMP     r, s, ROR #30
            ADC     q0, q1, q1
            BIC     r0, q0, #3<<30
            LDR     pc, [sp], #4
            
            
    q       RN 0   ; input value, estimated reciprocal root
    b       RN 1   ; scratch register
    s       RN 2   ; normalization shift
    d       RN 3   ; normalized input value
    a       RN 12  ; scratch register/accumulator
    
            
    rsqr_32; unsigned rsqr_32(unsigned q)
            CLZ     s, q                ; choose shift s which is
            BIC     s, s, #1            ; even such that d=(q<<s)
            MOVS    d, q, LSL s         ; is 0.25<=d<1 at Q32
            ADDNE   q, pc, d, LSR#25    ; table lookup on top 7 bits
            LDRNEB  q, [q, #tab-base-32]; of d in range 32 to 127
    base    BEQ     div_by_zero         ; divide by zero trap
            ADD     q, q, #0x100        ; table stores only bottom 8 bits
           ; q is now a Q8, 9-bit estimate to 1/sqrt(d)
            SMULBB  a, q, q             ; a = q*q at Q16
            MOV     b, d, LSR #17       ; b = d   at Q15
            SMULWB  a, a, b             ; a = d*q*q at Q15
            MOV     b, q, LSL #7        ; b = q at Q15
            RSB     a, a, #3<<15        ; a = (3-d*q*q) at Q15
            MUL     q, a, b             ; q = q*(3-d*q*q)/2 at Q31
           ; q is now a Q31 estimate to 1/sqrt(d)
            UMULL   b, a, d, q          ; a = d*q at Q31
            MOV     s, s, LSR #1        ; square root halves the shift
            UMULL   b, a, q, a          ; a = d*q*q at Q30
            RSB     s, s, #15           ; reciprocal inverts the shift
            RSB     a, a, #3<<30        ; a = (3-d*q*q) at Q30
            UMULL   b, q, a, q          ; q = q*(3-d*q*q)/2 at Q31
           ; q is now a good Q31 estimate to 1/sqrt(d)
            MOV     q, q, LSR s         ; undo the normalization shift
            BX      lr                  ; return q
    div_by_zero
            MOV     q, #0x7FFFFFFF      ; maxium positive answer
            BX      lr                  ; return q
            
    tab    ; tab[k] = round(256.0/sqrt((k+32.3)/128.0)) - 256
            DCB  0xfe, 0xf6, 0xef, 0xe7, 0xe1, 0xda, 0xd4, 0xce
            DCB  0xc8, 0xc3, 0xbd, 0xb8, 0xb3, 0xae, 0xaa, 0xa5
            DCB  0xa1, 0x9c, 0x98, 0x94, 0x90, 0x8d, 0x89, 0x85
            DCB  0x82, 0x7f, 0x7b, 0x78, 0x75, 0x72, 0x6f, 0x6c
            DCB  0x69, 0x66, 0x64, 0x61, 0x5e, 0x5c, 0x59, 0x57
            DCB  0x55, 0x52, 0x50, 0x4e, 0x4c, 0x49, 0x47, 0x45
            DCB  0x43, 0x41, 0x3f, 0x3d, 0x3b, 0x3a, 0x38, 0x36
            DCB  0x34, 0x32, 0x31, 0x2f, 0x2d, 0x2c, 0x2a, 0x29
            DCB  0x27, 0x26, 0x24, 0x23, 0x21, 0x20, 0x1e, 0x1d
            DCB  0x1c, 0x1a, 0x19, 0x18, 0x16, 0x15, 0x14, 0x13
            DCB  0x11, 0x10, 0x0f, 0x0e, 0x0d, 0x0b, 0x0a, 0x09
            DCB  0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01
    
            END

  12. Нет, если идти по шагам, то питание SD-карты включается нормально, т.е. уровни напряжения в порядке.

    Используется p-канальный IRLMLР6402 с пороговым напряжением 0,4 ..1,2 В.

    Тем не менее карточка перестает работать.

     

    Следует обратить внимание, чтобы при отключенном питании, карточка не запитывалась по сигнальным линиям.

    Некоторые карточки этого не любят.

  13. Release Name: V5.1.1

     

    Notes:

     

    --------------------------------------------------------------------------------

    Changes between V5.1.0 and V5.1.1 released November 20, 2008

     

    + Added Coldfire MCF52233 WEB server demo using GCC and Eclipse.

    + Added IAR MSP430 port and demo.

    + Corrected several compiler time issues that had crept in as tool versions

    change.

    + Included FreeRTOS-uIP - a faster uIP. This is not yet complete.

  14. Если пропадает питание или ресет, то получается кривой файл. Пропадает не только последняя запись, но и повреждается FAT.

    Выяснил, что EFSL скидывает всё на диск только когда даётся команда размонтировать.

     

    В FatFS для таких случаев есть функция f_sync():

    f_sync

    The f_sync function flushes the cached information of a writing file.

     

    Description

    The f_sync function performs the same process as f_close function but the file is left opened and can continue read/write/seek operations to the file. This is suitable for applications that open files for a long time in writing mode, such as data logger. Performing f_sync of periodic or immediataly after f_write can minimize risk of data loss due to a sudden blackout or an unintentional disk removal. This function is not supported in read-only configuration.

     

    Так что брось ты эту efsl :)

    FatFS вполне вменяемая FS.

×
×
  • Создать...