2019년 2월 20일 수요일

STM32F7 시리즈 특징 요약



STM32F767VGT6를 중심으로 STM32F7 시리즈 마이크로컨트롤러 특징 요약
  1. 고성능 32비트 ARM Cortex-M7 코어를 갖는 제어용 마이크로 컨트롤러
    • 동작 온도가 -40도씨 ~ +85도씨의 범위일 때 최고 216MHz의 시스템 클록으로 동작
  2. 1024KB의 플래시 메모리와 512KB의 SRAM을 내장
    • 4개의 32비트 옵션 바이트를 가짐
  3. 16KB의 명령 캐시 메모리와 16KB의 데이터 캐시 메모리를 가짐
  4. 1.7 ~ 3.6V의 전원으로 동작
    • VBAT 단자를 통하여 별도로 공급되는 전원으로는 LSE, RTC, 4KB의 백업 SRAM등을 구동
  5. 내부에 1% 정밀도의 16MHz RC 오실레이터 HSI를 가짐
    • 4~26MHz의 크리스털을 외부에 접속하여 사용하는 오실레이터 회로 HSE를 가짐
  6. 각각 16채널까지 동작할 수 있는 2개의 DMA 제어기를 가짐
  7. 최고 180MHz의 높은 속도로 동작하는 82개의 병령 I/O 포트(GPIO)를 가짐
    • 이중 80개는 5V 로직이 사용 가능한 비트(5V-tolerant I/O)임
  8. 18개의 타이머
    • 1개의 SysTick 타이머
    • 13개의 16비트 타이머
    • 2개의 32비트 타이머
    • 2개의 워치독 타이머
  9. 27개의 직렬통신 포트
    • 4개의 USART
    • 4개의 UART
    • 4개의 SPI(3개의 I2S 기능을 포함)
    • 2개의 SAI(Serial Audio Interface)
    • 4개의 I2C
    • 2개의 SDMMC
    • 3개의 CAN 2.0B
    • 1개의 USB
    • 1개의 SPDIFRX
    • 1개의 MDIO
    • 1개의 HDMI CEC(Consumer Electronics Control)
  10. 12비트 분해능 및 최고 2MSPS의 변환 속도를 갖는 A/D 컨버터 3개
    • 외부에서 16개, 내부에서 3개의 아날로그 채널을 연결할 수 있음
  11. 12비트 분해능의 D/A 컨버터 2개
  12. 시계 및 캘린더 구현을 위한 RTC
  13. 32비트 CRC 계산기와 난수 발생기
  14. XGA(1024x768)까지 지원하는 TFT-LCD 컨트롤러
  15. 디지털 카메라 인터페이스 및 하드웨어 JPEG codec
  16. JTAG 및 SWD(Serial Wire Debug) 인터페이스를 사용한 디버그 기능 지원
  17. 100핀 LQFP(Low-profile Quad Flat Package)로 되어 있음
  18. 산업용(industrial)으로서 -40도씨 ~ +85도씨의 온도 점위에서 사용
    • -40도씨 ~ +105도씨 온도 범위에서 사용할 수 있는 버전도 있음

ARM Cortex-M0/M0+/M3/M4/M7의 특성 비교

ARM Cortex-M0/M0+/M3/M4/M7의 특성 비교
. Cortex-M0 Cortex-M0+ Cortex-M3 Cortex-M4 Cortex-M7
Architecture Version ARMv6-M
(Von Neuman)
ARMv6-M
(Von Neuman)
ARMv7-M
(Harvard>
ARMv7E-M
(Harvard)
ARMv7E-M
(Harvard)
Instruction Set Thumb,
Thumb-2
Thumb,
Thumb-2
Thumb,
Thumb-2
Thumb,Thumb-2,
DSP, SIMD, FPU
Thumb,Thumb-2,
DSP, SIMD, FPU
Dhrystone DMIPS/MHz 0.87 0.95 1.25 1.27 2.14
CoreMark/MHz 2.33 2.46 3.34 3.40 5.04
Bus Protocol AHB Lite AHB Lite AHB Lite, APB AHB Lite, APB AHB Lite, AXI, APB
Pipeline Stage 3 2 3 3 6
Instruction/Data Cache No No No No 4~64KB/4~64KB
TCM(Instruction/Data) No No No No 0~16KB/0~16KB
Number of Interrupts 1~32 +NMI 1~32 + NMI 1~240 + NMI 1~240 + NMI 1~240 + NMI
Interrupt Priority 4 4 8~256 8~256 8~256
Debug JTAG, SWD JTAG, SWD JTAG, SWD JTAG, SWD JTAG, SWD
Memory Protection Unit No No Yes(option) Yes(option) Yes(option)
Bit Banding Support No No Yes Yes Yes
Single Cycle Multiply Yes(option) Yes(option) Yes Yes Yes
Hardware Divide No No Yes Yes Yes
Single Cycle DSP/SIMD No No No Yes Yes
Floation Point Hardware No No No single precision single/double precision
CMSIS support Yes Yes Yes Yes Yes
Power Consumption 12.5uW/MHz 9.8uW/MHz 31uW/MHz 32.82uW/MHz 53uW/MHz
Anouncement Year 2009 2012 2004 2010 2014



ARM 마이크로프로세서 공부 정리



  • ARM의 역사와 아키텍쳐 버전별 주요 특징
버전 발표
연도
특징 적용 제품군
ARMv1 1985 최초의 상업용 RISC 프로세서, 26비트 어드레스 사용 ARM1
ARMv2 1987 32비트 곱셈기, 온칩 캐시, 32비트 보조 프로세서 지원 ARM2, ARM3
ARMv3 1992 MMU 지원, 32비트 어드레스 사용, 64비트 MAC ARM6, ARM7
ARMv4 1996 Thumb 모드 명령 추가, 26비트 어드레스 기능 폐지 ARM7TDMI, ARM8,
ARM9TDMI, StrongARM
ARMv5 1999 MAC 향상, DSP 및 Jazelle 명령 확장 기능 지원 ARM9E/J, ARM10, Xscale
ARMv6 2001 AIMD, Thumb-2, TrustZone, 멀티프로세싱 기능 지원 ARM11, ARM11 MP Core
ARMv7 2004 제품의 브랜드명을 Cortex로 통일하고, 용도에 따라 3가지 코어 제품군으로 나눔 Cortex-A, Cortex-R, Cortex-M



  • ARM의 제품군별 주요 특징

ARM7 ARM9 ARM10 ARM11
발표 연도 1993 1996 1998 2002
파이프라인 3단계 5단계 6단계 8단계/9단계
최고 동작 속도 133 MHz 250 MHz 325 MHz 550 MHz
소비전력 0.25mW/MHz 0.2mW/MHz 0.5mW/MHz 0.6mW/MHz
명령처리 속도 0.9 MIPS/MHz 1.1 MIPS/MHz 1.35 MIPS/MHz 1.35 MIPS/MHz
기본 아키텍쳐 폰노이만 구조
온칩 캐시
수정된 하버드 구조
명령캐시/데이터캐시
수정된 하버드 구조
명령캐시/데이터캐시
수정된 하버드 구조
명령캐시/데이터캐시
곱셈기 32x8 32x8 32x16 32x16
적용 제품 코어 ARM720T
ARM7EJ-S
ARM7TDMI
ARM7TDMI-S
ARM920T
ARM922T
ARM926EJ-S
ARM946E-S
ARM1020E
ARM1022E
ARM1026EJ-S
ARM1136J-S
ARM1136JF-S
ARM1176JZ-S
ARM1176JZF-S



  • 주요 특징
    1. ARM사는 반도체 제조회사가 아니다.
      • 자신이 설계한 ARM 코어를 IP(Intellectual Property) 라이센스 형태로 제공
      • 이 라이센스를 계약한 반도체 회사는 자사에서 설계한 I/O회로를 추가하여 제품 모델 생산 판매
      • ARM사도 에뮬레이터와 같은 하드웨어 개발 툴이나 C컴파일러 같은 소프트웨어 개발툴은 자사 제품을 가짐
    2. 가격이 싸다
      • 구조가 간단하고 라이센스로 받아 사용하므로 개발 비용이 적게듦
      • ARM은 전세계 32비트 임베디드 RISC 시장의 약 75% 장악
    3. 소비전력이 적다.
      • 빠른 속도에서 발열이 적다
      • 모바일 기기에서 각광받음
    4. 칩 면적(die size)이 작다
      • 적은 트랜지스터의 수를 사용하고 초미세 공정으로 칩 면적이 작게 설계
    5. 고성능 32비트 RISC 프로세서이다
      • RISC 구조
      • 캐시 메모리(cache memory) 내장
      • 파이프라인 처리방식 (평균적으로 1사이클에 1명령)
      • 초기에는 폰 노이만(Von Neumann) 구조
      • ARM7 제품군부터는 수정된 하버드 구조(Modified Harvard Architecture)
        • 명령 페치와 데이터 액세스를 동시에 수행할 수 있도록 개선
      • 명령처리 구조를 단순화
        • 모든 데이터 처리나 연산 명령은 내부 레지스터를 중심으로 이루어짐
        • 레지스터와 메모리 사이의 데이터 이동은 별도의 로드(load) 및 스토어(store) 명령으로 수행
    6. 많은 범용 레지스터와 효율적인 명령 세트를 가짐
      • 32비트의 고정 길이 명령을 가짐
      • 명령의 종류가 적음
      • 연산 명령보다는 데이터 이동이나 제어처리 명령이 많음
      • 효율적인 명령 세트를 가짐
        • 대부분의 명령에서 조건부 실행이 가능
      • 16비트의 Thumb 명령
        • 메모리에서 코드의 집적 효율을 높임
        • Cortex-M3 모델부터 Thumb-2 명령을 사용 (Thumb 명령 개선)
    7. 명령 세트를 확장하기가 매우 용이한 구조(ISA : Instruction Set Architecture)
      • 보조 프로세서를 이용한 명령 세트 확장이 용이
        • DSP 보조 프로세서나 VFP 부동소수점 연산 보조 프로세서 등이 이에 해당
      • 내부 구조가 철저하게 모듈식
      • 캐시 메모리나 MMU/MPU 또는 Jazelle, TrustZone 등의 기능을 추가로 확장하는 것이 매우 용이
      • Cortex-M4
        • DSP 기능과 VFP 부동소수점 연산장치를 내장하고 있는 Cortex-M3의 상위 모델
      • Cortex-M7
        • M4를 더욱 고속화한 모델
    8. 엔디안 모드 지원
      • 바이트 머신(byte machine)
        • 각 메모리 번지에 바이트 단위로 명령 코드나 데이터가 저장
      • 리틀 엔디안(little endian) 지원
        • 4바이트의 워드가 낮은 번지에 LSB(Least Significant Byte)부터 차례로 저장
      • 빅 엔디안(big endian) 지원
        • 4바이트의 워드가 낮은 번지에 MSB(Most Significant Byte)부터 차례로 저장
      • Cortex-M 모델들은 리틀 엔디안 방식으로 고정


  • ARM의 AMBA 버스
    • AMBA: Advanced Microcontroller Bus Architecture
    • AHB: Advanced High-performance Bus
    • ASB: Advanced System Bus
    • APB: Advanced Peripheral Bus



ARM Cortex 제품군의 종류 및 특징
ARM
패밀리
ARM
아키텍쳐
ARM
코어
특징 처리속도
Cortex-A ARMv7-A Cortex-A5 VFP, NEON, Jazelle RCT, Thumb/Thumb-2, 1~4 cores 1.57 DMIPS/MHz per core
Cortex-A8 (2005년) VFP, NEON, Jazelle RCT, Thumb/Thumb-2, 13-stage superscalar pipeline 2.0 DMIPS/MHz
Cortex-A9 MPCore (2007년) Application profile, VFPv3 FPU, NEON, Thumb/Thumb-2, Jazelle RCT/DBX, out-of-order speculative issue superscalar, 1~4 SMP cores 2.50 DMIPS/MHz per core
Cortex-A15 MPCore (2010년) Application profile, VFPv4 FPU, NEON, Thumb-2, Jazelle RCT/DBX, out-of-order speculative issue superscalar, Large Physical Address Extensions(LPAE), Hardware virtualization, 1~4 SMP cores 3.5 ~ 4.1 DMIPS/MHz per core
Cortex-R ARMv7-R Cortex-R4
Cortex-R4F
Real-time profile, Thumb-2, FPU 1.50 DMIPS/MHz
Cortex-M ARMv6-M Cortex-M0
Cortex-M0+
(2009년) Microcontroller profile, Thumb-2 subset.
Hardware multiply instruction.(Cortex-M0+는 2012년)
0.9 DMIPS/MHz
Cortex-M1 (2007년) FPGA targeted, Microcontroller profile, Thumb-2 subset. 0.8 DMIPS/MHz
ARMv7-M Cortex-M3 (2004년) Microcontroller profile, Thumb/Thumb-2.
Hardware multiply and divide instruction
1.25 DMIPS/MHz
ARMv7E-M Cortex-M4
Cortex-M4F
(2010년) Microcontroller profile, both Thumb/Thumb-2, FPU. Hardware MAC, SIMD and divide instructions 1.25 DMIPS/MHz
1.27 DMIPS/MHz
ARMv7E-M Cortex-M7 (2014년) single and double precision FPU. 0~64KB instruction cache and data cache, 6-stage superscalar 2.14 DMIPS/MHz







2018년 12월 8일 토요일

아두이노 HID


https://github.com/NicoHood
 - https://github.com/NicoHood/HoodLoader2
 - https://github.com/NicoHood/HID

https://raw.githubusercontent.com/NicoHood/HoodLoader2/master/package_NicoHood_HoodLoader2_index.json


2018년 5월 17일 목요일

2017년 11월 30일 목요일

스피커 시스템 공부


  1. 스피커 시스템의 종류
    • 스피커 시스템은 사용 용도에 따라서 여러가지 종류로 분류된다. 기본적으로 원리는 모두 같지만, 사용 환경을 고려하여 출력, 지향각, 이동성, 견고성 등이 다르다.
    • 사용 조건에 따라서 PA(Public Address: 확성 장치)용과 가정용 Hi-Fi (High Fidelity) 시스템으로 분류할 수 있고, 이것들은 같은 원리로 만들어지지만 목적이 다르기 때문에 설계나 제작 방법이 다르다.
    • 스피커 시스템을 선택할 때에는 목적에 적절한 것을 선택하는 것이 필요하다.
  • 스피커의 분류
    • 방사 방식
      • 콘형 스피커
      • 혼형 스피커
    • 진동판에 의한 분류
      • 콘 스피커
      • 돔 스피커
    • 시스템 구성에 의한 분류
      • 단일 스피커
      • 복합 스피커
      • 동축 복합 스피커
    • 인클로저에 의한 분류
      • 밀폐형
      • 저음 반사형
      • 혼 로드형
    • 목적에 의한 분류 - 사용하는 환경을 고려
      • PA 스피커 - 넓은 공간에서 많은 사람을 대상으로 높은 음압 레벨로 사용
      • 모니터 스피커
      • Hi-Fi 스피커 - 작은 공간에서 사용

  • 스피커 시스템의 종류
    • 한 개의 스피커 유니트로 주파수 특성과 지향성의 두 가지 조건을 만족 시키는 것은 어렵다.
    • 스피커를 저음(woofer), 중음(squawker), 고음(tweeter) 유니트를 조합하여 만듦 - 복합형 스피커 시스템(multiway loudspeaker system)이라 함
    • 30 ~ 100Hz 초저음만 재생하는 서브 우퍼(sub woofer) 스피커
    • 천장에 설치하는 실링 스피커(ceiling speader)
    • 지향성을 제어하기 위한 컬럼 스피커
    • 지향성을 제어하는 라인 어레이 스피커 - 기존의 대형 스피커를 스태킹하여 사용할 때, 스피커 간의 간섭을 최소화하고 수직 지향각을 일정하게 하여 원거리까지 전송하기 위한 것
    • 실내에 설치되는 위치에 따라 
      • 무대 스피커(stage speaker)
      • 프로세니엄 스피커(proscenium speaker)
      • 에어프런 스피커(apron speaker)
      • 무대 모니터 스피커(stage monitor speaker)
  • PA 스피커 시스템의 요구 조건
    • 다양한 출력
      • 실내의 설치되는 위치에 따라서 요구되는 출력 레벨이 다르므로 다양한 출력과 크기의 스피커 시스템이 필요
    • 적절한 재생 대역을 가져야 함
      • 음악은 30~15,000Hz, 음성은 100~8,000Hz의 대역을 재생할 수 있어야 한다.
      • 콘서트에서 초저음을 재생하기 위해서는 30~100Hz를 재생할 수 있는 서브 우퍼 시스템이 필요
    • 왜곡이 적어야 함
      • 좋은 음질을 얻기 위해서는 대 입력시에도 왜곡이 적어야 함
      • 특히 대입력에서 이상음이 발생되지 않아야 함
    • 대출력을 재생할 수 있어야 함
      • 효율이 높고 대입력에 강인하며 왜곡이 적어야 함
      • 내열성의 보이스 코일, 튼튼한 콘, 신뢰성이 높은 구성 부품을 사용
    • 내구성이 좋아야 함
    • 다양한 용도의 제품이 필요
      • 콘서트 홀의 내부에 영구적으로 설치하는 제품과 콘서트 투어용으로 사용되는 제품은 각각 용도에 적절하게 인클로저가 제작되어야 함
    • 보수 점검이 용이 해야 함
  • PA용 스피커 시스템과 Hi-Fi 스피커 시스템의 비교
항목 PA용 Hi-Fi용
용도 공공 방송용 개인 감상용
출력 대용량 소용량
사용 대수 여러개를 어레이 단독으로 사용
지향각 다양한 지향각 넓은 지향각
내입력 크고 고능률 작고 저능률
크로스오버 필터 액티브 형 패시브 형
인클로저 견고 보통
사용 환경 열악 좋음
사용 시간 길다 짧다
활용 전문 지식이 필요 간단함



  • 파워
    • 시간 당의 에너지를 의미, watt로 나타냄
    • 앰프에서 스피커로 전달되는 파워(P)는 앰프의 출력 전압(V) 제곱을 스피커 임피던스(Z)로 나누어 구함
      • P = V^2 / Z
  • 출력 음압 레벨 (스피커의 감도, sensitivity 라고 함)
    • 스피커에 입력된 전기 신호중에서 음향 에너지로 변환되어 방사되는 정도를 나타내는 것
    • 스피커에 단일 주파수 신호를 입력한 경우, 스피커의 정면 축상의 특정 거리에 생기는 출력 음압 레벨로 나타냄

  • 앰프 사양 해석
    • 정격 출력 (continuous power) 150W/8ohms
      • 정격 출력은 앰프의 최대 출력을 나타내고, 이 이상의 파워는 나오지 않는다.
      • 일반적으로 최대 출력(maximum power)과 정격 출력(continuous power)으로 나타내지만, 정격 출력이 앰프의 정상 출력이다.
    • 파워 대역 20~70kHz(-3dB)
      • 앰프가 지속적으로 파워를 낼 수 있는 주파수 범위를 파워 대역(power bandwidth)이라고 한다.
      • 반 전력점(half power point)를 나타내는 주파수 범위이다.
      • 즉, 20Hz에서 150W의 절반인 75W를 낼 수 있고, 70,000Hz에서도 75W를 낼 수 있다는 것이다.
      • 기본적으로 파워 대역이 넓을 수록 좋다.
    • 주파수 대역 10~70,000Hz(-3dB)
      • 1W를 출력할 때 응답이 -3dB 떨어지는 주파수 대역 범위이고, 최대 출력일 때의 특성은 아니다.
    • THD 0.03% @ 8ohms
      • 이 사양은 입력 신호가 사인파이고, 왜곡은 0.03% 이하이다.
      • 만약 앰프가 90W를 출력하면 왜곡은 0.027W이고, 89.973W는 왜곡되지 않은 파워이다.
      • 이 왜곡률은 귀에는 거의 지각되지 않는다.
    • S/N 비 104dB below rated power @ 4ohms.
      • 신호 대 잡음 비 (Signal to Noise Ratio; S/N 비)는 정격 출력과 잔류 잡음 레벨과의 비이며, 값이 클수록 노이즈가 적다.
      • 그러나 이것은 출력 노이즈의 절대값이 아니고, 정격 출력과의 비로서 상대 값이라는 점에 주의해야 한다.
      • 앰프의 S/N비는 최저 60dB 이상이면 된다.
    • 댐핑 팩터 >250 @ 400Hz
      • 댐핑 팩터는 파워 앰프의 출력 임피던스와 스피커의 임피던스의 비를 나타내고 클수록 좋다.
    • 입력 임피던스 20kOhms balanced bridged
      • 임력 임피던스(input impedance)는 앰프의 입력 측에서 본 교류 저항 값이다. 대부분의 파워 앰프는 10kW 이상의 높은 임피던스를 가지고 있다.
    • 입력 감도 1.23V(+4dBu)
      • 앰프가 정격 출력을 내기 위해서 입력해야 되는 입력 신호 레벨을 말한다. 이 레벨 이상의 신호를 가하면 클리핑이 시작된다.
      • 앰프가 최대 출력을 얻기 위해 필요한 최소한의 입력 신호 레벨을 나타낸다.
    • 최대 입력 레벨 9.75V(+22dBu)
      • 입력 신호가 어느 레벨 이상이 되면 출력 레벨이 그 이상 증가되지 않는 레벨, 즉, 출력이 포화되는 입력 레벨을 최대 입력 레벨(maximum input level)이라고 한다.
    • 소비 전력 550W @ 8ohms
      • idle은 신호가 없는 상태에서 소비 전력을 나타내고, 부하 임피던스가 바뀌면 파워도 변하므로 소비 전력도 변한다.

2017년 8월 29일 화요일

[AJAX Study] 01. XML

https://www.w3schools.com/xml/ajax_intro.asp
  • XML (eXtensible Markup Language)
    • XML은 데이터의 저장과 전송에 맞춰져 있다.



  • XML Tree
    • Root element
    • Element
    • Attribute
    • Text



  • XML 문법
    • prolog
      • <?xml version="1.0" encoding="UTF-8"?>
    • Closing Tag가 필수
      • prolog는 XML 문서의 일부분이 아니므로 제외
    • Tag의 대소문자 구분함
    • Attribute의 Value는 따옴표(")로 묶어줌
      • <note date="12/11/2007">
    • Text에 "<"와 같은 글자는 문제가 되므로 &lt; 등으로 표현
      • &lt; - <
      • &gt; - >
      • &amp; - &
      • &apos; - '
      • &quot; - "
    • 주석은 다음과 같이 표현
      • <!-- 이부분이 주석부분 -->
    • XML에서 새로운 줄은 LF임
      • Windows에서는 CR + LF
      • Unix나 OSX는 LF
      • Old Mac은 CR
      • XML은 은 LF

  • XML Elements (XML 요소들) - 다음을 포함한다.
    • text (텍스트)
      • <title>Wooguy</title>
    • attributes (속성들)
      • <person color="blue">Wooguy</person>
    • other elements (다른 요소들)
    • 위의 것들을 섞어서..

  • XML Attributes (XML 속성들)
    • values(값들)은 따옴표(")로 묶여져야 한다.
      • <person gender="female">
    • 자체적으로 쌍따옴표(")를 사용할 경우 홑따옴표로 묶는다.
      • <gangster name='Georage "Shotgun" Ziegler'>
      • <gangster name="Georage &quot;Shotgun&quot; Ziegler">
    • element와 attribute의 사용 고려
      • 속성은 다중 값을 포함할 수 없음 (요소는 가능)
      • 속성은 Tree 구조를 포함할 수 없음 (요소는 가능)
      • 속성은 쉽게 확장할 수 없음 (향후 변경을 위해)

  • XML Namespaces
    • XML 네임스페이스는 element 이름 충돌을 피할수 있는 방법을 제공함.
    • 이름충돌
      • 개발자에 의해 정해진 요소 이름들이, 다른 XML 문서와 합쳐지는 경우 충돌이 발생한다.
      • <table>
          <tr>
            <td>Apples</td>
            <td>Bananas</td>
          </tr>
        </table>
      • <table>
          <name>African Coffee Table</name>
          <width>80</width>
          <length>120</length>
        </table>
      • <h:table>
          <h:tr>
            <h:td>Apples</h:td>
            <h:td>Bananas</h:td>
          </h:tr>
        </h:table>

        <f:table>
          <f:name>African Coffee Table</f:name>
          <f:width>80</f:width>
          <f:length>120</f:length>
        </f:table>
    • xmlns 속성
      • <root xmlns:h="http://www.w3.org/TR/html4/" xmlns:f="https://www.w3schools.com/furniture">

        <h:table>
          <h:tr>
            <h:td>Apples</h:td>
            <h:td>Bananas</h:td>
          </h:tr>
        </h:table>

        <f:table>
          <f:name>African Coffee Table</f:name>
          <f:width>80</f:width>
          <f:length>120</f:length>
        </f:table>

        </root>